Использование токена oauth для Django-social-auth

Я использую плагин Django-socila-auth. Он использует API Google для аутентификации Oauth 1.0. Вопрос в том, кто-нибудь использовал его с API Google Python (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.

КСТАТИ. Я использовал учебник Google: здесь Я понимаю, что это Oauth 1.0, а не AusSub, но вопрос:

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


person garmoncheg    schedule 19.08.2011    source источник
comment
возникла аналогичная проблема, но с гугл календарем. Я просто не могу заставить свой код правильно использовать токен. Вы нашли способ заставить это работать?   -  person Kai    schedule 21.09.2011


Ответы (1)


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

person garmoncheg    schedule 22.09.2011