Google Data API認証
-
22-08-2019 - |
質問
私はDjangoのアプリ(Googleのアプリエンジンを使用していない)、Googleの連絡先データAPIを使用して、Googleの連絡先からデータを取得を取得しようとしています。 認証文書のと同様に、<のhref = "HTTP経由で行きます: //code.google.com/apis/contacts/docs/1.0/developers_guide_python.html」のrel = "nofollowをnoreferrer">データAPIのPythonクライアントのドキュメントの
単一使用トークンを取得しているまずステップ(AuthSubRequest)が正常に動作します。セッショントークンへのアップグレード単一使用トークンである次のステップ(AuthSubSessionToken)。
:PythonのAPIコールUpgradeToSessionToken()単に私のために動作しませんでしたが、それは私にNonAuthSubToken例外を与えましたgd_client = gdata.contacts.service.ContactsService()
gd_client.auth_token = authsub_token
gd_client.UpgradeToSessionToken()
私はそれがHTTPリクエストを構築する「手動」で働いて取得したいの代替として:
url = 'https://www.google.com/accounts/AuthSubSessionToken'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'AuthSub token=' + authsub_token,
'User-Agent': 'Python/2.6.1',
'Host': 'https://www.google.com',
'Accept': 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2',
'Connection': 'keep-alive',
}
req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
これは私に別のエラーを与えます:
HTTPエラー302:HTTPサーバが無限ループにつながるリダイレクトエラーを返しました。最後の30Xエラーメッセージがしてます:
一時的に移動しました私はここで間違って何をしているのですか?私は、私が使用しようとしていますのいずれかの方法でヘルプ/アドバイス/提案をいただければと思います:PythonのAPIコール(UpgradeToSessionToken)またはurllib2のと手動構築HTTPリクエストを
解決
のがここでの2.0ドキュメントによると、 Pythonの例が設定されている...
サンプルコードを実行する
完全に動作するサンプルクライアント、本書に示されているすべてのサンプル・コードを含む、ディレクトリ
samples/contacts/contacts_example.py
の下、Pythonクライアントライブラリの配布に使用可能です。サンプルクライアントは、連絡先データAPIの使用を実証するための連絡先にいくつかの操作を行います。
うまくいけば、それは正しい方向にあなたを指します。
他のヒント
私は最近、同様の問題がありました。鉱山は、「真」に「安全な」設定することにより、固定しまっています。
next = 'http://www.coolcalendarsite.com/welcome.pyc'
scope = 'http://www.google.com/calendar/feeds/'
secure = True
session = True
calendar_service = gdata.calendar.service.CalendarService()
認証する4つの方法があります。あなたはAuthSubのを使用することが本当に重要なのですか?あなたはAuthSubのは、仕事を得ることができない場合は、のClientLogin を考えますアプローチ。私は何の問題仕事にそれを得ることがありませんでした。