Использование OAuth Access Token из django-social-auth с Google data api (календарь) - PullRequest
5 голосов
/ 21 сентября 2011

Я пытаюсь использовать токен OAuth, полученный от django-social-auth, для доступа к календарям пользователей.

Итак, в конфигурации django-social-auth я установил:

GOOGLE_CONSUMER_KEY = 'anonymous'
GOOGLE_CONSUMER_SECRET = 'anonymous'
GOOGLE_OAUTH_EXTRA_SCOPE = ['https://www.google.com/calendar/feeds/']

Когда пользователь возвращается из Google, я получаю запись в базе данных, которая выглядит следующим образом:

{u'access_token': u'oauth_token_secret=vvvv&oauth_token=xxxx'}

Но теперь, когда я пытаюсь сделать что-то вроде этого:

import gdata.calendar.client

client = gdata.calendar.client.CalendarClient()
client.auth_token = gdata.gauth.OAuthHmacToken('anonymous', 'anonymous', 'xxxx', 'vvvv', gdata.gauth.ACCESS_TOKEN)

client.GetOwnCalendarsFeed()

Я всегда получаю:

gdata.client.Unauthorized: Unauthorized - Server responded with: 401
<HEAD>
<TITLE>Token invalid - Invalid AuthSub token.</TITLE>
</HEAD>

Что мне здесь не хватает?

Ответы [ 2 ]

3 голосов
/ 06 октября 2012

Это работает для меня:

from social_auth.models import UserSocialAuth

def do_something_with_tokens(request):
  tokens = UserSocialAuth.get_social_auth_for_user(request.user).get().tokens
  ...
0 голосов
/ 20 января 2012

Аллилуйя!Django-social-auth возвращает токен доступа с экранированной косой чертой (% 2F).Замена на «/» сработала для меня.

HTH

...