Архив метки: Яндекс

Яндекс Вебмастер API — добавление оригинального текста PHP

<?php
//header("Content-Type: application/xml; charset=utf-8");

$user_id = 99999;
$host_id = 'https:site.ru:443';
$OAuth = 'key_here';


$data = 'Варкалось. Хливкие шорьки 
Пырялись по наве, 
И хрюкотали зелюки, 
Как мюмзики в мове. ';

$data = strip_tags($data);
$data = htmlspecialchars($data);
$data = iconv(mb_detect_encoding($data, mb_detect_order(), true), "UTF-8", $data);

$data = "<Data><content>{$data}</content></Data>";

$headers = array(
    'Content-type: application/xml;charset=UTF-8',
    'Authorization: OAuth '.$OAuth.''
);

$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://api.webmaster.yandex.net/v4/user/$user_id/hosts/$host_id/original-texts/"); // отправка текста в яндекс
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
    $output = curl_exec($ch);
    $debug = curl_getinfo($ch);;
		curl_close($ch);

   $info = json_decode($output, true);
    print_r($info);
    print_r($debug);

У Яндекс условие — текст должен быть более 500 символов.

Яндекс Вебмастер API — как получить оригинальные тексты PHP

<?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 AADSDSddffdfdfdfdfdfjhkh777'));
		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);
		print_r($info);

Яндекс Вебмастер API — как получить host-id в PHP

Выполняем следующий скрипт, получение токена и user-id было произведено ранее.

<?php

$user_id = 4299035;
$token = '232sASDSDFweeregr';
 $ch = curl_init('https://api.webmaster.yandex.net/v4/user/".$user_id."/hosts'); //получение списка сайтов
		curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ".$token."'));
		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);
		print_r($info);

Яндекс API — как получить user-id в PHP

  1. Получаем ключ авторизации — описано тут
  2. Создаем скрипт со следующим содержимым:
<?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);
		print_r($info);

3. Переходим по адресу скрипта выше и получаем вот такой ответ :

Array ( [login] => abwgat [id] => 234232 [client_id] => 8asadsd3434d0dsf0dfds232 ) 

Все.

Яндекс 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. Жмем Разрешить — получаем в ответ наш ключ для авторизации. Все.