使用Chrome扩展程序检索Google表格数据

时间:2019-03-20 17:06:44

标签: javascript google-chrome-extension google-sheets google-sheets-api

我找到了多个相似的教程和文章,但没有一个能给我答案。我已经遍历了这些和其他内容:

https://developer.chrome.com/extensions/tut_oauth

Google sheets API with chrome extension, how to use?

Google Sheets API and Chrome Apps

Accessing Google Sheets from Chrome extension via Chrome Identity API

我正在尝试从Chrome扩展程序中读取Google表格。我已登录Chrome,并且可以使用自己的帐户访问该工作表,并且也登录了云端硬盘。我已经从清单中的开发人员仪表板中获取了ID,并在Google API上设置了客户端ID和身份验证密钥的凭据。

manifest.json

{
  "name": "",
  ...

  "key": "---nice long key here--",
  "oauth2": {
    "client_id": "...apps.googleusercontent.com",
    "scopes": ["https://www.googleapis.com/auth/spreadsheets.readonly"]
  },
  "permissions": ["identity", "identity.email", "tabs", "declarativeContent", "storage"],
  ...
  "manifest_version": 2
}

我可以控制台登录auth令牌,但不能完全确定如何从工作表中提取数据。

window.onload = function() {
  document.getElementById('fetch-btn').addEventListener('click', function() {
    console.log('fetch btn press');
    chrome.identity.getAuthToken({interactive: true}, function(token) {
      console.log(token);
      //GET DATA HERE WITH FETCH()??
    });
  });
};

我只想能够读取图纸数据。到目前为止,我最好的是:

let init = { 
        method: 'GET',
        async: true,
        headers: {
            Authorization: 'Bearer ' + token,
            'Content-Type': 'application/json'
        },
        'contentType': 'json'
    };

 fetch('https://docs.google.com/spreadsheets/d/--SHEET-ID--/values?key=apiKey', init)
.then((response) => response.json())
.then(function(data) {
   console.log(data)
 });

但是它返回404和“未捕获(承诺)SyntaxError:JSON中位置0的意外令牌<”。

如果我直接在浏览器中尝试此URL:

https://sheets.googleapis.com/v4/spreadsheets/--SHEET-ID--?key=apiKey

...使用正确的ID和密钥,我得到以下信息:

{
  "error": {
    "code": 404,
    "message": "Requested entity was not found.",
    "status": "NOT_FOUND"
  }
}

非常感谢任何帮助或指点。

1 个答案:

答案 0 :(得分:0)

结果证明确实可以,URL不太准确