AuthSub: (404, «Not Found», «Unknown user.») - PullRequest
       29

AuthSub: (404, «Not Found», «Unknown user.»)

0 голосов
/ 14 октября 2011

Я пытаюсь использовать Picasa API с AuthSub. Мой код:

GD_CLIENT = gdata.photos.service.PhotosService()

def login(request):
    def GetAuthSubUrl():
        callback = 'http://127.0.0.1:8000/callback'
        scope = 'https://picasaweb.google.com/data/'
        secure = False
        session = True
        return GD_CLIENT.GenerateAuthSubURL(callback, scope, secure, session)

    auth_sub_url = GetAuthSubUrl()
    return HttpResponseRedirect(auth_sub_url)


def confirm(request):
    authsub_token = request.GET['token']    
    token = GD_CLIENT.SetAuthSubToken(authsub_token)
    GD_CLIENT.UpgradeToSessionToken()
    GD_CLIENT.auth_token = token
    return direct_to_template(request, 'base.djhtml')


def add_album(request):
   form = AddAlbum(request.POST or None)
   if form.is_valid():
       data = form.cleaned_data
       title = data.get('title')
       summary = data.get('summary')
       GD_CLIENT.InsertAlbum(title=title, summary=summary)
       return HttpResponseRedirect('/get_albums/')
   return render(request, 'add_form.djhtml', {'form': form})

Я получил ошибку в add_album:

(404, «Не найдено», «Неизвестный пользователь.»)

Traceback: Файл "/home/i159/Envs/photorulez/lib/python2.6/site-packages/django/core/handlers/base.py" в get_response 111. response = callback (request, * callback_args, ** callback_kwargs) Файл "/home/i159/workspace/photorulez/photorulez/photoapp/views.py" в add_album 49. GD_CLIENT.InsertAlbum (заголовок = заголовок, сводка = сводка) Файл "/home/i159/Envs/photorulez/lib/python2.6/site-packages/gdata/photos/service.py" в InsertAlbum 358. повысить GooglePhotosException (e.args [0])

Тип исключения: GooglePhotosException в / add_album / Значение исключения: (404, «Не найдено», «Неизвестный пользователь».)

Почему это поднято? Какие изменения необходимы?

Ответы [ 2 ]

0 голосов
/ 21 января 2012

Это моя функция для аутентификации пользователя, у которого у меня есть токен сеанса:

def get_client(authsub_token):
    gd_client = gdata.photos.service.PhotosService(email='default')

    gd_client.SetAuthSubToken(authsub_token)

    return gd_client

Если вы укажете адрес электронной почты или имя пользователя по умолчанию, он будет использовать пользователя, который авторизовал токен * 1004.*

0 голосов
/ 14 октября 2011

Я понял !!! GD_CLIENT = gdata.photos.service.PhotosService () необходим email аргумент ключевого слова в качестве имени пользователя учетной записи Google.

gdata.photos.sevice.py

class PhotosService(gdata.service.GDataService):
  ssl = True
  userUri = '/data/feed/api/user/%s'

  def __init__(self, email=None, password=None, source=None,
           server='picasaweb.google.com', additional_headers=None,
           **kwargs):

Так и должно быть:

GD_CLIENT = gdata.photos.service.PhotosService(email='username')
...