Сайт: https://alldeals24.com/
CMS: WordPress
Задачи:
1) Реализовать на сайте чтобы ссылки на товары были максимально короткими (такого типа https://alldeals24.com/?p=1082), не затронув при этом структуру остальных ссылок (меню, посты, старницы).
2) Подключить сайт к API
ТЗ на вторую задачу:
Есть сайт, сделан на CMS: WordPress. На этом сайте будут выгружаться анонсы такого типа - https://alldeals24.com/anonsi/amazon-08-10/?id=8459. Эти анонсы нужно будет с помощью реализованного API выгружать в мессенджеры вайбер и телеграмм отдельным пользователям, где под товарами будут прописывать ссылки на формы заказов этих пользователей http://joxi.ru/l2Zn6NjszQwGv2 (это реализовано в админке - http://joxi.ru/Dr8WE6wFo546VA).
API уже готов.
Что нужно сделать Вам:
Создать страницу в админке и/или добавить синхронизацию к действующим типам записей по API.
Цель:
Эта страница - инструмент управления API (документация по API будет приведена внизу)
Функционал:
По сути “Пользователь” - это отдельный тип записей, которые уже созданы на сайте
По сути “Анонс” - это отдельный тип записей, которые уже созданы на сайте. В один анонс входят масса товаров, которые привязаны к конкретному анонсу (их и нужно выгружать). Выгрузка анонсов должна производится как автоматически (после создания нового анонса), так и обновляться/удаляться после внесения изменений на сайте.
Документация по API:
API
===================================================================================================
Создание пользователя (В админке wordpress на страничке пользователей при создании будет выполнятся запрос для создания)
POST
https://......./api/users
{
"name" : "Имя пользователя",
"chat_id" : "Идентификатор чата (телеграм, вайбер)",
"messenger_type" : "Тип мессенджера (TELEGRAM, VIBER)",
"bot_token" : "Токен бота (телеграм, вайбер)",
"text_under_product" : "Тест под товаром"
}
Обновление пользователя (В админке wordpress на страничке пользователей при редактировании будет выполнятся запрос для обновления)
PUT
https://......./api/users/[ид пользователя] ( Пример: http://localhost/users/1 )
{
"name" : "Имя пользователя",
"chat_id" : "Идентификатор чата (телеграм, вайбер)",
"messenger_type" : "Тип мессенджера (TELEGRAM, VIBER)",
"bot_token" : "Токен бота (телеграм, вайбер)",
"text_under_product" : "Тест под товаром"
}
Удаление пользователя (В админке wordpress на страничке пользователей при удалении будет выполнятся запрос для удаления)
DELETE
https://......./api/users/[ид пользователя] ( Пример: http://localhost/users/1 )
=============================================================================
Получение списка пользователей (В админке wordpress на страничке пользователей будет отображаться данный список)
Добавить пагиницию (page - номер странички, size - кол-во елементов)
https://......./api/users?page=1&size=20
GET
https://......./api/users
[
{
"id" : 1,
"name" : "Имя пользователя",
"chat_id" : "Идентификатор чата (телеграм, вайбер)",
"messenger_type" : "Тип мессенджера (TELEGRAM, VIBER)",
"bot_token" : "Токен бота (телеграм, вайбер)",
"text_under_product" : "Тест под товаром"
},
{
"id" : 2…..
}
]
Тип мессенджера (TELEGRAM, VIBER) - (Выпадающий список)
===================================================================================================
Создание анонса (Отправка анонса в мессенджеры)
Для создания анонсов добавить отдельную кнопку при которой отправляется запрос
POST
https://......./api/announcements
{
"name" : "Название анонса",
"description" : "Описание анонса",
"photo_url" : "Фото анонса",
"url" : "Сылка анонса",
"mode" : "Режим выгрузки анонса (1, 2, 3)",
"products" : [
{
"url" : "ссылка на товар",
"photo_url" : "ссылка на картинку",
"name" : "название товара",
"price" : "цена товара"
},
{
"url" : "...",
"photo_url" : "...",
"name" : "...",
"price" : "..."
}
]
}
Режим выгрузки анонса (1, 2, 3)- (Выпадающий список в создании анонса)
===================================================================================================
Получение вайбер идентификаторов
Добавить токен бота для прослушивания (Должна быть страница wordpress Где можно будет добавить токен бота)
POST
https://......./api/viber-bots/set-webhook
{
"bot_token" : "Токен бота"
}
Получить события с вайбер ботов (Должна быть страница wordpress для отображения этой информации)
GET
https://......./api/viber-bots/get-updates
{
"id" : "Номер события",
"bot_token" : "Токен бота",
"chat_id" : "Идентификатор чата",
"sender_name" : "Имя пользователя"
}
===================================================================================================
Вот пример запроса WP, возможно поможет:
$api_username = 'test';
$api_password = 'test';
$api_key = base64_encode($api_username . ':' . $api_password);
function request($url, $method) {
return wp_remote_request($url,
array(
'method' => $method,
'headers' => array('Authorization' => 'Basic ' . $api_key)
)
);
}
//example delete user
$response = request('https://283977-vds-eugen.iordatiev.gmhost.pp.ua/api/users/1', 'DELETE');
if (is_wp_error($response)){
echo $response->get_error_message();
return;
}
$code = wp_remote_retrieve_response_code($response);
$data = json_decode(wp_remote_retrieve_body($response));
if ($code !== 200) {
//error ...
echo $data;
return;
}
echo $data;
===================================================================================================
При просмотре анонса на сайте можно зайти с GET параметром id пользователя. Сейчас ид пользователя проверяется из базы данных сайта, если он есть то под каждым товаром выводится текст. Нужно изменить чтобы ид пользователя проверялся через API
GET
https://......./api/users/[ид пользователя]
{
"text_under_product" : "Тест под товаром"
}
===================================================================================================