我们正在使用Google的API发现服务将Google App State集成到我们基于网络的游戏中。我们的测试代码如下所示:
gapi.client.load('appstate','v1',function(response) {
var request = gapi.client.appstate.states.update({ stateKey: 0 });
request.execute(function(result) { console.log(result); });
});
我总是收到带有消息&#34的HTTP 400;更新请求不包含任何数据。"。这是有道理的,因为我没有传递任何数据,问题是我不知道如何传递数据(又名状态),我找不到任何关于如何做的文档。我尝试传递一些数据和stateKey
{ stateKey: 0 , data: <some-base64-encoded-data> }
但是这仍然失败了同样的消息。
在检查了库的缩小代码之后,我开始怀疑这个功能仍未实现。
更新(在做了更多实验之后)
我也尝试过这样使用gapi.client.request
:
var request = gapi.client.request({
'path': '/appstate/v1/states',
'params': { 'stateKey': '0' },
'method': 'PUT',
'body': {
'kind': 'appstate#updateRequest',
'data': 'ZGF0YQ=='
}
});
但是我得到404
并且我认为这是因为此方法以&stateKey=0
样式传递请求参数。另一方面,如果我使用'path': '/appstate/v1/states/0'
,我会得到一个冲突响应,这正是我所期待的。
如果我错了,请纠正我,但我开始相信问题是由于Google的不同网络API之间的不一致,他们现在正试图合并到一个界面中。< / p>
答案 0 :(得分:0)
在最初的基于发现的方法中,您需要在名为&#39; resource的参数中传递数据。 以下是appstate / v1的发现文档:https://www.googleapis.com/discovery/v1/apis/appstate/v1/rpc