Отправить шаблон (инициировать диалог)
messengers ограничивает содержание текстов сообщений, с помощью которых можно начать разговор с клиентом или продолжить разговор через 24 часа после последнего сообщения клиента. Это сообщение должно быть заранее утвержденным шаблоном. За отправку шаблона взимается плата, так как это инициирует диалог. Если клиент ответил вам, вы можете общаться с ним бесплатно в течение 24 часов с момента получения ответа. Читать подробнее.
$data = [
'phone' => '79995253422', // Receivers phone
'template' => 'template_name', // Template name
'namespace' => 'namespace_of_template', // Namespace of template
'language' => ['code' => 'en', 'policy' => 'deterministic'], // Language parameters
];
$json = json_encode($data); // Encode data to JSON
// URL for request POST /message
$token = '83763g87x';
$instanceId = '777';
$url = "https://api.chat-api.com/instance{$instanceId}/sendTemplate?token={$token}";
// Make a POST request
$options = stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-type: application/json',
'content' => $json
]
]);
// Send a request
$result = file_get_contents($url, false, $options);
var request = require('request'); //bash: npm install request
// URL for request POST /message
const token = '83763g87x';
const instanceId = '777';
const url = `https://api.chat-api.com/instance${instanceId}/sendTemplate?token=${token}`;
var data = {
phone: '79995253422', // Receivers phone
template: "template_name",
namespace : "namespace_of_template",
language: {
code: "en",
policy: "deterministic"}
};
// Send a request
request({
url: url,
method: "POST",
json: data
});
// URL for request POST /message
const token = '83763g87x';
const instanceId = '777';
const url = `https://api.chat-api.com/instance${instanceId}/sendTemplate?token=${token}`;
let data = {
phone: '79995253422', // Receivers phone
template: "template_name",
namespace : "namespace_of_template",
language: {
code: "en",
policy: "deterministic"}
};
// Send a request
$.ajax(url, {
data : JSON.stringify(data),
contentType : 'application/json',
type : 'POST'
});
curl \
-d '{"phone": "79995253422","template": "template_name", "namespace" : "namespace_of_template", "language": { "code": "en", "policy": "deterministic"}}' \ # Phone and template parameters
-H "Content-Type: application/json" \ # Headers
-X POST \ # Type = POST
"https://api.chat-api.com/sendTemplate?token=83763g87x" # URL for request POST /message
Отправить сообщение
Если диалог был инициирован клиентом, то вы можете отвечать обычным сообщением. Этот диалог так же является оплачиваемым, если вы ответили клиенту. Вы можете общаться с ним бесплатно в течение 24 часов с момента ответа. Читать подробнее про Диалоговую модель тарификации.
// URL для запроса GET /messages
$token = '83763g87x';
$instanceId = '777';
$url = 'https://api.chat-api.com/instance'.$instanceId.'/messages?token='.$token;
$result = file_get_contents($url); // Отправим запрос
$data = json_decode($result, 1); // Разберем полученный JSON в массив
foreach($data['messages'] as $message){ // Распечатаем каждое сообщение
echo "Отправитель:".$message['author']."<br>";
echo "Сообщение: ".$message['body']."<br>";
}
var request = require('request');// npm install request
var token = '83763g87x';
var instanceId = '777';
var url = `https://api.chat-api.com/instance${instanceId}/messageы?token=${token}`;
request(url, function (error, response, body) { // Выполним GET запрос на URL
if (error) return console.error('HTTP Error', error);
// Декодируем ответ
var data = JSON.parse(body);
// Для каждого сообщения
for (var i = 0; i < data.messages.length; i++) {
var message = data.messages[i];
console.log(message.author + ': ' + message.body); //Выведем его в консоль
}
});
var token = '83763g87x';
var instanceId = '777';
var url = `https://api.chat-api.com/instance${instanceId}/message?token=${token}`;
$.get(url, function (data) { // Выполним GET запрос на URL
for (var i = 0; i < data.messages.length; i++) { // Для каждого сообщения
var message = data.messages[i];
console.log(message.author + ': ' + message.body); //Выведем его в консоль
}
});
# Всего лишь GET запрос
curl "https://api.chat-api.com/instance777/messages?token=83763g87x"
Установить Webhook
Получайте уведомления о личных сообщениях через входящие http запросы на ваш сервер.
// Сначала установите webhook согласно
// документации например на http://ваш.сайт/incoming_message.php
// Декодируем пришедший по webhook JSON
$data = json_decode(file_get_contents('php://input'), true);
foreach($data['messages'] as $message){ // Распечатаем каждое сообщение
// Здесь уже обработайте каждое сообщение:
// Добавьте в базу данных или сразу ответьте
}
// Сначала установите webhook согласно
// документации например на http://ваш.сайт/incoming_message.php
// Подключим Express JS и Body Parser для того чтобы принять JSON POST
var app = require('express')();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
// Теперь напишем обработик для
app.post('/got_messages', function (req, res) {
var data = req.body; // Получили новые сообщения в body
for (var i = 0; i < data.messages.length; i++) { // Для каждого сообщения
var message = data.messages[i];
console.log(message.author + ': ' + message.body); //Выведем его в консоль
}
res.send('Ok'); //Ответим хоть что-нибудь, лишь бы код 200 был
});
app.listen(80);
Управление профилем аккаунта
Вы можете просматривать и редактировать свой профиль messengers. Однако если вы хотите изменить отображаемое имя аккаунта, существует несколько правил.
$data = [
'address' => '79995253422', // Телефон получателя
'description' => 'Best Company', // Сообщение
'email' => '', // mail Организации
'vertical' => '' // Отрасль
];
$json = json_encode($data); // Закодируем данные в JSON
// URL для запроса POST /message
$token = '83763g87x';
$instanceId = '777';
$url = 'https://api.chat-api.com/instance'.$instanceId.'/me?token='.$token;
// Сформируем контекст обычного POST-запроса
$options = stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-type: application/json',
'content' => $json
]
]);
// Отправим запрос
$result = file_get_contents($url, false, $options);