已授权的客户端JS API调用带有现有访问令牌的Google的gapi库?

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库方法在请求中使用现有访问令牌?

mar*_*arc 5

我为此苦苦挣扎了很长时间,并且能够在这里找到类似的问题:

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