我在尝试从PandaDocs API上提供的REFRESH_TOKEN获取ACCESS_TOKEN时遇到问题。
为了从刷新令牌获取新的ACCESS_TOKEN,要发送哪些正确的参数?
我存储了我最初收到验证时最初收到的刷新令牌,用于上传要签名的文档。我现在想要使用刷新令牌来获取新的访问令牌,以便检查文档上签名的状态。
我正在尝试使用我存储的刷新令牌获取新的访问令牌,但我一直认为grant_type无效。
这是我的代码..
$token = '(refreshtokenhere)';
$url = "https://app.pandadoc.com/oauth2/access_token";
$useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2';
$ch = curl_init();
$headr = array();
$headr[] = 'Content-Type: application/json;charset=UTF-8';
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$postfields['grant_type'] = 'refresh_token';
$postfields['refresh_token'] = $token;
$postfields['client_id'] = CLIENT_ID;
$postfields['client_secret'] = CLIENT_SECRET;
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields );
echo $ret = curl_exec($ch); //
答案 0 :(得分:1)
检查API文档。 grant_type
应包含授权码。
https://developers.pandadoc.com
http://tools.ietf.org/html/rfc6749
编辑:
grant_type应该在你的代码中显示,即文字字符串" refresh_token"。
如您发现的那样删除了内容类型标题,以便正确发送帖子字段。
答案 1 :(得分:0)
在该令牌字段中,您传递的是哪个值。它应该包含先前获得的刷新令牌,而不是访问令牌。