我是Python的新手并开始玩游戏以访问不同的API,现在我开始使用Dropbox API。 但是当我尝试访问自己的帐户时,我获得了“invalid_grant”访问权限。
import dropbox
app_key = 'AAAA'
app_secret = 'BBBB'
flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret)
authorize_url = flow.start()
print ('1. Go to: ' + authorize_url)
print ('2. Click "Allow" (you might have to log in first)')
print ('3. Copy the authorization code.')
code = 'CCCC'
access_token, user_id = flow.finish(code)
当我使用这个脚本时,我得到了以下输出。
追踪(最近一次通话): 文件“PATH / dropboxdownload.py”,第14行,in access_token,user_id = flow.finish(code) 文件“PATH \ Python35-32 \ lib \ site-packages \ dropbox-2.2.0-py3.5.egg \ dropbox \ client.py”,第1398行,完成 return self._finish(代码,无) 文件“PATH \ Python35-32 \ lib \ site-packages \ dropbox-2.2.0-py3.5.egg \ dropbox \ client.py”,第1265行,在_finish response = self.rest_client.POST(url,params = params) POST中的文件“PATH \ Python35-32 \ lib \ site-packages \ dropbox-2.2.0-py3.5.egg \ dropbox \ rest.py”,第316行 return cls.IMPL.POST(* n,** kw) POST中的文件“PATH \ Python35-32 \ lib \ site-packages \ dropbox-2.2.0-py3.5.egg \ dropbox \ rest.py”,第254行 post_params = params,headers = headers,raw_response = raw_response) 请求文件“PATH \ Python35-32 \ lib \ site-packages \ dropbox-2.2.0-py3.5.egg \ dropbox \ rest.py”,第227行 提出ErrorResponse(r,r.read()) dropbox.rest.ErrorResponse:[400]'invalid_grant' 处理以退出代码1完成
答案 0 :(得分:0)
我已经解决了问题,我的问题是令牌已过期。
您可以尝试使用以下代码获取详细信息错误消息
try :
access_token,user_id = flow.finish(code)
except dropbox.rest.ErrorResponse as err:
print("this"+str(err.body))
如果您的错误是令牌过期,那么您需要转到authorise_url的链接,然后获取新令牌。
答案 1 :(得分:0)
如果此错误继续,请使用以下链接:
https://www.dropbox.com/1/oauth2/authorize?response_type=code&client_id=**your ID**
确保将您的ID添加到client_id
参数。