私は次のURLに対してgetリクエストを行っています({id}をWebインターフェースからのidに置き換えます):
https://www.googleapis.com/calendar/v3/calendars/{id}
いくつかの主張:
有効なアクセストークンでAuthorizeヘッダーが正しく設定されている(トークンはAnalytics APIで正常に機能します)
Oauth2に次のスコープを設定しました。これは正しく表示されます。
https://www.googleapis.com/auth/calendar
トークンの有効期限が切れていないようです。 Analytics APIで機能します。
{ "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
修正するために、 https://accounts.google.com/IssuedAuthSubTokens でアプリへのアクセスを取り消し、その後再試行したところ、APIに正しくアクセスできました。
リストにスコープがあり、GoogleのOAuth2許可ページにスコープが表示されているにもかかわらず、追加のスコープは許可されませんでした。
スコープが含まれていることを再確認します-間違ったスコープをリクエストしたときにその正確なメッセージを見ました。 https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx にアクセスすると、確認するための良い方法です。
チェックアウトすると仮定すると、アクセストークンを持っているユーザーに、アクセスしようとしているカレンダーを表示する権限があることを確認してください。 「ギア」アイコン->「設定」->「カレンダー」->(カレンダーを選択)->「このカレンダーを共有」
カレンダーのスコープを追加 カレンダーAPIにアクセス およびアクセス構成を確認
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.readonly
カレンダーにアクセスするための十分な許可を得るには、Google Plusスコープを含める必要がありました。
したがって、私のscope
は次のようになりました。
'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'
https://security.google.com/settings/security/permissions でアクセス許可を付与するために、アプリケーションへのアクセス許可を削除してから元に戻す必要がありました
イベントを追加または編集するときにも同じ問題に直面します。そして、いくつかのグーグル検索の後、1つのスコープがすべての許可を与えることがわかりました-
https://www.googleapis.com/auth/calendar
Googleカレンダーにイベントを追加しようとしたときに同じ問題が発生しました。私がこれを最終的に修正した方法:
次に、ブラウザが開き、Googleがカレンダーを管理し、レパートリーに新しい「credentials.json」を作成する許可を求めます。