【问题标题】:Google access_token is undefinedGoogle access_token 未定义
【发布时间】:2016-02-11 19:03:27
【问题描述】:

我正在开发一个移动网络应用程序,该应用程序将访问 Google Books API 并允许用户将书籍添加到他们的“收藏夹”书架中。这是我第一次使用需要 Google 授权的 API。

我需要发送授权请求来修改私人用户数据。我(认为)我有正确的 access_token 但我不知道如何获得它。

我正在使用 Google 登录按钮,如下所示:

` <div class="g-signin2" data-onsuccess="onSignIn"></div> `

我也有这个来向 Google 识别我的应用程序:

`<meta name="google-signin-client_id" content="12345.apps.googleusercontent.com"> `

我使用自己的 Google 帐户登录,Google 按钮变为“已登录”。我只是想从那里记录访问令牌:

` 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?

【问题讨论】:

标签: javascript jquery-mobile google-books


【解决方案1】:

太晚了,但如果你将 true 参数传递给 getAuthResponse "getAuthResponse(true)" 它会返回 access_token。

【讨论】:

    【解决方案2】:

    尝试在识别平台中使用gapi.auth 代替API Client Library 中的gapi.auth2。您应该会发现 gapi.auth.getToken().access_token 包含您需要的访问令牌。


    也就是说,我相信这是一个错误。如果您 alert(JSON.stringify(googleUser)) 我怀疑您会发现其中埋有一个 access_token 字段,但 getAuthResponse() 不包含它,即使 docs 建议应该有一个。

    如果有人能确认我理解正确并报告,那就太好了。


    如果您在请求标头中包含 response_type 作为“令牌”,它将返回带有 currentUser 的 access_token

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      相关资源
      最近更新 更多