我想让JSON-RPC调用从本地主机(WAMP环境)到谷歌FusionTables API(和其他几个API)使用谷歌客户端库JavaScript
我所采取的步骤:
- 在Google Developer Console上设置一个项目
- 启用了FusionTables API
- 创建服务账号并下载JSON文件
- 用验证包
gapi.load('client:auth2', initAuth);
成功加载JS客户端库- 通过以下三种方式构造init方法参数:
- 下载的JSON文件
- 下载的JSON修改为包含
范围- 只是客户端ID和作用域
- 尝试初始化GoogleAuth实例:
gapi.auth2.init(params)
<>之前函数失败(reason) {console.log(原因);}gapi。负载(客户:auth2, initAuth);函数initAuth() {var APIkey = '我的API密钥';gapi.client.setApiKey (APIkey);//我理解这对于授权请求是不必要的,只是为了更好地测量var GDTSAKey = '我的服务帐户密钥';Var scope = 'https://www.googleapis.com/auth/fusiontables';gapi.auth2.init ({client_id:"101397488004556049686",范围:"https://www.googleapis.com/auth/fusiontables"})。然后(sign, failed("could 't initiate"));//将下载的JSON对象作为参数逐字传递给init也不起作用}//initAuth ()函数signin() {gapi.auth2.getAuthInstance().signIn().then(makeAPIcall), failed("无法登录");}函数makeAPIcall () {gapi.client。加载('fusiontables', 'v2', function(){var tableId = '1PSI_…';var table = gapi.client.fusiontables.table.get(tableId);document.querySelector("#")。innerHTML = table;});}之前基于JS客户端库的
gapi.auth2.init
方法调用第二个回调(我理解为错误处理程序):失败("无法启动"),但是,奇怪的是,我也得到"无法登录",这只能起源于提供的成功处理程序。这是怎么呢我怎么让它工作?
注意:我只愿意尝试CORS/xhr,如果没有办法做到这一点与JS客户端库。
怎么回事?
您正在尝试使用不支持服务帐户的Google JavaScript客户端库的服务帐户。
我怎么让它工作?
切换到Oauth2身份验证,或者如果必须使用服务帐户,则切换到服务器端语言,例如PHP或python。其中支持服务帐户身份验证。