Google access_token未定义

时间:2015-11-10 19:18:54

标签: javascript jquery-mobile google-books

我正在开发一个移动网络应用程序,该应用程序将访问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?

2 个答案:

答案 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