我希望能够在 JS 代码中调用 Google+,例如:
gapi.client.plus.people.get({"userId": "me"});
在我的 HTML 中,我正在加载以下 JS 源代码:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=[our maps api key]&sensor=true"></script>
<script type="text/javascript" src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script type="text/javascript" src="biketracker.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/client.js?onload=onGoogleJsClientLoaded"></script>
在 biketracker.js 中,我还对 Google+ JS 进行了异步加载:
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
加载 Google JS 客户端源时的回调会加载其他三个 Google API:
function onGoogleJsClientLoaded() {
console.log("onGoogleJsClientLoaded()");
gapi.client.load("biketracker", "v1", onBikeTrackerApiLoaded, endpointsRoot);
gapi.client.load("oauth2", "v2", onOAuth2Loaded);
gapi.client.load("plus", "v1", onGooglePlusClientLoaded);
}
其中第一个并不是真正的 Google API,而是我们开发的 Google Endpoints API,托管在 App Engine 上。忽略它。OAuth2 加载得很好。但是,Plus API 给了我这些错误:
Invalid gadgets.rpc token. 2006255737 vs 542328210
Uncaught Error: m`apiproxy6892d048ac55f727a04aed9791f4e586b15e69860.4984859501703547
我找不到其他人有同样的错误。我究竟做错了什么?