适用于JavaScript的Google API客户端库 - 404方法调用

use*_*146 3 javascript api google-app-engine client-library google-cloud-endpoints

从今天早上起,我使用gapi的所有应用程序都已关闭.

我正在使用:https: //apis.google.com/js/client.js

与我的Google Appengine应用程序的端点进行通信,例如:

gapi.client.load('public', 'v2', function(){
    gapi.client.public.organizations().execute(function(response){ 
        console.log(response); 
    }); 
}, 'https://XXX.appspot.com/_ah/api');
Run Code Online (Sandbox Code Playgroud)

截至今天,所有呼叫都响应,并显示以下错误消息:

[{"error":{"code":404,"message":"Not Found","data":[{"domain":"global","reason":"notFound","message":"Not Found"}]},"id":"gapiRpc"}]
Run Code Online (Sandbox Code Playgroud)

我的应用程序没有记录任何错误.我可以毫无错误地访问Endpoint API资源管理器(/ _ah/api/explorer).我可以无错误地进行HTTP请求调用,例如

https://XXX.appspot.com/_ah/api/public/v2/organizations
Run Code Online (Sandbox Code Playgroud)

"gapi"对象加载没有错误.我的"公共"端点也被加载,我可以使用javascript控制台列出所有方法.

我已向Google报告此错误.

还有其他人有这个问题吗?有没有人有任何快速的解决方案或解决方法?我是否可能错过了一些Google更新或API更改?

谢谢

Sca*_*ami 6

目前,JS Client库似乎是一个普遍问题,不仅限于Endpoints API,还会影响所有Google API.

https://code.google.com/p/google-api-javascript-client/issues/detail?id=136

只有真正的"解决方法"不依赖于JS客户端库(过去也存在稳定性问题)并自己构建HTTP请求,我知道这不是一个快速的解决方案.

您也可以尝试将该gapi.client.request方法用于直接REST请求,这似乎适用于我的一个端点API.(再次,不是一个快速的解决方案,但可能更好/更容易,因为您仍然通过客户端库进行身份验证).

gapi.client.request({
  "path": "/public/v2/organizations",
  "root": "https://XXX.appspot.com/_ah/api"
}).execute(function (response) { 
  console.log(response); 
});
Run Code Online (Sandbox Code Playgroud)

编辑:从链接问题更新

他们将回滚破碎的更新,这将需要几个小时才能完成(尚未确切的ETA).

作为"快速"修复,您可以明确地将apiVersion添加到每个请求中(注意:B回滚后可能会更改,但现在可以正常工作):

var request = gapi.client.public.organizations();
request.B.apiVersion = "v2";
request.execute(function (response) {
  console.log(response);
});
Run Code Online (Sandbox Code Playgroud)

编辑2:现在一切似乎都恢复正常了.