这是我的问题:
我按照您发布的说明进行操作:“使用框提供的client_id
和client_secret
获取2个快速步骤中的框访问权限”
第1步:获取auth_code
我在firefox中复制并粘贴以下请求:
step2:使用curl:
使用step1中的代码获取访问权限并刷新令牌curl -v -k https://www.box.com/api/oauth2/token -d 'grant_type=authorization_code&code={auth_code}&client_id={MY_CLIENT_ID}&client_secret={MY_CLIENT_SECRET}' -X POST
我得到的回应是“无效的客户凭证”。我错过了什么? 在此先感谢您的帮助。我真的不知道如何解决这个错误。
答案 0 :(得分:0)
更有可能的是,你留下的东西导致卷曲请求只占用第一行,而忽略了“-d ...”及更远。如果你太慢,你实际上会得到这个错误:
{“error”:“invalid_grant”,“error_description”:“授权代码已过期”}
再次在一行上写下卷曲请求或尝试复制并粘贴它:
curl https://www.box.com/api/oauth2/token -d'grant_type = authorization_code& code = {CODE}& client_id = {CLIENT_ID}& client_secret = {CLIENT_SECRET}' -X POST
答案 1 :(得分:0)
我有同样的问题,在添加标题后它对我有用: 内容类型:application / x-www-form-urlencoded
所以你的curl命令看起来像
curl -v -k https://www.box.com/api/oauth2/token -d'grant_type = authorization_code& code = {auth_code}& client_id = {MY_CLIENT_ID}& client_secret = {MY_CLIENT_SECRET}'-H“Content-Type:application / x -www-form-urlencoded“-X POST
答案 2 :(得分:0)
我会回答我自己的问题,以防其他一些新人陷入与我相同的陷阱:
只需删除大括号({}),以便请求为:
curl -v https://www.box.com/api/oauth2/token -d 'grant_type=authorization_code&code=AUTH_CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET' -X POST
并将AUTH_CODE
,CLIENT_ID
和CLIENT_SECRET
替换为相应的值,而无需添加任何"装饰"角色,至少如果你使用卷曲。
请注意,在将cacert.pem
文件的路径添加为SSL_CERT_FILE
环境变量后,我也删除了-k选项,以便curl找到它并停止抱怨。