https://yandex.ru/dev/direct/doc/dg-v4/examples/auth-token-sample-docpage/
<?php
// Идентификатор приложения
$client_id = 'YOUR_CLIENT_ID';
// Пароль приложения
$client_secret = 'YOUR_CLIENT_SECRET';
// Если скрипт был вызван с указанием параметра "code" в URL,
// то выполняется запрос на получение токена
if (isset($_GET['code']))
{
// Формирование параметров (тела) POST-запроса с указанием кода подтверждения
$query = array(
'grant_type' => 'authorization_code',
'code' => $_GET['code'],
'client_id' => $client_id,
'client_secret' => $client_secret
);
$query = http_build_query($query);
// Формирование заголовков POST-запроса
$header = "Content-type: application/x-www-form-urlencoded";
// Выполнение POST-запроса и вывод результата
$opts = array('http' =>
array(
'method' => 'POST',
'header' => $header,
'content' => $query
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://oauth.yandex.ru/token', false, $context);
$result = json_decode($result);
// Токен необходимо сохранить для использования в запросах к API Директа
echo $result->access_token;
}
?>
В поле Доступ к данным
указываем к каким данным или сервисам требуется подключение, например, webmaster:hostinfo
, metrika:read
, login:email
.
ID: 8sd4d0ffsdasdasdsdas160a3
Пароль: d1sdasdsd3dfgffgk3j4kj23ljk3lb8
https://oauth.yandex.ru/authorize?response_type=code&client_id=<идентификатор_приложения>
<!-- Пример -->
https://oauth.yandex.ru/authorize?response_type=code&client_id=8sd4d0ffsdasdasdsdas160a3
токен
ключ для авторизации.AgAAAAAEvkq-XXXXXXXXXXXXXXXXXXXXXXXXXXX
<?php
$ch = curl_init('https://login.yandex.ru/info');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('format' => 'json'));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ваш_ключ'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$info = curl_exec($ch);
curl_close($ch);
$info = json_decode($info, true);
echo '<pre>';
print_r($info);
echo '</pre>';
Переходим по адресу скрипта выше и получаем вот такой ответ:
Array
(
[id] => 123456
[login] => abcdefg
[client_id] => 8asadsd3434d0dsf0dfds232
[psuid] => 1.AvdbllpLdw.kcAzmsdfjienXSJOKqZQ.quiYoxvsddV_gdeeeUfWR-Nw
)
Документация API: https://yandex.ru/dev/webmaster/doc/dg/concepts/About.html