0

当我从 chrome 扩展向 google 执行 api 发布请求时,我收到 404 错误。

我确定我的客户 ID 正确且范围正确。此外,我要调用的脚本 ID 和函数名称也是正确的。

我还将脚本作为 api 可执行文件发布给所有人。

这是我的示例 chrome 扩展文件。

请帮帮我!

我被这个问题困扰了很长时间。

清单.json

{
  "name": "Execution Api Test",
  "version": "0.1",
  "manifest_version": 2,

  "description": "Execution Api Test",

  "permissions": [
    "identity",
    "tabs",
    "http://*/*",
    "https://*/*"
  ],

  "background": {
    "scripts": ["background.js"]
  },

  "oauth2": {

    "client_id": "816912884742-icjd8pjj58m4rvrh211f1rrg97bkepho.apps.googleusercontent.com",

    "scopes": [
      "https://www.googleapis.com/auth/spreadsheets"
    ]

  },

  "page_action": {
    "default_icon": "icon.png",
    "default_title": "test"
  }


}

背景.js

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
        chrome.pageAction.show(tabId);

});


chrome.pageAction.onClicked.addListener(function () {

    chrome.identity.getAuthToken(

        {'interactive': true},

        function(token) {

            //I get access token successfully.
            console.log(token);

            var scriptID = "MR4ao03vpkqX-hTekNkflNDxdZGPvncRS";

            var apiURL = "https://script.googleapis.com/v1/scripts/" + scriptID + ":run";

            var requestBody = {
                "function": "myFunction",
                "devMode": true
            };

            var xhr = new XMLHttpRequest();
            xhr.open('POST', apiURL, true);

            xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
            xhr.setRequestHeader('Authorization', 'Bearer ' + token);

            xhr.send(JSON.stringify(requestBody));


        });

});

# 我需要的所有信息!!!

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

Google 执行 API 存在问题。目前,您不能将服务帐户用于 Exection API。有跟踪票: https ://code.google.com/p/google-apps-script-issues/issues/detail?id= 5461 它包含可能的解决方法。您也可以在 GScript 中使用它来正确授权: https ://github.com/googlesamples/apps-script-oauth2

于 2016-07-15T16:20:34.727 回答