Firefox插件:gapi.client未定义

时间:2019-03-10 22:43:14

标签: javascript google-sheets-api firefox-webextensions gapi

我已经尝试了很多来自stackoverflow的建议解决方案,但是都没有用,我怀疑这可能与Cookie或新版本有关,所以我不得不最后问一遍:

我正在尝试在我的firefox Web扩展中使用Google(特别是Sheets)API,并且我已经下载了此文件:https://apis.google.com/js/api.js 并将其添加到我自己的脚本之前的“背景”-“脚本”下的我的manifest.json中,如下面的源代码所示。 这是本教程: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append

我的整个项目太大,所以我以较小的规模重新创建了这个问题:

test.js:

function onCreated() {
  if (browser.runtime.lastError) { console.log(`Error: ${browser.runtime.lastError}`); }
  else { console.log("Item created successfully"); }
  gapi.client.setApiKey('testkey'); //This is the line that doesn't work
}

browser.contextMenus.create({
  id: "testlbl",
  title: "TEST LABEL - CLICK ME",
  contexts: ["all"]
}, onCreated);

browser.contextMenus.onClicked.addListener((info, tab) => {
  if(info.menuItemId == "testlbl") {
      console.log("ACTION TRIGGERED");
      console.log("JQUERY RESULT: "+$(location).attr('href'));
  }
});

manifest.json:

{
    "manifest_version": 2,
    "name": "Testing",
    "description": "Random stuff",
    "version": "1.0",
    "default_locale": "en",
    "background": {
      "scripts": ["api.js", "jquery-3.3.1.min.js", "test.js"]
    },
    "permissions": [
      "contextMenus",
      "activeTab"
    ]
}

messages.json:

{
  "extensionName": {
    "message": "TestLabel",
    "description": "Name of the extension."
  }

}

文件夹结构(如果需要对其进行测试):

mainFolder
--- test.js
--- api.js
--- jquery-3.3.1.min.js
--- manifest.json
--- _locales
------ en
--------- messages.json

我尝试以与您看到的相同的方式添加JQuery,只是为了确保我正确添加了脚本,并且效果很好。我从这里下载的: https://code.jquery.com/jquery-3.3.1.min.js

建议将下载作为解决方案:https://developer.chrome.com/extensions/contentSecurityPolicy#resourceLoading

问题是我在浏览器控制台中收到“ gapi.client未定义”,因此没有任何反应。我只输入了gapi.client.setApiKey('testkey');行以测试Google API并缩小问题范围。

0 个答案:

没有答案