Плагин Firefox: gapi.client не определен - PullRequest
0 голосов
/ 11 марта 2019

Я испробовал кучу предлагаемых решений от stackoverflow, но ни одно из них не работает, я подозреваю, что это может быть связано с файлами cookie или новыми версиями, поэтому я должен наконец спросить:

Япытаюсь использовать Google (в частности, Sheets) API в моем веб-расширении firefox, и я скачал это: https://apis.google.com/js/api.js и добавил его в мой manifest.json в "background" - "scripts" перед моим собственным сценарием, как выможно увидеть в исходном коде ниже.Вот учебник: 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 и сузить проблему.

...