Googleカレンダーイベントウォッチ401無許可

キリアン

Google Calendar Events:watchAPIの使用に問題があります。クライアントIDとクライアントシークレットを設定し、ユーザーからアクセスを取得してトークンを更新することができます。また、ドメインはGoogleAPIコンソールで確認されます以下に示すように、APIを使用して新しいイベントを挿入できます。ただし、Events Watchの呼び出しは、401Unauthorizedメッセージで失敗します。以下にHTTPログを含めました。

Googleが提供するJavaライブラリを使用しています

なぜ私が401Unauthorized応答を受け取っているのか、誰か考えがありますか?

新しいイベントを作成する

CONFIG - Total: 382 bytes
CONFIG - {"attendees":[{"additionalGuests":0,"displayName":"SomeName","email":"[email protected]","optional":false}],"description":"some description","end":{"dateTime":"2018-05-04T20:00:00.000+02:00"},"extendedProperties":{"private":{"someextprop":"someextvalue"}},"start":{"dateTime":"2018-05-04T19:00:00.000+02:00"},"summary":"Some summary"}
(1/8) CONFIG - -------------- REQUEST  --------------
(2/8) POST https://www.googleapis.com/calendar/v3/calendars/primary/events?sendNotifications=true
(3/8) Accept-Encoding: gzip
(4/8) Authorization: Bearer [TOKEN]
(5/8) User-Agent: SomeApp Google-API-Java-Client Google-HTTP-Java-Client/1.23.0 (gzip)
(6/8) Content-Type: application/json; charset=UTF-8
(7/8) Content-Encoding: gzip
(8/8) Content-Length: 269
CONFIG - curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'Authorization: Bearer [TOKEN]' -H 'User-Agent: SomeApp Google-API-Java-Client Google-HTTP-Java-Client/1.23.0 (gzip)' -H 'Content-Type: application/json; charset=UTF-8' -H 'Content-Encoding: gzip' -d '@-' -- 'https://www.googleapis.com/calendar/v3/calendars/primary/events?sendNotifications=true' << $$$
CONFIG - Total: 382 bytes
CONFIG - {"attendees":[{"additionalGuests":0,"displayName":"SomeName","email":"[email protected]","optional":false}],"description":"some description","end":{"dateTime":"2018-05-04T20:00:00.000+02:00"},"extendedProperties":{"private":{"someextprop":"someextvalue"}},"start":{"dateTime":"2018-05-04T19:00:00.000+02:00"},"summary":"Some summary"}
(1/17) CONFIG - -------------- RESPONSE --------------
(2/17) HTTP/1.1 200 OK
(3/17) Transfer-Encoding: chunked
(4/17) Alt-Svc: hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35"
(5/17) Server: GSE
(6/17) X-Content-Type-Options: nosniff
(7/17) Pragma: no-cache
(8/17) Date: Fri, 04 May 2018 16:24:06 GMT
(9/17) X-Frame-Options: SAMEORIGIN
(10/17) Cache-Control: no-cache, no-store, max-age=0, must-revalidate
(11/17) ETag: "3050902092840000"
(12/17) Content-Encoding: gzip
(13/17) Vary: X-Origin
(14/17) Vary: Origin
(15/17) Expires: Mon, 01 Jan 1990 00:00:00 GMT
(16/17) X-XSS-Protection: 1; mode=block
(17/17) Content-Type: application/json; charset=UTF-8
CONFIG - Total: 1.070 bytes
(1/44) CONFIG - {[GOOGLE EVENT JSON, REMOVED FOR BREVITY]}

イベントの作成は期待どおりに機能するため、使用されたアクセストークンが有効であることがわかります。

今、私たちはカレンダーを見ようとします。

