Отправка файла через API messengers на PHP

Как отправить файл с помощью 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 дня демо бесплатно

Get API key

Не стесняйтесь обратиться и поделиться своим опытом или задать любые вопросы.

To top