我正在尝试实现python-sdk将文件(存在于本地文件夹中)放入共享的Box文件夹中。
我尝试的方法是将Redirect URI放入我的Box开发人员配置页面,并使用Client ID / Secret获取authorization_URL
,然后提取身份验证代码提取访问令牌和刷新令牌。
但是,我只能进入获取auth_url
的部分,我只能在点击“授予”访问权限后从重定向到页面手动获取auth_code
。
使用auth_code
我可以获得刷新令牌,但我不知道如何自动化该部分。
还有其他方法吗?
如果是的话,你能给我一个例子吗?
我确实阅读了与此相关的所有搜索,到目前为止,我还没有找到解决问题的方法。
Redirect_URi = 'https://api.box.com/oauth2/token'
def save_tokens(access_token,refresh_token):
print("Refreshing tokens...")
target = open("AdminToken.txt", 'w')
target.truncate()
tokens = access_token+'#'+refresh_token
target.write(tokens)
target.close()
oauth = OAuth2(
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
store_tokens=save_tokens
)
oauth.access_token
auth_url, csrf_token = oauth.get_authorization_url(Redirect_URi)
# GET "auth_code" from auth_url #
getTokens = requests.get(auth_url)
# trouble starts here
auth_code = 'exctracted from linked webpages manually' # expires in 30 seconds after creation
access_token, refresh_token = oauth.authenticate(auth_code)
oauth2 = OAuth2(
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
store_tokens=save_tokens,
access_token=access_token,
refresh_token=refresh_token
)
client = Client(oauth)
# Testing if it is authorized
me = client.user(user_id= user_id).get()
print ('user_login: ' + me['login'])`
我应该可以运行这个脚本,我从DB中提取的文件应该被选为xlsx(我已经做过)并放入Box文件夹。
我认为我被这个刷新令牌困在这里,每个人都指示我到Github官方Box sdk页面,而不提供任何更多信息,如上所示。