2017-11-12 11 views
0

は、同じドメイン/組織の2つの異なるアカウントに対して2つの有効なアクセストークンを取得し、2つの呼び出しをそれぞれ独自の認証ヘッダーでバッチしたいと考えています。GoogleバッチAPI、複数の認証ヘッダー

私が正しくそれに読んでいる場合、それはthe API docsに応じて可能なはずである。

外側のバッチリクエストのHTTPヘッダー、などのContent-TypeなどのContentヘッダを除き、に適用されますバッチ内のすべてのリクエスト。外部要求と個々の呼び出しの両方で特定のHTTPヘッダーを指定すると、個々の呼び出しヘッダーの値は外部のバッチ要求ヘッダーの値をオーバーライドします。個々の通話のヘッダーは、その通話にのみ適用されます。

たとえば、特定のコールにAuthorizationヘッダーを指定すると、そのヘッダーはそのコールにのみ適用されます。外側の要求にAuthorizationヘッダーを指定すると、そのヘッダーは独自のAuthorizationヘッダーで上書きされない限り、個々の呼び出しのすべてに適用されます。ポストマン(POST https://www.googleapis.com/batch) と

テストそれを要求には認証ヘッダを持っていないが、内側の要求が有効な認証ヘッダを持っている:私は両方のための応答「ログインが必要」として取得

--batch_foobarbaz 
Authorization:Bearer <accesstoken1> 
Content-Type: application/http Content-ID: one 

GET /gmail/v1/users/me/profile 

--batch_foobarbaz 
Authorization:Bearer <accesstoken2> 
Content-Type: application/http 
Content-ID: two 

GET /gmail/v1/users/me/profile 

--batch_foobarbaz-- 

をリクエストの:

--batch_x-oYQ5TohrI_AAd7PA4mQcg 
Content-Type: application/http 
Content-ID: response-one 

HTTP/1.1 401 Unauthorized 
WWW-Authenticate: Bearer realm="https://accounts.google.com/" 
Content-Type: application/json; charset=UTF-8 
Date: Sun, 12 Nov 2017 12:28:55 GMT 
Expires: Sun, 12 Nov 2017 12:28:55 GMT 
Cache-Control: private, max-age=0 
Content-Length: 238 

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 

--batch_x-oYQ5TohrI_AAd7PA4mQcg 
Content-Type: application/http 
Content-ID: response-two 

HTTP/1.1 401 Unauthorized 
WWW-Authenticate: Bearer realm="https://accounts.google.com/" 
Content-Type: application/json; charset=UTF-8 
Date: Sun, 12 Nov 2017 12:28:55 GMT 
Expires: Sun, 12 Nov 2017 12:28:55 GMT 
Cache-Control: private, max-age=0 
Content-Length: 238 

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 

--batch_x-oYQ5TohrI_AAd7PA4mQcg-- 

Googleは私が内部を望ん「accesstoken1」と要求に認証ヘッダーを入れて、私の第二の試みで、私をコマンドとしてヘッダはそれをオーバーライドします要求:

--batch_foobarbaz 
Content-Type: application/http 
Content-ID: one 
Authorization: Bearer <accesstoken1> 

GET /gmail/v1/users/me/profile 

--batch_foobarbaz 
Content-Type: application/http 
Content-ID: two 
Authorization: Bearer <accesstoken2> 

GET /gmail/v1/users/me/profile 

--batch_foobarbaz-- 

しかし、内部認証ヘッダは無視され、私は両方の内側の要求に同じ応答を取得します:

--batch_acwJ2jJl7Vk_AAwDDvF7GqQ 
Content-Type: application/http 
Content-ID: response-one 

HTTP/1.1 200 OK 
ETag: "Sa8s0oAMlJSbjHHTmOHVq5KXvZM/ij85zVL5i9x1u7LOtgNBEd-PGZY" 
Content-Type: application/json; charset=UTF-8 
Date: Sun, 12 Nov 2017 12:52:16 GMT 
Expires: Sun, 12 Nov 2017 12:52:16 GMT 
Cache-Control: private, max-age=0 
Content-Length: 108 

{ 
"emailAddress": "[email protected]", 
"messagesTotal": 16, 
"threadsTotal": 13, 
"historyId": "7294" 
} 

--batch_acwJ2jJl7Vk_AAwDDvF7GqQ 
Content-Type: application/http 
Content-ID: response-two 

HTTP/1.1 200 OK 
ETag: "Sa8s0oAMlJSbjHHTmOHVq5KXvZM/ij85zVL5i9x1u7LOtgNBEd-PGZY" 
Content-Type: application/json; charset=UTF-8 
Date: Sun, 12 Nov 2017 12:52:16 GMT 
Expires: Sun, 12 Nov 2017 12:52:16 GMT 
Cache-Control: private, max-age=0 
Content-Length: 108 

{ 
"emailAddress": "[email protected]", 
"messagesTotal": 16, 
"threadsTotal": 13, 
"historyId": "7294" 
} 

--batch_acwJ2jJl7Vk_AAwDDvF7GqQ-- 

誰もこれを理解することができれば、私はなるだろう永遠に感謝します

ありがとう!

答えて

0

私の内部認証ヘッダーはGET/POST要求の後に来ると思います。ベアラXXXXXXXXXXXXXXXXXXXX

代わりに

認可:ベアラXXXXXXXXXXXXXXXXXXXX はhttps://www.googleapis.com/calendar/v3/calendars/primary/eventsをGET例

について

https://www.googleapis.com/calendar/v3/calendars/primary/events

認可を取得します。アプリケーション/ HTTP

のContent-ID:1つの

GET/Gmailの/ V1 /ユーザ/あなたの例では

、それは

--batch_foobarbaz

Content-Typeのだろう私/プロフィール

承認:ベアラー

これは私のために働いた。これがあなたのために働いているかどうか教えてください。

+0

このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 19024738) –