为客户集成Trustpilot独特链接功能,使用php和curl
问题描述:
我的需求是为Trustpilot widget的客户生成独特的链接。为此,我需要有一个访问令牌。我尝试了所有可能的方法,但面临同样的错误为客户集成Trustpilot独特链接功能,使用php和curl
{“理由”:“未知grant_type”}“
下面是我为同一
$data = array(
GRANT_TYPE => GRANT_TYPE_VALUE,
TRUSTPILOT_USERNAME => TRUSTPILOT_USERNAME_VALUE,
TRUSTPILOT_PASSWORD => TRUSTPILOT_PASSWORD_VALUE,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,“https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken”);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data); //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
‘Authorization: Basic base64 encoded apikey:secretkey’,
‘Content-Type: application/json’
));
$server_output = curl_exec($ch);
curl_close($ch);
var_dump($server_output);
感谢代码提前
答
HAV你试过设置Content-Type
到application/x-www-form-urlencoded
?
答
我得到它的工作,但我不得不做一些事情来让它工作。
净荷数据不得不使用http_build_query
像这样
$data = http_build_query(array(
'grant_type' => 'password',
'username' => $email,
'password' => $password,
));
然后卷曲曾与从服务器验证的SSL证书的问题进行转化。于是我将这两行:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
标头值,其中变成
$authorization = 'Basic '. base64_encode($key . ':' . $secret);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: ' . $authorization,
'Content-Type: application/x-www-form-urlencoded'
));
最终的代码片段:
$data = http_build_query(array(
'grant_type' => 'password',
'username' => $username,
'password' => $password,
));
$authorization = 'Basic '. base64_encode($key . ':' . $secret);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: ' . $authorization,
'Content-Type: application/x-www-form-urlencoded'
));
希望这会帮助你。
+0
这是否解决了问题,@ Hetal1311? –
是的我试过用application/x-www-form-urlencoded但结果是一样的 – Hetal1311