Я пытаюсь создать сервис на hook.io для загрузки токена из другого API.
public function loadToken()
{
$computedHash = base64_encode(hash_hmac ( 'md5' , $this->authServiceUrl , $this->password, true ));
$authorization = 'Authorization: Bearer '.$this->username.':'.$computedHash;
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, '');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($curl, CURLOPT_URL, $this->authServiceUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
$obj = json_decode($result);
$info = curl_getinfo($curl);
curl_close($curl);
if($info['http_code'] != '200')
{
// print error from the server
echo($obj);
return NULL;
}
return $obj;
}
Но оказывается, что hook.io не поддерживает cUrl в PHP. Я знаю, что это можно сделать напрямую с php, но я не знаю как.
редактировать :
Я использовал file_get_contents, теперь это дает другую ошибку.
$username = '';
$password = '';
$authServiceUrl = '';$computedHash = base64_encode(hash_hmac ( 'md5' , $authServiceUrl , $password, true ));
$authorization = 'Authorization: Bearer '.$username.':'.$computedHash;
// Create map with request parameters// Build Http query using params// Create Http context details
$contextData = array (
'method' => 'POST',
'header' => "Content-Type: application/json". $authorization ,
);
// Create context resource for our request
$context = stream_context_create (array ( 'http' => $contextData ));
// Read page rendered as result of your POST request
$result = file_get_contents (
$authServiceUrl, // page url
false,
$context);
Я добавил ошибку в комментариях ниже
На самом деле, у hook.io есть поддержка curl, насколько я знаю. Но если вы хотите попробовать другие альтернативы, вы можете использовать file_get_contents
, Он имеет поддержку пользовательского контекста и параметров.
$opts = [
'http' => [
'method' => 'POST',
'headers' => ['Authorization' => 'Bearer ' . $this->username . ':' . $computedHash]
]
];
$context = stream_context_create($opts);
$file = file_get_contents('http://www.hook.io/example/', false, $context);
Других решений пока нет …