title: python dropbox api error
body: <p>I'm following the tutorial <a href="https://www.dropbox.com/developers/start/files#python" rel="nofollow">here</a></p>
  
  <p>So far so good but the upload example give me errors. The code:</p>
  
  <pre><code>from dropbox import client, rest, session
  
  f = open('txt2.txt') # upload a file
  response = client.put_file('/magnum-opus.txt', f)
  print "uploaded:", response
  </code></pre>
  
  <p>The error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "dropbox_ul.py", line 4, in &lt;module&gt;
      response = client.put_file('/magnum-opus.txt', f)
  AttributeError: 'module' object has no attribute 'put_file'
  </code></pre>
  
  <p>Where did I go wrong? </p>
  
  <p>EDIT: The new code I'm trying. This is actually from the dropbox developer website. As I stated earlier, I did go through the authentication and setup:</p>
  
  <pre><code># 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('txt2.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)
  </code></pre>
  
  <p>and the error:</p>
  
  <pre><code>   url: https://www.dropbox.com/1/oauth/authorize?oauth_token=jqbasca63c0a84m
      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': 'alkopop79@gmail.com'}
      Traceback (most recent call last):
        File "dropb.py", line 28, in &lt;module&gt;
          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'
  </code></pre>