授权客户端JS API调用Google'的具有现有访问令牌的gap库
Authorized client-side JS API calls with Google's gapi library with an existing access token?
一些背景
我使用Meteor作为应用程序框架,并使用accounts-google
包对用户进行身份验证。使用accounts包非常好,因为它处理了获取访问令牌、到期时刷新令牌等所有繁琐的工作。然而,我想要更多关于用户的配置文件信息,而不是Meteor.user()
对象中填充的信息。
使用Facebook,我可以轻松地加载他们的客户端JS库,并使用Meteor.user().services.facebook.accessToken
和api上的文档进行图形api请求:
https://developers.facebook.com/docs/javascript/reference/FB.api
我的问题
在引用Google的JavaScript API时,文档指出,在进行API调用时,请求会自动包含访问令牌,但仅在使用gap处理授权请求时。
https://developers.google.com/api-client-library/javascript/features/authentication#MakingtheAPIrequest
当依赖第三方授权包时(或者当您的应用程序在客户端之外处理谷歌的身份验证时),这没有帮助。
是否有任何方法可以在使用gapi.client
库方法的请求中使用现有的访问令牌?
我为此挣扎了很长时间,在这里我发现了一个类似的问题:
Google OAuth2-使用外部生成的访问令牌-使用JS客户端库
然而,这个人已经知道该做什么了,只是不知道如何打合适的电话,所以我很幸运找到了它。
解决方案
为了使用现有的访问令牌发出gapi
请求,您必须调用:
gapi.auth.setToken({
access_token: "token_string"
});
在提出客户端请求之前。在Meteor中,您可以使用Meteor.user().services.google.accessToken
来代替上面的"token_string"
。
有关该方法的文档如下:
https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthsetToken
- 使用Javascript获取Twitter访问令牌
- FB.login访问令牌facebook javascript SDK
- Phonegap:获取访问令牌时出现LinkedIn登录错误
- 访问令牌和响应数据
- 访问令牌facebook未激活
- OAuth和访问令牌
- 如何安全地获取&使用Facebook应用程序访问令牌发送通知使用PHP&Javascript
- 使用Javascript向ID数组发送通知时出现Facebook访问令牌错误
- 如何使用密码和用户名从 bitly 获取访问令牌
- Facebook Javascript SDK:发布到提要时验证访问令牌时出错
- Axios CORS 问题与 Github oauth 未获取访问令牌
- 在 js sdk 中手动设置访问令牌
- 如何使用访问令牌与Facebook Graph API
- 打开图形:Java脚本:必须使用活动访问令牌来查询有关当前用户的信息
- 在angularjs或nodejs中获取Pocket访问令牌
- 从网页在amazoncognito中注册Facebook访问令牌
- 授权客户端JS API调用Google'的具有现有访问令牌的gap库
- 使用Javascript SDK时,我需要传递访问令牌吗
- 必须使用活动访问令牌来查询有关具有打开图的当前用户的信息
- 使用facebookjavascript sdk向FQL添加访问令牌