Яндекс API — как получить ключ OAuth-авторизации в PHP

  1. Заходим и читаем https://yandex.ru/dev/direct/doc/dg-v4/examples/auth-token-sample-docpage/
  2. Создаем PHP-скрипт там, куда вернет ответ Яндекс для получения ключа. Например https://webguns.ru/get_token.php
  3. Содержимое скрипта ниже


<?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;
  }
?>

4. Регистрируем-заполняем поля для создания своего приложения здесь https://oauth.yandex.ru/client/new

5. Нажимаем создать приложение и получаем ID и секрет, примерно такого вида

ID: 8sd4d0ffsdasdasdsdas160a3
Пароль: d1sdasdsd3dfgffgk3j4kj23ljk3lb8
Callback URL: https://webguns.ru/get_token.php

6. Вводим в браузере адрес https://oauth.yandex.ru/authorize?response_type=code&client_id=<идентификатор_приложения>

Пример: https://oauth.yandex.ru/authorize?response_type=code&client_id=8sd4d0ffsdasdasdsdas160a3

7. Жмем Разрешить — получаем в ответ наш ключ для авторизации. Все.

Добавить комментарий