Как отправить файл с помощью messengers API на PHP
В начале мы связываем messengers с нашим скриптом, чтобы, когда мы писали код, имели возможность сразу проверять его работу. Для этого перейдите в свой личный кабинет в нашем сервисе и получите там QR код. Затем откройте messengers на своем мобильном телефоне, перейдите в Settings -> messengers Web -> Scan a QR code.
Укажите APiURL и token.
var $APIurl = 'https://api.chat-api.com/instanceYYYYY/';
var $token = 'abcdefgh12345678';
Мы будем использовать GET-параметры для установки адресата и содержания сообщения.
$message = $_GET['text'];
$phone = $_GET['phone'];
Получатель для личных сообщений - номер телефона и постфикс "@c.us".
Он должен быть указан в параметре "chatId".
Поместите свой файл на сервер и вставьте прямую ссылку на файл в параметр «body». Ссылка должна содержать протокол и домен, а не отправлять только путь. Помните, что вы должны установить SSL-сертификат, потому что messengers отказывается получать файлы по протоколу http, только по https!
Вы можете указать имя файла в параметре «filename» и добавить текстовое сообщение к файлу в параметре «caption». Все данные должны быть в формате JSON.
$data = json_encode(array(
'chatId'=>$phone.'@c.us',
'body'=>'https://domain.com/PHP/picture.jpg',
'filename'=>'picture.jpg',
'caption'=>'Hey! There is a file!'
));
Укажите действительный URL для API. Он содержит APIurl, метод и токен в GET-параметре.
$url = $apiURL.'sendFile?token='.$token;
Теперь мы можем отправить запрос в API.
$options = stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-type: application/json',
'content' => $data
]
]);
$response = file_get_contents($url,false,$options);
echo $response;
Чтобы избежать ошибок, добавьте эту строку в начале скрипта:
if(!isset($_GET['text']) or !isset($_GET['phone'])){ die('Not enough data');}
А вот и весь скрипт:
if(!isset($_GET['phone'])){ die('Not enough data');}
$apiURL = 'https://api.chat-api.com/instanceXXXXX/';
$token = 'abcdefgABCDEFG';
$phone = $_GET['phone'];
$data = json_encode(array(
'chatId'=>$phone.'@c.us',
'body'=>'https://domain.com/PHP/picture.jpg',
'filename'=>'picture.jpg',
'caption'=>'Hey! There is a file!'
));
$url = $apiURL.'sendFile?token='.$token;
$options = stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-type: application/json',
'content' => $data
]
]);
$response = file_get_contents($url,false,$options);
echo $response; exit;
Используйте такого рода ссылку: https://yoursite.com/path/to/script/yourscript.php?text=Hello&phone=70123456789
И не используйте скобки, дефисы и любые другие символы форматирования в телефоне. Используйте только цифры.
Вам нужно будет только заменить свой токен из личного кабинета на переменную $token и номер инстанса. 3 дня демо бесплатно
Не стесняйтесь обратиться и поделиться своим опытом или задать любые вопросы.