Вопрос

Я пытаюсь заставить мое приложение Django (НЕ использовать движок приложений Google) получать данные из контактов Google с помощью API данных контактов Google.Проходя через документация по аутентификации а также Документация клиента API данных Python

Первый шаг (AuthSubRequest), который позволяет получить одноразовый токен, работает нормально.Следующий шаг (AuthSubSessionToken) — обновление одноразового токена до токена сеанса.Вызов API Python 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 было:Временно переехал

Что я здесь делаю не так?Я был бы признателен за помощь/совет/предложение по любому из методов, которые я пытаюсь использовать:Вызов API Python (UpgradeToSessionToken) или создание HTTP-запроса вручную с помощью urllib2.

Это было полезно?

Решение

Согласно документации 2.0 здесь есть набор примеров Python...

Запуск примера кода

Полный рабочий пример клиента, содержащий весь пример кода, показанный в этом документе, доступен в дистрибутиве клиентской библиотеки Python в каталоге samples/contacts/contacts_example.py.

Пример клиента выполняет несколько операций с контактами, чтобы продемонстрировать использование 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()

Существует четыре различных способа аутентификации.Неужели для вас так важно использовать AuthSub?Если вы не можете заставить AuthSub работать, рассмотрите КлиентЛогин подход.У меня не было проблем с тем, чтобы это работало.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top