CONFIG - Total: 140 bytes
CONFIG - {"address":"https://mysubdomain.mydomain.com/calendar-notification","id":"8bc11345-802b-4f18-bb3b-4e5c0abc53e2","type":"web_hook"}
(1/8) CONFIG - -------------- REQUEST  --------------
(2/8) POST https://www.googleapis.com/calendar/v3/calendars/primary/events/watch
(3/8) Accept-Encoding: gzip
(4/8) Authorization: Bearer [TOKEN]
(5/8) User-Agent: SomeApp Google-API-Java-Client Google-HTTP-Java-Client/1.23.0 (gzip)
(6/8) Content-Type: application/json; charset=UTF-8
(7/8) Content-Encoding: gzip
(8/8) Content-Length: 137
CONFIG - curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'Authorization: Bearer [TOKEN]' -H 'User-Agent: SomeApp Google-API-Java-Client Google-HTTP-Java-Client/1.23.0 (gzip)' -H 'Content-Type: application/json; charset=UTF-8' -H 'Content-Encoding: gzip' -d '@-' -- 'https://www.googleapis.com/calendar/v3/calendars/primary/events/watch' << $$$
CONFIG - Total: 140 bytes
CONFIG - {"address":"https://mysubdomain.mydomain.com/calendar-notification","id":"8bc11345-802b-4f18-bb3b-4e5c0abc53e2","type":"web_hook"}
(1/16) CONFIG - -------------- RESPONSE --------------
(2/16) HTTP/1.1 401 Unauthorized
(3/16) Transfer-Encoding: chunked
(4/16) Alt-Svc: hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35"
(5/16) Server: GSE
(6/16) X-Content-Type-Options: nosniff
(7/16) WWW-Authenticate: Bearer realm="https://accounts.google.com/", error=invalid_token
(8/16) Date: Fri, 04 May 2018 16:24:06 GMT
(9/16) X-Frame-Options: SAMEORIGIN
(10/16) Cache-Control: private, max-age=0
(11/16) Content-Encoding: gzip
(12/16) Vary: X-Origin
(13/16) Vary: Origin
(14/16) Expires: Fri, 04 May 2018 16:24:06 GMT
(15/16) X-XSS-Protection: 1; mode=block
(16/16) Content-Type: application/json; charset=UTF-8

HTTP / 1.1 401 Unauthorized応答のため、アクセストークンが更新されるようになりました。

(1/6) CONFIG - -------------- REQUEST  --------------
(2/6) POST https://accounts.google.com/o/oauth2/token
(3/6) Accept-Encoding: gzip
(4/6) User-Agent: Google-HTTP-Java-Client/1.23.0 (gzip)
(5/6) Content-Type: application/x-www-form-urlencoded; charset=UTF-8
(6/6) Content-Length: 229
CONFIG - curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'User-Agent: Google-HTTP-Java-Client/1.23.0 (gzip)' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -d '@-' -- 'https://accounts.google.com/o/oauth2/token' << $$$
CONFIG - Total: 229 bytes
CONFIG - grant_type=refresh_token&refresh_token=[REFRESHTOKEN]client_secret=[CLIENTSECRET]
(1/15) CONFIG - -------------- RESPONSE --------------
(2/15) HTTP/1.1 200 OK
(3/15) Transfer-Encoding: chunked
(4/15) Alt-Svc: hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35"
(5/15) Server: ESF
(6/15) X-Content-Type-Options: nosniff
(7/15) Pragma: no-cache
(8/15) Date: Fri, 04 May 2018 16:24:06 GMT
(9/15) X-Frame-Options: SAMEORIGIN
(10/15) Cache-Control: no-cache, no-store, max-age=0, must-revalidate
(11/15) Content-Disposition: attachment; filename="json.txt"; filename*=UTF-8''json.txt
(12/15) Content-Encoding: gzip
(13/15) Expires: Mon, 01 Jan 1990 00:00:00 GMT
(14/15) X-XSS-Protection: 1; mode=block
(15/15) Content-Type: application/json; charset=utf-8
CONFIG - Total: 206 bytes
(1/5) CONFIG - {
(2/5)   "access_token" : "[TOKEN]",
(3/5)   "expires_in" : 3600,
(4/5)   "token_type" : "Bearer"
(5/5) }

以前と同じトークンが返されます。図書館は自動的にカレンダーを見に行きます。

