Я пытаюсь получить доступ к Google Диску клиента, чтобы загрузить их файлы. При тестировании кода на моем собственном диске Google я могу успешно загружать файлы. Тем не менее, когда я получаю код OAuth из них, я получаю ошибку:Ошибка invalid_grant при аутентификации oauth Request - Google Drive
oauth2client.client.FlowExchangeError: invalid_grant
После глядя на некоторые другие ответы, было высказано предположение, что вы обеспечиваете access_type = «отсутствует», который, кажется, по умолчанию, и я могу видеть в сгенерированном URL-адресе, что этот параметр установлен. Это также похоже на то, что код, который они дают, может быть действителен только в течение часа, однако я попытался использовать его в течение часа и все равно не повезло. Любые другие предложения о том, как избежать этой проблемы?
Вот код, я был запущен:
from oauth2client import client
import webbrowser
flow = client.flow_from_clientsecrets(
'client_secrets.json',
scope='https://www.googleapis.com/auth/drive.readonly',
redirect_uri='urn:ietf:wg:oauth:2.0:oob')
auth_uri = flow.step1_get_authorize_url()
webbrowser.open(auth_uri)
print auth_uri
auth_code = raw_input('Enter the auth code: ')
credentials = flow.step2_exchange(auth_code)
http_auth = credentials.authorize(httplib2.Http())
Она ошибка на flow.step2_exchange линии.
Большое спасибо за помощь. Кажется, что токен действителен, если я использую его в течение 15 минут после доступа пользователя. Я проверил время на своем ПК, и он синхронизирован с NTP. Я не использую токен более одного раза, и я использую только один. Я не уверен, почему ограничение времени, похоже, влияет на токен, но на данный момент моя проблема решена (я просто должен убедиться, что вы используете токен быстро). Если у вас есть другие мысли о том, почему это так, как мне кажется, мне было бы интересно их услышать! – user1253952
Какой токен вы говорите? Если его код аутентификации да, вы должны использовать это как можно скорее, и получить токен доступа и обновить токен. Его не собираются долго болтаться. – DaImTo
Спасибо! Да, код аутентификации. Не понимал, что существует ограничение по времени. Вы знаете, как долго это происходит? Это затруднило попытку координировать работу с кем-то еще, чтобы получить код. – user1253952