LINUX.ORG.RU

PHP и бот Telegram

 , , ,


1

1
<form action="https://api.telegram.org/botТУТ_ТОКЕН/sendphoto" enctype="multipart/form-data" method="post">
  <input type="text" name="chat_id" value="ИД_ЧАТА">
  <input type="file" name="photo" accept="image/jpeg,image/png,image/gif">
  <input type="submit">
</form>

В таком виде всё прекрасно отправляется.
А как это же самое провернуть через обработчик?
Даю боту $_FILES['photo']['tmp_name'], бот это не хочет есть.
Нужен адрес до картинки, но это когда картинка из инета, а если с компа?

★★★★★

Последнее исправление: cinyflo (всего исправлений: 1)

ну если через твой обработчик то наверное

// initialise the curl request
$request = curl_init('https://api.telegram.org/botТУТ_ТОКЕН/sendphoto');

// send a file
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
    $request,
    CURLOPT_POSTFIELDS,
    array(
      'chat_id' => 'ИД_ЧАТА',
      'photo' => '@' . realpath('absolute path to photo on disk')
    ));

// output the response
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);

// close the session
curl_close($request);

kiotoze ★★★★
()

Не лучше ли использовать готовую библиотеку?

Пример отправки картинки:

use Telegram\Bot\Api;

$telegram = new Api('BOT TOKEN');

$response = $telegram->sendPhoto([
  'chat_id' => 'CHAT_ID', 
  'photo' => 'path/to/photo.jpg', 
	'caption' => 'Some caption'
]);

$messageId = $response->getMessageId()
xSudo ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.