The status is set for 5 seconds or less.
(when a message arrives from your bot, Telegram clients clear its typing status)
public static sendChatAction ( array $data ) : |
||
$data | array | |
return |
public function execute() { $update = $this->getUpdate(); $message = $this->getMessage(); $user_id = $message->getFrom()->getId(); $chat_id = $message->getChat()->getId(); $message_id = $message->getMessageId(); $text = $message->getText(true); //send chat action Request::sendChatAction(['chat_id' => $chat_id, 'action' => 'typing']); $caption = 'Your Id: ' . $message->getFrom()->getId(); $caption .= "\n" . 'Name: ' . $message->getFrom()->getFirstName() . ' ' . $message->getFrom()->getLastName(); $caption .= "\n" . 'Username: '******'user_id' => $user_id, 'limit' => $limit, 'offset' => $offset]); //Check if the request isOK if ($ServerResponse->isOk()) { $UserProfilePhoto = $ServerResponse->getResult(); $totalcount = $UserProfilePhoto->getTotalCount(); } else { $totalcount = 0; } $data = []; $data['chat_id'] = $chat_id; $data['reply_to_message_id'] = $message_id; if ($totalcount > 0) { $photos = $UserProfilePhoto->getPhotos(); //I pick the latest photo with the hight definition $photo = $photos[0][2]; $file_id = $photo->getFileId(); $data['photo'] = $file_id; $data['caption'] = $caption; $result = Request::sendPhoto($data); //Download the image pictures //Download after send message response to speedup response $file_id = $photo->getFileId(); $ServerResponse = Request::getFile(['file_id' => $file_id]); if ($ServerResponse->isOk()) { Request::downloadFile($ServerResponse->getResult()); } } else { //No Photo just send text $data['text'] = $caption; $result = Request::sendMessage($data); } return $result; }
/** * Command execute method * * @return mixed * @throws \Longman\TelegramBot\Exception\TelegramException */ public function execute() { $message = $this->getMessage(); $from = $message->getFrom(); $user_id = $from->getId(); $chat_id = $message->getChat()->getId(); $message_id = $message->getMessageId(); $data = ['chat_id' => $chat_id, 'reply_to_message_id' => $message_id]; //Send chat action Request::sendChatAction(['chat_id' => $chat_id, 'action' => 'typing']); $caption = sprintf('Your Id: %d' . PHP_EOL . 'Name: %s %s' . PHP_EOL . 'Username: %s', $user_id, $from->getFirstName(), $from->getLastName(), $from->getUsername()); //Fetch user profile photo $limit = 10; $offset = null; $response = Request::getUserProfilePhotos(['user_id' => $user_id, 'limit' => $limit, 'offset' => $offset]); if ($response->isOk()) { /** @var UserProfilePhotos $user_profile_photos */ $user_profile_photos = $response->getResult(); if ($user_profile_photos->getTotalCount() > 0) { $photos = $user_profile_photos->getPhotos(); /** @var PhotoSize $photo */ $photo = $photos[0][2]; $file_id = $photo->getFileId(); $data['photo'] = $file_id; $data['caption'] = $caption; $result = Request::sendPhoto($data); //Download the photo after send message response to speedup response $response2 = Request::getFile(['file_id' => $file_id]); if ($response2->isOk()) { /** @var File $photo_file */ $photo_file = $response2->getResult(); Request::downloadFile($photo_file); } return $result; } } //No Photo just send text $data['text'] = $caption; return Request::sendMessage($data); }