Попытка получить токен сеанса для Календаря Google, используя Python. Получение ошибки NonAuthSubToken - PullRequest
1 голос
/ 07 апреля 2011

Я пытаюсь получить токен сеанса, чтобы использовать API Календаря Google, используя библиотеку Python. Я использую Django 1.2.1 и Python 2.7. Эта страница в основном имеет ссылку «Войти в Google Calendar» (см. Ниже переменную auth_url), которая запрашивает одноразовый токен. Из того, что я могу сказать, токен одноразового использования выглядит именно так, как и ожидалось (читай: никаких сообщений об ошибках от Google). Но затем, когда я обновляюсь до маркера сеанса, я получаю ошибку NonAuthSubToken. Есть идеи? Вот мой код

def get_auth_url():
   next = SITE_DOMAIN + '/job/events'
   scope = 'https://www.google.com/calendar/feeds/'
   secure = True
   session = True
   calendar_service = gdata.calendar.service.CalendarService()
   return calendar_service.GenerateAuthSubURL(next, scope, secure, session)

@login_required
def get_events(request):
   auth_url = get_auth_url()
   if 'token' in request.GET:
      f = open('rsa.pem')
      rsa_key = f.read()
      f.close()
      single_use_token = gdata.auth.extract_auth_sub_token_from_url(SITE_DOMAIN + request.get_full_path(), rsa_key=rsa_key)
      calendar_service = gdata.calendar.service.CalendarService()
      calendar_service.auth_token = str(single_use_token)
      calendar_service.UpgradeToSessionToken()

   return render_to_response('getevents.html', {'useremail': request.user.email.replace('@', '%40'),'auth_url': auth_url}, context_instance=RequestContext(request))

1 Ответ

1 голос
/ 07 апреля 2011

в документах написано:

NonAuthSubToken : повышается, если метод для модификации используется токен AuthSub когда пользователь либо не аутентифицирован, либо подлинности через другой механизм аутентификации.

пользователь аутентифицирован? (вторая причина устраняется при использовании AuthSub)

С другой стороны, Google рекомендует использовать OAuth со своими API данных Google.

см. Здесь: OAuth 1.0 для веб-приложений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...