Google API JavaScript客户端库-404 on方法调用
从今天早上开始,我所有使用gapi的应用程序都停止了 我正在使用: 要与我的Google Appengine应用程序的端点通信,例如:Google API JavaScript客户端库-404 on方法调用,javascript,api,google-app-engine,google-cloud-endpoints,client-library,Javascript,Api,Google App Engine,Google Cloud Endpoints,Client Library,从今天早上开始,我所有使用gapi的应用程序都停止了 我正在使用: 要与我的Google Appengine应用程序的端点通信,例如: gapi.client.load('public', 'v2', function(){ gapi.client.public.organizations().execute(function(response){ console.log(response); }); }, 'https://XXX.appspot.com
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"}]
我的应用程序没有记录任何错误。
我可以访问端点API资源管理器(/_ah/API/explorer),没有错误。
我可以在没有错误的情况下进行HTTP请求调用,例如
https://XXX.appspot.com/_ah/api/public/v2/organizations
加载“gapi”-对象时没有错误。我的“public”端点也被加载,我可以使用javascript控制台列出所有方法
我已经向谷歌报告了这个错误
还有谁有这个问题吗?有没有人有快速的解决方案或变通办法?我是否错过了一些Google更新或API更改
感谢这似乎是目前JS客户端库的一个普遍问题,不仅限于端点API,而且影响到所有Google API 唯一真正的“解决办法”是不依赖JS客户端库(过去也有稳定性问题)自己构造HTTP请求,我知道这不是一个快速的解决方案 您还可以尝试对直接REST请求使用该方法,该方法似乎适用于我的一个端点API。(同样,这不是一个快速的解决方案,但可能更好/更容易,因为您仍然可以通过客户端库进行身份验证) 编辑:从链接问题更新 他们将回滚损坏的更新,这将需要几个小时才能完成(目前还没有确切的预计到达时间) 作为一个“快速”修复,您可以明确地将apiVersion添加到每个请求中(注意:
B
在回滚后可能会更改,但它现在可以工作):
编辑2:现在一切似乎都恢复正常。另一个解决方法是传递发现文档url。 示例发现文档url为
- 网址=
- localHostURL=
load(“”)。然后(()=>{Your promise return callback function})我也遇到了同样的问题。谷歌appengine仪表板没有报告任何问题谷歌已经确认存在问题。你可以在这里关注这个问题——我建议大家订阅谷歌应用引擎宕机通知组,如果你还没有这样做的话——这个问题似乎已经解决了。我的应用程序又恢复了!来自Goolgle support:“一些用户已经恢复了Google API JavaScript客户端功能,我们希望在不久的将来所有用户都能得到解决。请注意,这个时间范围是一个估计值,可能会改变。”没错,我想我必须编写自己的请求包装,以避免将来出现错误。我正处于制作的早期阶段,所以没有太多需要重写的内容。感谢您提供关于“gapi.client.request”的提示,这可能会很有用。
gapi.client.request({
"path": "/public/v2/organizations",
"root": "https://XXX.appspot.com/_ah/api"
}).execute(function (response) {
console.log(response);
});
var request = gapi.client.public.organizations();
request.B.apiVersion = "v2";
request.execute(function (response) {
console.log(response);
});