Такие функции, как stream_context_create plus file_get_contents, не работают так, как мне нужно.
Поэтому, например, у меня есть такой запрос:
POST /oauth2/v4/token HTTP/1.1
Host: www.googleapis.com
Content-Type: application/x-www-form-urlencoded
client_id=adsasddsa&
client_secret=zxczxczx&
refresh_token=sdsfdsfd
Этот текст хранится в моей переменной. Как отправить его на сервер?
ОБНОВЛЕНО
Я хочу обновить токен доступа, как только он истечет на клиенте. для этого я сделал такой код:
$U = $DB->query("SELECT * FROM google WHERE access_token = '$_SESSION[access_token]'")->fetch();
$auth = json_decode(file_get_contents('./c/auth.json'), true)['web'];
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'protocol_version' => 1.1,
'content' => http_build_query([
'client_id' => $auth['client_id'],
'client_secret' => $auth['client_secret'],
'refresh_token' => $U['refresh_token'],
'grant_type' => $U['refresh_token']
])
)
);
$result = file_get_contents('https://oauth2.googleapis.com/token', false, stream_context_create($options));
var_dump($result);
Я следую этим инструкциям https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps#offline
Но в ответ получаю эту ошибку:
Warning: file_get_contents(https://oauth2.googleapis.com/token):
failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
in .../test.php on line 32
КажетсяPHP неправильно устанавливает заголовок, и мне нужно решение