У меня есть эта php функция, которая должна обновлять sh токен, передавая предыдущий токен и предыдущий refre sh токен, полученный от пользователя. Теперь я не уверен, правильно ли установлены заголовки или что-то еще здесь работает. Я получил это высказывание о заголовке в документации API, отправленной мне:
- Авторизация: ранее приобретенный токен.
Пример добавления токена: request.Headers.Add (" Авторизация »,« Носитель »+ токен); это не php, я думаю, что, погуглив, это c#.
- RefreshToken: ранее приобретенный refre sh токен
Я просто недавно начали использовать cURL, и они сказали, что это должно быть сделано в ванили php.
/*------------------------------------Function for refreshing user's token------------------------------------------------*/
//Method: GET.
$token = getUser($url1,$jsonBody1,$header1)->token;
$refreshToken = getUser($url1,$jsonBody1,$header1)->refreshToken;
$url2 = "urlForTokenRefreshing";
$header2 = ["Accept: application/json","Content-Type:application/json", "Authorization: Bearer ".$token, "RefreshToken: ".$refreshToken];
function refreshToken($url,$headers){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
curl_close($ch);
if($response === false){
echo "Curl error: " . curl_error($ch)."<br>";
}
else{
echo "Success.<br>";
}
return $response;
}
print_r(refreshToken($url2,$header2));
Ошибка, которую я получаю:
"Internal server error"
Success.
Это говорит об ошибке, но условие, которое проверяет если ответ cURL solid говорит "успех". Я озадачен этим.
Функция getUser () корректно возвращает пользователя, от которого мы можем получить токен и refreshToken. Параметры $url1,$jsonBody1,$header1
для этого также правильны, я попробовал.
Не уверен, что этот правильный синтаксис для заголовков, так как они в качестве примера показали c# код или мой "перевод" этого неверен.
Edit1:
Я пробовал в Почтальоне, и он работает. Так что в моем коде есть ошибка / ошибка ...
Edit2: Думаю, я понял это. Код был хорош с самого начала. Вот моя ошибка: я дважды вызывал функцию getUser()
, когда я
$token = getUser($url1,$jsonBody1,$header1)->token;
$refreshToken = getUser($url1,$jsonBody1,$header1)->refreshToken;