Как сделать запрос на страницу с вашим текстом с помощью php? - PullRequest
0 голосов
/ 28 октября 2019

Такие функции, как 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 неправильно устанавливает заголовок, и мне нужно решение

...