mar*_*arc 1 javascript access-token meteor meteor-accounts gapi
我使用Meteor作为应用程序框架,并使用该accounts-google软件包对用户进行身份验证。使用帐户包非常好,因为它可以处理获取访问令牌,在到期时刷新令牌等所有繁琐的工作。但是,我希望获得有关用户的更多配置文件信息,而不是Meteor.user()对象中填充的信息。
借助Facebook,我能够轻松地使用Meteor.user().services.facebook.accessToken和遵循API上的文档来加载其客户端JS库并发出图api请求:
https://developers.facebook.com/docs/javascript/reference/FB.api
在引用Google的JavaScript API时,文档指出,在进行API调用时,该请求会自动包括访问令牌,但仅在使用gapi处理授权请求时才包含。
https://developers.google.com/api-client-library/javascript/features/authentication#MakingtheAPI请求
当依赖第三方授权包时(或当您的应用程序从客户端处理Google的身份验证时),这没有帮助。
是否可以使用gapi.client库方法在请求中使用现有访问令牌?
我为此苦苦挣扎了很长时间,并且能够在这里找到类似的问题:
Google OAuth2-使用外部生成的访问令牌-带有JS客户端库
但是,这个人已经知道该做什么,只是不知道如何拨打适当的电话,所以很幸运我找到了它。
为了gapi使用现有的访问令牌发出请求,您必须调用:
gapi.auth.setToken({
access_token: "token_string"
});
Run Code Online (Sandbox Code Playgroud)
在提出客户要求之前。在Meteor中,您可以Meteor.user().services.google.accessToken代替"token_string"上述方法使用。
该方法的文档在这里:
https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthsetToken