yurcrm/yandex-turbo-pages

此软件包最新版本(v2.2)没有可用的许可信息。

Yandex turbo pages 的 API 客户端

v2.2 2024-05-29 11:04 UTC

This package is auto-updated.

Last update: 2024-09-29 11:46:31 UTC


README

向 API 发送任意数量的页面,以 XML 文档的形式

要使用 API,您需要注册到 Яндекса.Вебмастер 服务并获取用于上传 turbo 页面的 API 密钥。

关于 turbo 页面的详细信息,可以在这里阅读,例如:https://webmaster.yandex.ru

安装

您可以通过 Composer 安装此软件包

composer require yurcrm/yandex-turbo-pages

使用示例

// Инициализируем клиент в режиме отладки. Для боевого режима укажите третьим параметром TurboApi::MODE_PRODUCTION
$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG);

// Получаем у Яндекса необходимые данные для отправки турбостраниц
$turboApi->requestUserId();
$turboApi->requestHost();
$turboApi->requestUploadAddress();

// лимит числа страниц в рамках одной задачи. В режиме дебага это число ограничено, см. документацию от Яндекса
$tasksLimit = 30;

$turboPack = new TurboApi\TurboPack('Заголовок сайта', 'URL сайта', 'Краткое описание сайта', 'Код языка сайта');

/*
  Предположим, у вас есть страницы категорий, у каждой - заголовок и описание
*/
foreach ($categories as $category) {
    $link = 'URL страницы категории';
    $taskItem = new TurboApi\TurboItem();

    $taskXML = '<item turbo="true"><link>' . $link . '</link>';
    $taskXML .= '<turbo:content><![CDATA[';
    $taskXML .= '<header>
               <h1>' . $category->seoH1 . '</h1>
           </header>';
    $taskXML .= $category->description;
    $taskXML .= ']]></turbo:content></item>' . PHP_EOL;

    $taskItem->setXml($taskXML);
    $turboPack->addItem($taskItem);
}

// разбиваем массив турбостраниц на задачи
$tasks = $turboPack->getTasks($tasksLimit);

// В этом массиве будем хранить id задач, чтобы потом получать информацию по ним
$taskIds = [];

// отправляем задачи в Яндекс
foreach ($tasks as $task) {
    $taskIds[] = $turboApi->uploadRss($task);
}

如何获取任务处理状态

假设在先前的示例中,您从雅虎获得了任务 id 数组。现在,让我们获取 $taskId 的状态。

// Инициализируем клиент в режиме отладки. Для боевого режима укажите третьим параметром TurboApi::MODE_PRODUCTION
$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG);

// Получаем у Яндекса необходимые данные для отправки турбостраниц
$turboApi->requestUserId();
$turboApi->requestHost();
$turboApi->requestUploadAddress();
$status = $turboApi->getTask($taskId);

如何获取任务列表

// Инициализируем клиент в режиме отладки. Для боевого режима укажите третьим параметром TurboApi::MODE_PRODUCTION
$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG);

// Получаем у Яндекса необходимые данные
$turboApi->requestUserId();
$turboApi->requestHost();

$offset = 0; // Смещение в списке. Минимальное значение — 0
$limit = 5; // Ограничение на количество элементов в списке. Минимальное значение — 1; максимальное значение — 100.
$taskTypeFilter = TurboApi::TASK_TYPE_FILTER_DEBUG; // Фильтрация по режиму загрузки RSS-канала. Возможные значения: DEBUG, PRODUCTION, ALL.
$loadStatusFilter = TurboApi::LOAD_STATUS_FILTER_PROCESSING; // Фильтрация по статусу загрузки RSS-канала. Возможные значения: PROCESSING, OK, WARNING, ERROR.
$status = $turboApi->getTasks($offset, $limit, $taskTypeFilter, $loadStatusFilter);

如何设置 API 服务器数据

如果需要设置不同于默认数据(截至 2022 年 9 月 26 日有效)的数据,请通过构造函数设置它们。

$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG, 'https://api.webmaster.yandex.net', 'v4');

开发计划

在未来版本中,将能够查看来自雅虎的更详细响应,而不仅仅是任务 id 和状态。