6

Djangoアプリ(Googleアプリエンジンを使用していない)に、GoogleコンタクトデータAPIを使用してGoogleコンタクトからデータを取得させようとしています。認証ドキュメントとDataAPIPythonクライアントドキュメントを確認する

使い捨てトークンを取得する最初のステップ(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リクエストを作成する方法のいずれかを使用して、ヘルプ/アドバイス/提案をいただければ幸いです。

4

3 に答える 3

4

2.0 のドキュメントによると、ここに Python のサンプル セットがあります...

サンプルコードの実行

このドキュメントに示されているすべてのサンプル コードを含む、完全に機能するサンプル クライアントは、ディレクトリの下の Python クライアント ライブラリ ディストリビューションで入手できますsamples/contacts/contacts_example.py

サンプル クライアントは、Contacts Data API の使用方法を示すために、連絡先に対していくつかの操作を実行します。

うまくいけば、それはあなたを正しい方向に向けるでしょう.

于 2009-04-02T14:43:43.320 に答える
1

最近、同様の問題が発生しました。「secure」を「true」に設定することで、鉱山が修正されました。

  next = 'http://www.coolcalendarsite.com/welcome.pyc'
  scope = 'http://www.google.com/calendar/feeds/'
  secure = True
  session = True
  calendar_service = gdata.calendar.service.CalendarService()
于 2009-04-04T15:26:00.107 に答える
1

認証には 4 つの異なる方法があります。AuthSub を使用することは本当に重要ですか? AuthSub を機能させることができない場合は、ClientLoginアプローチを検討してください。それを機能させるのに問題はありませんでした。

于 2009-04-04T15:39:21.573 に答える