403错误 - 来电者没有许可

时间:2016-04-18 06:35:45

标签: javascript google-chrome-extension google-apps-script google-chrome-app google-apps

我想在Chrome扩展程序中使用Google Execution Api。

在下面的页面中,有一个表单来测试执行api请求,但是当我发送请求时,我收到403错误作为响应。

发布此问题的人似乎已经解决了他的问题,这可能与我的问题相同。 Why does my apps script deployed as API executable return Permission Denied?

但是,我无法解决这个错误。请指导我帮我解决这个错误。

请求

这是我在请求表中输入的内容。

https://developers.google.com/apps-script/execution/rest/v1/scripts/run#try-it

  

enter image description here

响应

{
 "error": {
  "code": 403,
  "message": "The caller does not have permission",
  "status": "PERMISSION_DENIED"
 }
}

项目密钥:MVO00WF1oNYdJ7YvOZGxXh_z7UcVTY4Um

  

enter image description here

作用域

我使用电子表格api,我添加了电子表格范围作为OAuth 2.0的附加范围。

  

enter image description here

     

enter image description here

code.gs

这是一个要调用的示例函数代码。

// This function does nothing. Just a test.
function myFunction(data) {

    var sheet = SpreadsheetApp.getActiveSheet();

    return "success!!";

}

与项目

关联的脚本
  

enter image description here

其他信息

  1. 我将我的项目部署为API可执行文件。
  2. 我在开发者控制台上启用了执行API。
  3. 我在开发者控制台上创建了OAuth 2.0客户端ID。
  4. 参考

    https://developers.google.com/apps-script/guides/rest/api#limitations

4 个答案:

答案 0 :(得分:1)

是公开的脚本还是仅供您使用?我得到了这个错误,当我公开脚本时它解决了。我正在做一个Android应用程序,所以答案可能不完全适用。

答案 1 :(得分:1)

我在使用Google提供的快速入门文档时遇到了类似的问题。我注意到你的范围有两个项目。请注意将第二个范围添加到阵列中。对我来说,我使用node.js quickstart所以第10行看起来像这样:

    <div class="triple" id="product_cols_2">
    <div>…</div>…
    <div>…</div>
    <h2>Data</h2>
    <div>
    <table class="ecoData" border="0" cellspacing="0" cellpadding="0">
    <tbody> 
    <tr>    
     <td>
     Consumer Confidence
     <br> 
     <span class="metatext">Dec 2016, CBoC</span>
     </td>
     <td align="center" class="pGreen" style="padding-right: 6px;">1.1</td> 
     <td align="center">…</td>

此外,正如这一行(第8-9行)所示,我必须使用我之前的凭据。转到您的主目录并找到(隐藏的)文件夹.credentials。对我来说,命令是:

var SCOPES = ['https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/spreadsheets'];

我做了一个,我重新运行了我的脚本,获得了授权,并且一切正常。

答案 2 :(得分:0)

您的403错误表示您在服务帐户的身份验证中错误或错过了某些配置。确保应用程序脚本与正确的开发控制台项目相关联。 该脚本应与使用OAuth 2.0客户端ID的开发控制台项目ID相关联(此开发控制台项目还应具有&#34; Apps脚本执行API&#34;已启用)。

要更改应用脚本的开发者控制台项目,请选择以下菜单项:资源&gt;开发者控制台项目。

答案 3 :(得分:0)

昨天我遇到了同样的问题:虽然我做的一切都是正确的,但我得到了同样的错误。

我通过删除.credentials文件并重新运行代码解决了这个问题。如果之前没有这样做,请尝试一下。