Google People API返回“请求缺少有效的API密钥。”

时间:2018-01-25 18:49:30

标签: google-sheets-api google-people google-apps-activity

我没有对我在Chrome扩展程序中的Google表格集成进行任何代码更改(仅在我们公司内部使用)。今天,我收到“403”错误消息“请求缺少有效的API密钥。”

我没有使用API​​密钥而且从来没有 - 只是一个客户端ID。这种情况多年来一直很好,直到今天或昨天。

我的范围是https://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/userinfo.profile

有什么想法?这里有什么变化,我不知道吗?我确实看到了这一点:https://github.com/zquestz/omniauth-google-oauth2/issues/106但是时间框架并没有与我所看到的一致。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,修复方法是手动设置OAuth2令牌:

gapi.auth.setToken({access_token: oauthToken});

对于上下文,这是我的background.js中的auth和初始化流程:

var oauthToken;

chrome.identity.getAuthToken(
  {
    'interactive': true,
    'scopes': <scopes>,
  },
  function(token) {
    oauthToken = token;

    // load Google client APIs
    window.gapi_onload = authGapi;
    var request = new XMLHttpRequest();
    request.onreadystatechange = function() {
      if ((request.readyState !== 4) || (request.status !== 200)) {
            return;
          }
      eval(request.responseText);
    };
    request.open('GET', 'https://apis.google.com/js/client.js');
    request.send();
    }
);

var authGapi = function() {
  gapi.auth.authorize({
        immediate: true,
        client_id: <clientId>,
        scope: <scopes>,
  },
  function(response) {
    gapi.client.init({
      discoveryDocs: [
        'https://sheets.googleapis.com/$discovery/rest?version=v4',
      ]
    }).then(function() {
      gapi.auth.setToken({access_token: oauthToken});
      });
  });
}