我正在开发一个移动网络应用程序,该应用程序将访问Google Books API并允许用户将书籍添加到他们的“收藏夹”中。书架。这是我第一次使用需要Google授权的API。
我需要发送修改私人用户数据的授权请求。我(想)我有正确的access_token,但我无法弄清楚如何去做。
我正在使用Google登录按钮:
` <div class="g-signin2" data-onsuccess="onSignIn"></div> `
我也有这个来识别我对谷歌的申请:
`<meta name="google-signin-client_id" content="12345.apps.googleusercontent.com"> `
我使用自己的Google帐户登录,Google按钮切换为&#34;已登录。&#34;我只是想从那里记录访问令牌:
` function onSignIn(googleUser) {
googly = gapi.auth2.getAuthInstance();
var id_token = googly.currentUser.get().getAuthResponse().access_token;
console.log(id_token);
} `
我已经尝试了我在文档中找到的所有内容,但无论我做什么,我都会回来说access_token是未定义的。
我怀疑我实际上并没有访问令牌,但我不知道如何测试。
找到access_token的正确方法是什么?一旦我拥有它,我该如何将它发送到API?
答案 0 :(得分:3)
它已经太晚了,但是如果你将true参数传递给getAuthResponse&#34; getAuthResponse(true)&#34;它返回access_token。
答案 1 :(得分:1)
尝试在识别平台中使用API Client Library中的gapi.auth
代替gapi.auth2
。您应该会发现gapi.auth.getToken().access_token
包含您需要的访问令牌。
那就是说,我相信这是一个错误。如果您alert(JSON.stringify(googleUser))
我怀疑您会发现其中隐藏了access_token
字段,但getAuthResponse()
不包含该字段,即使docs建议应该有之一。
如果有人能够确认我正确理解并报告,那就太棒了。
如果您将请求标头中的response_type包含为'token',它将返回带有currentUser的access_token