Ошибка API Python Dropbox: «Предоставленный токен не разрешает эту операцию»

Я пытался заставить этот скрипт работать без особого успеха. Могу добавить, я прошел весь процесс настройки и авторизации без проблем. Как только скрипт предлагает мне открыть ссылку в браузере и нажать кнопку «Разрешить», я получаю ошибки (см. ниже):

# Include the Dropbox SDK libraries
from dropbox import client, rest, session

# Get your app key and secret from the Dropbox developer website
APP_KEY = 'iqxjea6s7ctxv9j'
APP_SECRET = 'npac0nca3p3ct9f'

# ACCESS_TYPE should be 'dropbox' or 'app_folder' as configured for your app
ACCESS_TYPE = 'dropbox'

sess = session.DropboxSession(APP_KEY,APP_SECRET, ACCESS_TYPE )

request_token = sess.obtain_request_token()

# Make the user sign in and authorize this token
url = sess.build_authorize_url(request_token)
print "url:", url
print "Please authorize in the browser. After you're done, press enter."
raw_input()

# This will fail if the user didn't visit the above URL and hit 'Allow'
access_token = sess.obtain_access_token(request_token)

client = client.DropboxClient(sess)
print "linked account:", client.account_info()

f = open('t.txt')
response = client.put_file('/magnum-opus.txt', f)
print "uploaded:", response

folder_metadata = client.metadata('/')
print "metadata:", folder_metadata

f, metadata = client.get_file_and_metadata('/magnum-opus.txt',rev='362e2029684fe')
out = open('magnum-opus.txt', 'w')
out.write(f)
print(metadata)

и это ошибка:

url: https://www.dropbox.com/1/oauth/authorize?oauth_token=puetsb17t1g2htd
Please authorize in the browser. After you're done, press enter.

linked account: {'referral_link': 'https://www.dropbox.com/referrals/NTMxMzM4NjY5', 'display_name': 'Greg Lorincz', 'uid': 3133866, 'country': 'GB', 'quota_info': {'shared': 78211, 'quota': 28185722880, 'normal': 468671581}, 'email': '[email protected]'}
Traceback (most recent call last):
  File "dropb.py", line 28, in <module>
    response = client.put_file('/magnum-opus.txt', f)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dropbox-1.4-py2.7.egg/dropbox/client.py", line 149, in put_file
    return RESTClient.PUT(url, file_obj, headers)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dropbox-1.4-py2.7.egg/dropbox/rest.py", line 146, in PUT
    return cls.request("PUT", url, body=body, headers=headers, raw_response=raw_response)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dropbox-1.4-py2.7.egg/dropbox/rest.py", line 113, in request
    raise ErrorResponse(r)
dropbox.rest.ErrorResponse: [403] 'The provided token does not allow this operation'

Есть идеи, почему?


person alkopop79    schedule 10.05.2012    source источник
comment
Похоже, вам нужно посетить этот URL-адрес и подтвердить свой ключ API. Что происходит, когда вы открываете страницу?   -  person Riking    schedule 10.05.2012
comment
Я это сделал. Как только я открываю URL-адрес, я получаю «Разрешить доступ к API» или что-то в этом роде, затем я нажимаю «Разрешить», затем нажимаю «Ввод». Веб-страница, которую я открываю, выглядит именно так, как и должно выглядеть в соответствии с руководством.   -  person alkopop79    schedule 10.05.2012
comment
Я даже понимаю: теперь ваша учетная запись Dropbox связана с python_app!   -  person alkopop79    schedule 10.05.2012
comment
Хм.. не знаю. Перепроверьте все, я думаю. Убедитесь, что ваши ключи верны, о, и вы не должны были вставлять их сюда :S   -  person Riking    schedule 10.05.2012
comment
пожалуйста, не дублируйте: stackoverflow.com/q/10539442/236871   -  person KurzedMetal    schedule 10.05.2012