我正在尝试与 BOX API 进行交互。 我做了多项研究,并遵循了多个关于如何做到这一点的教程,但我错过了一步...... 我需要获得
auth_code
才能获得 refresh_token
和 access_token
。据我了解,身份验证后,auth_code
作为 URL 中的参数。
from boxsdk import OAuth2
SDK = OAuth2(
client_id=CLIENTID,
client_secret=CLIENTSECRET
)
auth_url, csrf_token = SDK.get_authorization_url('{}/api/oauth2/authorize?response_type=code&client_id={}&redirect_uri={}/folder/0'.format(ENPOINT, CLIENTID, ENPOINT))
TOKENS['auth_url'] = auth_url
TOKENS['csrf_token'] = csrf_token
requests.get(auth_url)
当我通过浏览器访问
auth_url
中返回的 URL 时,它会将我带到如下网站:
在我手动单击授予对 Box 的访问权限后,它会将我重定向到我选择的 Box 文件夹,并且 URL 的格式为:https://xxxxx.com/folder/0?code=zzzzz&state=yyyyy 。 我的目标是提取 zzzzz,但我不明白如何以编程方式获取它......
References:
https://developer.box.com/guides/authentication/oauth2/with-sdk/
https://github.com/box/box-python-sdk#box-python-sdk
https://www.youtube.com/watch?v=ha26tN8amI0
一点帮助将非常有价值。
部分答案:您可以通过执行以下操作来检索代码。只需重定向:
auth_url, csrf_token = oauth.get_authorization_url('https://google.com')
您必须在开发控制台中将重定向 URI 设置为
https://google.com
。在您返回的 URL 中就是您需要的代码。
剩余问题:唯一的问题是您必须手动授予访问权限。我仍然需要克服这个问题。那么问题就解决了。有人知道如何授予访问权限吗?