从今天早上起,我使用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');
截至今天,所有呼叫都会响应,并显示以下错误消息:
[{"error":{"code":404,"message":"Not Found","data":[{"domain":"global","reason":"notFound","message":"Not Found"}]},"id":"gapiRpc"}]
我的应用程序没有记录任何错误。 我可以毫无错误地访问Endpoint API资源管理器(/ _ah / api / explorer)。 我可以无错误地进行HTTP请求调用,例如
https://XXX.appspot.com/_ah/api/public/v2/organizations
加载“gapi”对象没有错误。我的“公共”端点也被加载,我可以使用javascript控制台列出所有方法。
我已向Google报告此错误。
其他人有这个问题吗?有没有人有任何快速的解决方案或解决方法?我可能错过了一些Google更新或API更改吗?
由于
答案 0 :(得分:6)
目前,JS Client库似乎是一个普遍问题,不仅限于Endpoints API,还会影响所有Google API。
https://code.google.com/p/google-api-javascript-client/issues/detail?id=136
只有真实的"解决问题"不依赖于JS Client Library(过去也存在稳定性问题)并自己构建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);
});
编辑:从链接问题更新
他们将回滚破损的更新,这将需要几个小时才能完成(尚未确切的ETA)。
作为"快速"修复你可以明确地为每个请求添加apiVersion(注意:回滚后B
可能会改变,但现在可以正常工作):
var request = gapi.client.public.organizations();
request.B.apiVersion = "v2";
request.execute(function (response) {
console.log(response);
});
编辑2:现在一切似乎都恢复正常了。
答案 1 :(得分:0)
可以通过传递发现文档URL来完成另一种解决方法。 示例发现文档的网址是
url = http://[application-id].appspot.com/_ah/api/discovery/v1/apis/[endpoint-api-name]/v1/rest
localHostURL =
http://localhost:8080/_ah/api/discovery/v1/apis/[endpoint-api-name]/v1/rest
示例:-
window.gapi.client.load(“ http://localhost:8080/_ah/api/discovery/v1/apis/[endpoint-api-name]/v1/rest”)。then(()=> {您的诺言返回回调函数})
或
window.gapi.client.load(“ http://[application-id].appspot.com/_ah/api/discovery/v1/apis/[endpoint-api-name]/v1/rest”)。then(()=> {您的诺言返回回调函数})