9

これは、Google Calendar APIとOAuth2を使用したときの401エラーに関する私のスレッドの続きです。これは、ここにあります。

これには、次の質問につながるアカウント設定の詳細が含まれているため、このスレッドで繰り返すことはしません。

OK、次のコードを呼び出してカレンダーイベントを更新すると、403forbiddenエラーが発生します。

for (Event event : events.getItems())
{
    event.setSummary("XXX" + event.getSummary());

    Event updatedEvent = calendar.events().update(CALENDAR_ID, event.getId(), event).execute();
}

返されるエラーメッセージは次のとおりです。

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
    "code" : 403,
    "errors" : [ {
        "message" : "Forbidden"
     } ],
    "message" : "Forbidden"
}

私は何を試しましたか?さて、私はサービスアカウントに関する(かなり貧弱な)Googleドキュメントを読み直し、APIコンソールアカウント設定を再確認し、クレデンシャルを構築するコードを変更しようとしました(これは他のエラーにつながるため、以前のスレッドでのリグレッションです) 。

要するに、何も機能しないので、私が見逃している明らかなものはありますか?

4

4 に答える 4

26

この投稿のおかげで解決しました。

Googleカレンダーアカウントのカレンダーを、Google APIコンソールで生成されたサービスアカウントのメール(284XXXXXXXX@developer.gserviceaccount.comなど)と共有する必要があります。

これで、Webサービスからカレンダーを更新できます。

于 2012-12-22T19:02:55.133 に答える
5

カレンダーを共有した後でも、ジャス​​ティンの回答と同じエラーが発生していました。別の作業サンプルと比較した後、私が設定したことがわかりました

var SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"];

それ以外の

var SCOPES = ["https://www.googleapis.com/auth/calendar"];

これが同様の間違いをしてこのエラーを受け取った人に役立つことを願っています。

于 2016-12-02T12:56:55.060 に答える
2

私の場合、GoogleAPIコンソールでCalDAVAPIを有効にする必要がありました。無効にすると403応答が返されます。

これは古い質問ですが、誰かにとって役立つかもしれません。

于 2020-09-12T12:25:35.633 に答える
0

私にとって、上記の提案された解決策をすべて試した後、何も機能しませんでした。ドキュメントで使用されているスコープを確認した後、動作するようになりました。

イベントを取得していたのですが、https://www.googleapis.com/auth/calendarスコープが足りなかったようです。https://www.googleapis.com/auth/calendar.eventsスコープにも追加する必要がありました。

うまくいけば、それはそこに誰かを助けることができます!

于 2022-03-02T23:08:04.330 に答える