現在のプロジェクトでは、Cloud Endpoints と Cloud Storage API を同時に使用したいと考えています。
クラウド エンドポイントを認証する場合、Google の三目並べアプリの例では、access_token を次のように id_token に設定する必要があると述べています ( github リポジトリを参照)。
var token = gapi.auth.getToken();
// Use id_token instead of bearer token
token.access_token = token.id_token;
ただし、access_token が id_token に設定されると、他の Google API を使用できなくなります。私の場合、Cloud Storage API です。これは、アクセス トークンが無効になっているためです。たとえば、クラウド ストレージ API はInvalid credential を返します。access_token が id_token に設定される前は、access_token は次のようになりますya29.AHES6ZTjklghkljghlkjfghkljsrdölizuklhlfghI_UTfghdfghCg
。非常に長いため、ここに投稿したくない id_token に置き換えられます。
私が考えることができる2つの解決策は次のとおりです。
- それぞれ個別の認証オブジェクトとトークンを使用して、gapi オブジェクトをコピーします。クラウド エンドポイントには id_token を使用し、残りにはもう 1 つを使用します (ただし、これを可能にする方法でオブジェクトをコピーすることはできませんでした)。
- どこかで認証トークンを覚えておいて、呼び出すAPI(クラウドエンドポイント/他のAPI)に応じて置き換えます(これにはおそらく同期が必要で、やや面倒です)
この問題の解決策と実行可能な回避策に非常に興味があります。
この問題が発生した場合は、以下の回答と私のコメントをお読みください。これを完了すると、この質問が実際にはこの質問よりも多いことが理解できます: How do I test Cloud Endpoints with Oauth on devserver
誰かが内部の用語を検索する場合に備えて、ここに質問を残しておきます。