1

いくつかの背景

私は Meteor をアプリケーション フレームワークとして使用しており、accounts-googleパッケージを使用してユーザーを認証しています。アカウント パッケージを使用すると、アクセス トークンの取得や有効期限の更新などの面倒な作業がすべて処理されるため、非常に便利ですMeteor.user()

Facebook では、クライアント側の JS ライブラリを簡単にロードMeteor.user().services.facebook.accessTokenし、API のドキュメントを使用して以下のようにグラフ 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#MakingtheAPIrequest

これは、サード パーティの承認パッケージに依存している場合 (またはアプリケーションがクライアント側から離れて Google の認証を処理する場合) には役に立ちません。

gapi.clientライブラリ メソッドを使用してリクエストで既存のアクセス トークンを使用する方法はありますか?

4

1 に答える 1

5

私はこれに長い間苦労しましたが、ここに投稿された同様の質問を見つけることができました:

Google OAuth2 - 外部で生成されたアクセス トークンの使用 - JS クライアント ライブラリを使用

しかし、この人は何をすべきかをすでに知っていて、適切な電話をかける方法を知らなかったので、私がそれを見つけたのはかなり幸運でした.

解決

既存のアクセス トークンを使用してgapiリクエストを行うには、次を呼び出す必要があります。

    gapi.auth.setToken({
        access_token: "token_string"
    });

クライアントのリクエストを行う前に。Meteor.user().services.google.accessTokenMeteor では、上記の代わりに使用できます"token_string"

メソッドに関するドキュメントは次のとおりです。

https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthsetToken

于 2015-03-01T16:34:41.380 に答える