yurcrm / yandex-turbo-pages
此软件包最新版本(v2.2)没有可用的许可信息。
Yandex turbo pages 的 API 客户端
v2.2
2024-05-29 11:04 UTC
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
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 和状态。