在XERO中,我很难用验证码来交换一个访问令牌。这应该是一个简单的操作,所以我试图避免使用库的开销。下面是到目前为止的代码(假设在我们到达这里之前已经定义了任何变量)
// set up the concatenated string
$string = urlencode('grant_type=authorization_code&code='.$code.'&redirect_uri='.$redirecturi);
// set up the header array
$headerarray = array('authorization:Basic '.base64_encode($clientid.":".$secret), 'Content-Type: application/x-www-form-urlencoded');
// first attempt with curl
curl_setopt($ch, CURLOPT_URL, 'https://identity.xero.com/connect/token');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerarray);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
echo curl_exec($ch);
// second attempt with http post
$options = array(
'http' => array(
'header' => $headerarray,
'method' => 'POST',
'content' => $string
)
);
$context = stream_context_create($options);
echo file_get_contents('https://identity.xero.com/connect/token', false, $context);
在这两种情况下,我都没有得到任何回应。提前感谢任何帮助!
2条答案
按热度按时间2w2cym1i1#
请尝试上面的代码,你会发现成功.
pvabu6sv2#
php localhost不支持curl函数。如果你使用laravel服务器,你会得到成功的响应。