使用服务帐户从PHP调用Google Apps脚本执行API

伊比比恩贝

我正在尝试使用服务帐户从php调用一个非常简单的google apps脚本,以便只有我的服务器可以访问它,而不是网站的用户。

这是我的方法。我在这里https://script.google.com创建脚本

function get() {
    return  ContentService.createTextOutput('get method');
}

当我保存一个新项目时,它会自动关联。然后我打开File > Project Properties以获取scriptId = MM8zQqofS1OIcnFiNSlm1CGEl5qMrMVBt

Resources > Project Developers console通过单击显示的弹出窗口顶部的项目链接,我可以访问相关项目的开发者控制台

然后,我点击“激活和管理API”并激活“ Google Apps脚本执行API”。我单击“凭据”,然后看到先前的操作自动创建了OAuth2凭据。但是我需要的是服务帐户凭据。然后创建一个Add credentials > Service account并下载生成的p12文件。我得到了该服务帐户clientId = 109160023321840004240clientMail = [email protected]

我返回脚本并与具有读写访问权限的服务帐户电子邮件共享该脚本File > Share首先,我在个人邮箱中收到一封电子邮件,通知我

Delivery to the following recipient failed permanently:

 [email protected]

然后,我将脚本发布为Publish > Publish as an execution API可以访问所有人的执行API

现在让我们进入PHP服务器端。使用此处提供的“ PHP的Google API客户端库” https://github.com/google/google-api-php-client,我尝试从PHP调用脚本函数:

$client = new Google_Client();
$client->setClientId('109160023321840004240');
$client->setApplicationName('myScript');

$cred = new Google_Auth_AssertionCredentials(
    '[email protected]',
    [/*no scope nedeed for this simple script*/],
    file_get_contents('path_to_myScript.p12')
);
$client->setAssertionCredentials($cred);

if ($client->getAuth()->isAccessTokenExpired()) {
    $client->getAuth()->refreshTokenWithAssertion($cred);
}

$service = new Google_Service_Script($client);
$scriptId = 'MM8zQqofS1OIcnFiNSlm1CGEl5qMrMVBt';

// Create an execution request object.
$request = new Google_Service_Script_ExecutionRequest();
$request->setFunction('get');
$response = $service->scripts->run($scriptId, $request);

这是我一直得到的回应

Error calling POST https://script.googleapis.com/v1/scripts/MM8zQqofS1OIcnFiNSlm1CGEl5qMrMVBt:run: (403) The caller does not have permission

如果在部署脚本时选择授予“仅我”权限,则会收到以下响应。

Error calling POST https://script.googleapis.com/v1/scripts/MM8zQqofS1OIcnFiNSlm1CGEl5qMrMVBt:run: (404) Requested entity was not found.

如果你们中的一个人有帮助我的想法,我会很高兴:)

数十杏仁

apps脚本尚不支持带有执行api的服务帐户。请参阅https://code.google.com/p/google-apps-script-issues/issues/detail?id=5461

谷歌表示,他们正在调查,但显然不会很快发生(基于谷歌对google +帖子的回复,例如https://plus.google.com/+MartinHawksey/posts/Zquix9XqzkK

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用服务帐户从PHP调用Google Apps脚本执行API

来自分类Dev

使用执行API PHP客户端创建文档时出现Google Apps脚本错误

来自分类Dev

如何通过服务帐户使用Google Drive PHP Api

来自分类Dev

Google Apps脚本执行API服务授权每小时失败一次

来自分类Dev

如何使用Google Apps脚本执行API + Java创建Google表单?

来自分类Dev

如何使用Google Apps脚本执行API + Java创建Google表单?

来自分类Dev

使用C#执行Google Apps脚本

来自分类Dev

Google Apps脚本:Salesforce API调用

来自分类Dev

从Google Apps脚本调用Twitter API

来自分类Dev

Google Apps脚本-如何依次执行功能?

来自分类Dev

无限执行Google Apps脚本中的代码

来自分类Dev

使用Google Apps脚本获取Instagram API

来自分类Dev

使用Google Apps脚本获取Instagram API

来自分类Dev

(PHP) 使用 oauth 和服务帐户访问私人 Google 相册 (Picasa Web) API 信息

来自分类Dev

如何将对象列表发送到Google执行API并在Google Apps脚本中进行处理

来自分类Dev

Google :: Apis :: ClientError:禁止使用:将服务帐户调用与ruby google api一起使用时,调用者没有权限

来自分类Dev

使用Google Apps服务帐户启用邮件转发

来自分类Dev

Google Apps脚本从外部API获取响应

来自分类Dev

带有Google Apps脚本的电报API

来自分类Dev

Apps脚本中的Google Docs API

来自分类Dev

Google Apps脚本从外部API获取响应

来自分类Dev

php | Google Webmaster API服务帐户没有权限

来自分类Dev

调用Google Apps脚本

来自分类Dev

调用Google Apps脚本

来自分类Dev

Google Apps脚本应用突然执行缓慢/出错

来自分类Dev

如何按顺序执行Google Apps脚本中的多个功能?

来自分类Dev

Google Apps脚本-超出了最大执行时间

来自分类Dev

使用Google API服务帐户共享打印机

来自分类Dev

无法使用服务帐户查询Google Search Console API

Related 相关文章

  1. 1

    使用服务帐户从PHP调用Google Apps脚本执行API

  2. 2

    使用执行API PHP客户端创建文档时出现Google Apps脚本错误

  3. 3

    如何通过服务帐户使用Google Drive PHP Api

  4. 4

    Google Apps脚本执行API服务授权每小时失败一次

  5. 5

    如何使用Google Apps脚本执行API + Java创建Google表单?

  6. 6

    如何使用Google Apps脚本执行API + Java创建Google表单?

  7. 7

    使用C#执行Google Apps脚本

  8. 8

    Google Apps脚本:Salesforce API调用

  9. 9

    从Google Apps脚本调用Twitter API

  10. 10

    Google Apps脚本-如何依次执行功能?

  11. 11

    无限执行Google Apps脚本中的代码

  12. 12

    使用Google Apps脚本获取Instagram API

  13. 13

    使用Google Apps脚本获取Instagram API

  14. 14

    (PHP) 使用 oauth 和服务帐户访问私人 Google 相册 (Picasa Web) API 信息

  15. 15

    如何将对象列表发送到Google执行API并在Google Apps脚本中进行处理

  16. 16

    Google :: Apis :: ClientError:禁止使用:将服务帐户调用与ruby google api一起使用时,调用者没有权限

  17. 17

    使用Google Apps服务帐户启用邮件转发

  18. 18

    Google Apps脚本从外部API获取响应

  19. 19

    带有Google Apps脚本的电报API

  20. 20

    Apps脚本中的Google Docs API

  21. 21

    Google Apps脚本从外部API获取响应

  22. 22

    php | Google Webmaster API服务帐户没有权限

  23. 23

    调用Google Apps脚本

  24. 24

    调用Google Apps脚本

  25. 25

    Google Apps脚本应用突然执行缓慢/出错

  26. 26

    如何按顺序执行Google Apps脚本中的多个功能?

  27. 27

    Google Apps脚本-超出了最大执行时间

  28. 28

    使用Google API服务帐户共享打印机

  29. 29

    无法使用服务帐户查询Google Search Console API

热门标签

归档