Получение доступа к OAuth 2.0 и обновление токенов для таблиц Fusion через Python - PullRequest
1 голос
/ 03 марта 2012

Я пытаюсь получить и токены доступа, и обновления для приложения, чтобы получить доступ к моей таблице слияния. Я использую метод OAuth 2.0 и просто хочу разрешить пользователям, которые посещают мое приложение, вставлять записи в мою таблицу слияния.

Проблема, с которой я сталкиваюсь, заключается в запуске скрипта Python , описанного Google здесь . Я получаю ошибку при запуске кода из коробки (в PyDev, с интерпретатором Python 2.7):

Traceback (most recent call last):
File "\\..\OAuthToken\root\oauth_tokens.py", line 59, in <module>
    redirect_uri)
  File "\\..\OAuthToken\root\oauth_tokens.py", line 41, in retrieve_tokens
    refresh_token = tokens['refresh_token']
KeyError: 'refresh_token'

У кого-нибудь есть решение для меня? Я где-то читал на GitHub (github.com/ff0000/red-social-auth/issues/3 - мне больше не разрешается публиковать ссылки) что-то, связанное с неполным выходом refresh_tokens, но, очевидно, я просто хватаюсь за соломинки в этот момент.

Спасибо за помощь.

Ответы [ 2 ]

5 голосов
/ 31 октября 2012

Итак, у меня была та же проблема, что и в первоначальном вопросе, и я ничего не придумал. Но затем я нашел this , указав, что исходный запрос должен иметь access_type=offline, чтобы был отправлен токен обновления. Поэтому я добавил это к сценарию oauth_tokens Кэтрин вот так.

Отредактированная строка 17:

  print '%s?client_id=%s&redirect_uri=%s&scope=%s&access_type=offline&response_type=code' % \

Ну, я думал, что это решит мою проблему, но это не так. Я предполагаю, что поскольку приложение изначально зарегистрировано с типом доступа по умолчанию «онлайн», оно не будет выдавать токен обновления. Это было решено путем отмены доступа к приложению на странице настроек аккаунта Google.

Аккаунты -> Безопасность -> Авторизация приложений и сайтов -> Редактировать

Надеюсь, это кому-нибудь поможет, так как это на какое-то время сводило меня с ума.

Я добавил скрипт, который я использую на Github: https://github.com/mejackreed/fusion-tables-oauth-tokens/blob/master/oauth.py

0 голосов
/ 06 марта 2012

Я не могу воспроизвести проблему, что затрудняет диагностику. Можете ли вы просто распечатать ответ в строке 38, чтобы увидеть, что на самом деле возвращается? Это может дать некоторое представление о том, в чем проблема.

...