CONFIG - Total: 140 bytes
CONFIG - {"address":"https://mysubdomain.mydomain.com/calendar-notification","id":"8bc11345-802b-4f18-bb3b-4e5c0abc53e2","type":"web_hook"}
(1/8) CONFIG - -------------- REQUEST  --------------
(2/8) POST https://www.googleapis.com/calendar/v3/calendars/primary/events/watch
(3/8) Accept-Encoding: gzip
(4/8) Authorization: Bearer [TOKEN]
(5/8) User-Agent: SomeApp Google-API-Java-Client Google-HTTP-Java-Client/1.23.0 (gzip)
(6/8) Content-Type: application/json; charset=UTF-8
(7/8) Content-Encoding: gzip
(8/8) Content-Length: 137
CONFIG - curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'Authorization: Bearer [TOKEN]' -H 'User-Agent: SomeApp Google-API-Java-Client Google-HTTP-Java-Client/1.23.0 (gzip)' -H 'Content-Type: application/json; charset=UTF-8' -H 'Content-Encoding: gzip' -d '@-' -- 'https://www.googleapis.com/calendar/v3/calendars/primary/events/watch' << $$$
CONFIG - Total: 140 bytes
CONFIG - {"address":"https://mysubdomain.mydomain.com/calendar-notification","id":"8bc11345-802b-4f18-bb3b-4e5c0abc53e2","type":"web_hook"}
(1/16) CONFIG - -------------- RESPONSE --------------
(2/16) HTTP/1.1 401 Unauthorized
(3/16) Transfer-Encoding: chunked
(4/16) Alt-Svc: hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35"
(5/16) Server: GSE
(6/16) X-Content-Type-Options: nosniff
(7/16) WWW-Authenticate: Bearer realm="https://accounts.google.com/", error=invalid_token
(8/16) Date: Fri, 04 May 2018 16:24:06 GMT
(9/16) X-Frame-Options: SAMEORIGIN
(10/16) Cache-Control: private, max-age=0
(11/16) Content-Encoding: gzip
(12/16) Vary: X-Origin
(13/16) Vary: Origin
(14/16) Expires: Fri, 04 May 2018 16:24:06 GMT
(15/16) X-XSS-Protection: 1; mode=block
(16/16) Content-Type: application/json; charset=UTF-8

この試行は同じ理由で失敗し、アクセストークンが再度更新されます。数回試行した後、ライブラリは最終的に試行を停止します。

以下の質問を見てきましたが、同じ状況を説明しているとは思いません:https

キリアン

それで、私たちはついに解決策を見つけました。ドメインの確認でエラーが発生しました。だから、コンフィギュレーションを行った当事者が使用https://mysubdomain.mydomain.com/somepath/をして、ドメインの確認だけではなくhttps://mysubdomain.mydomain.com/

私がしました見た以下のようなエラーメッセージを。これにより、コールバックに使用されたURL /ドメインにエラーがあることが明らかになります。空の401応答の代わりに、そのようなメッセージを取得することは役に立ちました。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "push.webhookUrlUnauthorized",
    "message": "Unauthorized WebHook callback channel: XXX"
   }
  ],
  "code": 401,
  "message": "Unauthorized WebHook callback channel: XXX"
 }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カウチベース 401 無許可

分類Dev

許可された無許可のビューに対してブートストラップレイアウトがレンダリングされない

分類Dev

無効な許可を返すGoogleカレンダー

分類Dev

フルカレンダーでのみバックグラウンドイベントのeventOverlapを許可する

分類Dev

Googleカレンダー:特定のAPIエンドポイントで401の無効な認証情報

分類Dev

すべてのGoogleカレンダーウォッチリクエストをキャンセルする

分類Dev

クラウドエンドポイントがエラー401無許可のリクエストを返す

分類Dev

GoogleパブリックカレンダーAPIは、イベントを追加するときにエラー401ログインが必要を返します

分類Dev

Google カレンダーのウォッチ リクエストに Python を使用する

分類Dev

時計ウィジェットにGoogleカレンダーのイベントを表示するには?

分類Dev

Google CalendarAPI無許可でイベントを挿入

分類Dev

フラッターGoogleカレンダーAPIリストイベント

分類Dev

ASP.NETCoreのアカウント/ログインへの許可されていないリダイレクトを無効にする

分類Dev

Androidでダイアログを表示するとウィンドウフォーカスが無効になるため、onKeyDownはタッチイベントをリッスンしません

分類Dev

