Django-social-auth использование Google OAUT токена - PullRequest
0 голосов
/ 19 августа 2011

Я использую Django-socila-auth plugin .Он использует Google API для аутентификации Oauth 1.0.Вопрос: кто-нибудь использовал его с Google Python API (gdata)?Я имею в виду, как применить auth session_token, хранящийся в модели django-social-auth, к моему вызову API.

Можете ли вы помочь мне с кодом, чтобы получить этот токен из модели и применить к экземпляру gdata.PhotoService ().На данный момент это выглядит так:

        #getting model instance from django-social-auth model
        association = Association.objects.get(user=request.user)

        google_session_token=association.handle
        google_secret=association.secret

        #token string from django-social-auth 
        #model Association field "handle" looks like:
        #google_session_token = '.......XG84PjwytqJkvr8WQhDxm1w-JplWK5zPndSHB13f.........'

        gd_client = gdata.photos.service.PhotosService()
        gd_client.debug = 'true'
        gd_client.auth_token = google_session_token
        #image.image is a file field, but problem not in this.
        #it tries to send file in debug text. 
        #It just recieves 403 unauthorised callback.
        photo = gd_client.InsertPhotoSimple(
            '/data/feed/api/user/default/albumid/default', 'New Photo', 
            'Uploaded using the API', image.image, content_type='image/jpeg')

Я получаю сообщение об ошибке

403 Invalid token string.

Я понимаю, что он тоже нуждается в секрете, но как применить его к API для аутентификации? (Чтобы получитьразрешение на размещение фотографий.).Кстати, я добавил URL фида Picassa в качестве строки параметра для социальной авторизации, чтобы запрашивать разрешения, поэтому у меня есть маркер, запрашивающий разрешения фида Picassa при авторизации с помощью Google.

BTW.Учебник Google, который я использовал: здесь Я понимаю, что это Oauth 1.0, а не AusSub, но вопрос:

как пройти аутентификацию с токеном и секретом, которые у меня есть, и опубликовать фотографиюс этим разрешением?

1 Ответ

0 голосов
/ 22 сентября 2011

Просто чтобы ответить на мою собственную проблему.Я использовал неправильный способ сделать это, потому что проблема в 'gd_client' и AuthSub.Он должен проверить токен на сервере.И это не может сделать это на локальном хосте.Вам нужно смотреть в Oauth / Oauth2 для лучшей отладки и так далее ... Независимо от того, что он намного сложнее, чем AuthSub

...