Php 调用Orange产品订单事件服务时获取身份验证错误
我们正在实施Orange business apps API。为此,我们需要呼叫橙色服务。此服务具有承载类型身份验证(Oauth2)。我能够成功获取访问令牌,访问令牌有效期为90天。通过使用最新的访问令牌,我试图通过在标头中发送访问令牌来调用Orange服务,但每次都会出现未经授权的访问错误Php 调用Orange产品订单事件服务时获取身份验证错误,php,fopen,orange-api,Php,Fopen,Orange Api,我们正在实施Orange business apps API。为此,我们需要呼叫橙色服务。此服务具有承载类型身份验证(Oauth2)。我能够成功获取访问令牌,访问令牌有效期为90天。通过使用最新的访问令牌,我试图通过在标头中发送访问令牌来调用Orange服务,但每次都会出现未经授权的访问错误 Here is code public static function sendEventProductOrder($eventProductOrdering) { $jsonMappe
Here is code
public static function sendEventProductOrder($eventProductOrdering) {
$jsonMapper = new JsonMapper();
$opts = array('http' => array('method'=>'POST',
'header'=>'Content-type: application/x-www-form-urlencoded\r\n'.'Authorization: Bearer xxxxxxxxxxxxxxxxx\r\n',
'content' => json_encode($jsonMapper->unmap($eventProductOrdering)),
));
$context = stream_context_create($opts);
if (($stream = fopen("https://api.orange.com/mba/productordering/v2/event", 'r', false, $context)) !== false) {
$content = stream_get_contents($stream);
$header = stream_get_meta_data($stream);
fclose($stream);
return HelperMisc::isEqualIgnoreCase($header['wrapper_data']['0'], 'HTTP/1.1 201 Created');
}
return false;
}
有人能帮我吗
谢谢你的帮助 您可以尝试将引号
“
更改为”
?如下所示:
$requestArray = [
'name' => 'User',
'age' => 100
];
'header' => "Content-type: application/x-www-form-urlencoded\r\n" .
"Authorization: Bearer xxxxxxxxxxxxxxxxx\r\n",
'content' => http_build_query($requestArray)
因为
\r\n
在一个引号内不起作用'
,所以它发送“原样”谢谢你的回复。我尝试了将单引号改为双引号,然后错误改为400错误请求(之前的错误是401未经授权)。你知道这里有什么问题吗?@user3616545尝试这个'content'=>http\u build\u查询($jsonMapper->unmap($eventProductOrdering))
或者您可以显示$opts的转储吗?我在json请求中遇到问题,我错过了json中的一些键,所以他们发送了400个错误请求。在获得支持后,他们向我指出了缺少的参数。我更新了它,它现在正在工作。您指出了代码中的错误。谢谢您的帮助!。