は、同じドメイン/組織の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--
誰もこれを理解することができれば、私はなるだろう永遠に感謝します
ありがとう!
このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 19024738) –