old_contents: import foauth.providers
  from oauthlib.oauth1.rfc5849 import SIGNATURE_PLAINTEXT
  
  
  class Dropbox(foauth.providers.OAuth1):
      # General info about the provider
      provider_url = 'https://www.dropbox.com/'
      docs_url = 'https://www.dropbox.com/developers/reference/api'
      favicon_url = 'https://cf.dropboxstatic.com/static/images/favicon-vflk5FiAC.ico'
      category = 'Files'
  
      # URLs to interact with the API
      request_token_url = 'https://api.dropbox.com/1/oauth/request_token'
      authorize_url = 'https://www.dropbox.com/1/oauth/authorize'
      access_token_url = 'https://api.dropbox.com/1/oauth/access_token'
      api_domains = ['api.dropbox.com', 'api-content.dropbox.com']
  
      signature_method = SIGNATURE_PLAINTEXT
  
      available_permissions = [
          (None, 'read and write to your entire Dropbox'),
      ]
  
      def get_user_id(self, key):
          r = self.api(key, self.api_domains[0], u'/1/account/info')
          return unicode(r.json()[u'uid'])
  
new_contents: import foauth.providers
  
  
  class Dropbox(foauth.providers.OAuth2):
      # General info about the provider
      provider_url = 'https://www.dropbox.com/'
      docs_url = 'https://www.dropbox.com/developers/reference/api'
      favicon_url = 'https://cf.dropboxstatic.com/static/images/favicon-vflk5FiAC.ico'
      category = 'Files'
  
      # URLs to interact with the API
      authorize_url = 'https://www.dropbox.com/oauth2/authorize'
      access_token_url = 'https://api.dropboxapi.com/oauth2/token'
      api_domains = ['api.dropboxapi.com', 'content.dropboxapi.com', 'notify.dropboxapi.com']
  
      available_permissions = [
          (None, 'read and write to your entire Dropbox'),
      ]
  
      def get_user_id(self, key):
          r = self.api(key, self.api_domains[0], u'/2/users/get_current_account', method='POST')
          return unicode(r.json()[u'account_id'])
  
subject: Upgrade Dropbox to OAuth 2