web-dev-qa-db-ja.com

Google Calendar API(oauth2)が「不十分な許可」で応答するのはなぜですか?

私は次のURLに対してgetリクエストを行っています({id}をWebインターフェースからのidに置き換えます):

https://www.googleapis.com/calendar/v3/calendars/{id}

いくつかの主張:

  1. 有効なアクセストークンでAuthorizeヘッダーが正しく設定されている(トークンはAnalytics APIで正常に機能します)

  2. Oauth2に次のスコープを設定しました。これは正しく表示されます。

    https://www.googleapis.com/auth/calendar
    
  3. トークンの有効期限が切れていないようです。 Analytics APIで機能します。

    { "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
    
26
rob_mccann

修正するために、 https://accounts.google.com/IssuedAuthSubTokens でアプリへのアクセスを取り消し、その後再試行したところ、APIに正しくアクセスできました。

リストにスコープがあり、GoogleのOAuth2許可ページにスコープが表示されているにもかかわらず、追加のスコープは許可されませんでした。

23
rob_mccann

スコープが含まれていることを再確認します-間違ったスコープをリクエストしたときにその正確なメッセージを見ました。 https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx にアクセスすると、確認するための良い方法です。

チェックアウトすると仮定すると、アクセストークンを持っているユーザーに、アクセスしようとしているカレンダーを表示する権限があることを確認してください。 「ギア」アイコン->「設定」->「カレンダー」->(カレンダーを選択)->「このカレンダーを共有」

7
aeijdenberg

カレンダーのスコープを追加 カレンダーAPIにアクセス およびアクセス構成を確認

https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.readonly
6
Filsh

カレンダーにアクセスするための十分な許可を得るには、Google Plusスコープを含める必要がありました。

したがって、私のscopeは次のようになりました。

'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'

2
Dylan Pierce

https://security.google.com/settings/security/permissions でアクセス許可を付与するために、アプリケーションへのアクセス許可を削除してから元に戻す必要がありました

0
NoE

イベントを追加または編集するときにも同じ問題に直面します。そして、いくつかのグーグル検索の後、1つのスコープがすべての許可を与えることがわかりました-

https://www.googleapis.com/auth/calendar
0
Mahfuzur Rahman

Googleカレンダーにイベントを追加しようとしたときに同じ問題が発生しました。私がこれを最終的に修正した方法:

  • ファイル 'credentials.json'を削除します
  • 「SCOPES = ' https://www.googleapis.com/auth/calendar '」で記述されたGoogleのクイックスタートプログラムのようなPythonプログラムを起動します。このプログラムは、私のために働いた唯一のソリューションでした。 Djangoコマンドを起動して、実際の作業を呼び出せませんでした。しかし、これは私の許可の問題を修正しました。

次に、ブラウザが開き、Googleがカレンダーを管理し、レパートリーに新しい「credentials.json」を作成する許可を求めます。

0
Thomas Simmer