GCPサービスアカウントを使用したGoogleカレンダーイベントの作成

分類Dev

カレンダーイベントがフェッチされない| Microsoft Graph API | プレミアム個人用Outlookアカウントの使用

分類Dev

プライベート/許可されたブロックチェーンインフラストラクチャプロバイダーを信頼する

分類Dev

(デフォルトの「ビジー」の代わりに)Googleカレンダーで「無料」イベントを作成する

分類Dev

開発者アカウントでGoogleカレンダーイベントを作成する

分類Dev

Google Calendar API(Java)-Googleカレンダーイベントの作成時に無効な時刻形式

分類Dev

Linuxシャットダウン許可

分類Dev

Tkinter:トップレベルウィンドウインスタンスを1つだけ許可する

分類Dev

フルカレンダーREACTJS-逆バックグラウンドイベントへのドラッグを無効にする方法

分類Dev

マウスダウンイベントを要素にディスパッチしても、フォーカスが得られません

分類Dev

フォーカスアウトイベントを抑制するマウスダウンイベント?

分類Dev

フォーカスアウトイベントでマウスダウンイベントを防ぐ方法は?

分類Dev

管理者アカウントのFirebaseストレージ内のユーザーフォルダへのアクセスを許可する方法

分類Dev

PHP Googleカレンダー挿入イベントAPI

分類Dev

FullCalendar-Googleカレンダーイベント+ eventRender

Related 関連記事

  1. 1

    カウチベース 401 無許可

  2. 2

    許可された無許可のビューに対してブートストラップレイアウトがレンダリングされない

  3. 3

    無効な許可を返すGoogleカレンダー

  4. 4

    フルカレンダーでのみバックグラウンドイベントのeventOverlapを許可する

  5. 5

    Googleカレンダー:特定のAPIエンドポイントで401の無効な認証情報

  6. 6

    すべてのGoogleカレンダーウォッチリクエストをキャンセルする

  7. 7

    クラウドエンドポイントがエラー401無許可のリクエストを返す

  8. 8

    GoogleパブリックカレンダーAPIは、イベントを追加するときにエラー401ログインが必要を返します

  9. 9

    Google カレンダーのウォッチ リクエストに Python を使用する

  10. 10

    時計ウィジェットにGoogleカレンダーのイベントを表示するには?

  11. 11

    Google CalendarAPI無許可でイベントを挿入

  12. 12

    フラッターGoogleカレンダーAPIリストイベント

  13. 13

    ASP.NETCoreのアカウント/ログインへの許可されていないリダイレクトを無効にする

  14. 14

    Androidでダイアログを表示するとウィンドウフォーカスが無効になるため、onKeyDownはタッチイベントをリッスンしません

  15. 15

    GCPサービスアカウントを使用したGoogleカレンダーイベントの作成

  16. 16

    カレンダーイベントがフェッチされない| Microsoft Graph API | プレミアム個人用Outlookアカウントの使用

  17. 17

    プライベート/許可されたブロックチェーンインフラストラクチャプロバイダーを信頼する

  18. 18

    (デフォルトの「ビジー」の代わりに)Googleカレンダーで「無料」イベントを作成する

  19. 19

    開発者アカウントでGoogleカレンダーイベントを作成する

  20. 20

    Google Calendar API(Java)-Googleカレンダーイベントの作成時に無効な時刻形式

  21. 21

    Linuxシャットダウン許可

  22. 22

    Tkinter:トップレベルウィンドウインスタンスを1つだけ許可する

  23. 23

    フルカレンダーREACTJS-逆バックグラウンドイベントへのドラッグを無効にする方法

  24. 24

    マウスダウンイベントを要素にディスパッチしても、フォーカスが得られません

  25. 25

    フォーカスアウトイベントを抑制するマウスダウンイベント?

  26. 26

    フォーカスアウトイベントでマウスダウンイベントを防ぐ方法は?

  27. 27

    管理者アカウントのFirebaseストレージ内のユーザーフォルダへのアクセスを許可する方法

  28. 28

    PHP Googleカレンダー挿入イベントAPI

  29. 29

    FullCalendar-Googleカレンダーイベント+ eventRender

ホットタグ

アーカイブ