Python を使用して Google App Engine アプリを開発しています。そして、私は使用しています:
- Google Calendar API v3 (自分のドメインのカレンダーにアクセスするため。つまり、これは自分のドメインにインストールされた Google Apps です)
- Python 用の Google API クライアント ライブラリ。
- 自分のドメイン (name@mydomain.com) のユーザーを認証するための OAuth2
次の理由から、サービス アカウントを使用する必要があると考えました。
「アプリケーションのプロジェクトが所有するデータにアクセスするために App Engine アプリケーションが API を呼び出す必要がある場合は、サービス アカウントを使用して OAuth 2.0 を簡素化できます。」
https://developers.google.com/api-client-library/python/platforms/google_app_engine#ServiceAccountsから取得
しかし、私が何かを誤解したかどうかはわかりません。私のシナリオ (自分のドメインで GAE アプリが Google Apps にアクセスしようとしている) は、サービス アカウントの候補ですか?
OAuth2 を処理する方法をいくつか試しました。
- 前述のように、サービス アカウントを使用する
- Python 用の Google API クライアント ライブラリによって提供される Python デコレータを使用 (OAuth2Decorator および OAuth2DecoratorFromClientSecrets)
どちらの場合も、同じエラーが発生します。
- ローカル マシンで実行: https://www.googleapis.com/calendar/v3/calendars/primary/events?alt=jsonを要求すると、HttpError 401が「無効な資格情報」を返しました (次のように JSON オブジェクトとしてイベントを作成しました: https://developers.google.com/google-apps/calendar/v3/reference/events/insert#examples )。エラー スタック トレース: https://dl.dropbox.com/u/61566717/output/local_error
- GAE へのデプロイ: エラー 310 (net::ERR_TOO_MANY_REDIRECTS)。文字列「_ah/login_required?continue=」が URL の最後に数回追加されます。API コンソールで生成されたクライアント ID/クライアント シークレットまたはサービス アカウント パラメータに問題がある可能性がありますか? それらを再作成する必要がありますか?
私は完全に迷っています。手がかりはありますか?
よろしくお願いします