От: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
Код состояния ответа «Неверный запрос протокола передачи гипертекста (HTTP) 400» указывает, что сервер не может или не будет обрабатывать запрос из-за того, что воспринимается какошибка клиента (например, неправильный синтаксис запроса, неверное формирование сообщения запроса или вводящая в заблуждение маршрутизация запроса).
Это означает, что, скорее всего, что-то не так с параметрами, которые вы отправляете в запросе. Возможно, это не так, но попробуйте удалить \r\n
в параметре заголовка, они мне кажутся странными.
$ret = file_get_contents('https://oauth2.googleapis.com/token', false, stream_context_create([
'http' => [
'header' => "Content-type: application/x-www-form-urlencoded",
'method' => 'POST',
'protocol_version' => 1.1,
'content' => http_build_query([
'client_id' => $client_id,
'client_secret' => $client_secret,
'refresh_token' => $refresh_token,
'grant_type' => $refresh_token
])
]
]));