Path : /var/www/html/phkaymedia/vendor/irazasyed/telegram-bot-sdk/src/Methods/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/phkaymedia/vendor/irazasyed/telegram-bot-sdk/src/Methods/Message.php |
<?php namespace Telegram\Bot\Methods; use Telegram\Bot\Exceptions\TelegramSDKException; use Telegram\Bot\Objects\Message as MessageObject; use Telegram\Bot\Traits\Http; /** * Class Message. * * @mixin Http */ trait Message { /** * Send text messages. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'text' => '', // string - Required. Text of the message to be sent * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in your bot's message. * 'entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'disable_web_page_preview' => '', // bool - (Optional). Disables link previews for links in this message * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // object - (Optional). One of either InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendmessage * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendMessage(array $params): MessageObject { $response = $this->post('sendMessage', $params); return new MessageObject($response->getDecodedBody()); } /** * Forward messages of any kind. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'from_chat_id' => '', // int - Required. Unique identifier for the chat where the original message was sent (or channel username in the format "@channelusername") * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'message_id' => '', // int - Required. Message identifier in the chat specified in from_chat_id * ] * </code> * * @link https://core.telegram.org/bots/api#forwardmessage * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function forwardMessage(array $params): MessageObject { $response = $this->post('forwardMessage', $params); return new MessageObject($response->getDecodedBody()); } /** * Copy messages of any kind. * * The method is analogous to the method forwardMessages, but the copied message doesn't have a link to the original message. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'from_chat_id' => '', // int - Required. Unique identifier for the chat where the original message was sent (or channel username in the format "@channelusername") * 'message_id' => '', // int - Required. Message identifier in the chat specified in from_chat_id * 'caption' => '', // string - (Optional). New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept * 'parse_mode' => '', // string - (Optional). Mode for parsing entities in the new caption. See formatting options for more details. * 'caption_entities' => '', // array - (Optional). List of special entities that appear in the new caption, which can be specified instead of parse_mode * 'disable_notification' => '', // bool - (Optional). Sends the message silently. Users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#copymessage * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function copyMessage(array $params): MessageObject { $response = $this->post('copyMessage', $params); return new MessageObject($response->getDecodedBody()); } /** * Send Photo. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'photo' => InputFile::file($file), // InputFile|string - Required. Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. * 'caption' => '', // string - (Optional). Photo caption (may also be used when resending photos by file_id), 0-200 characters * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption. * 'caption_entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendphoto * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendPhoto(array $params): MessageObject { $response = $this->uploadFile('sendPhoto', $params, 'photo'); return new MessageObject($response->getDecodedBody()); } /** * Send regular audio files. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'audio' => InputFile::file($file), // InputFile|string - Required. Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. * 'caption' => '', // string - (Optional). Audio caption, 0-200 characters * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption. * 'caption_entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'duration' => '', // int - (Optional). Duration of the audio in seconds * 'performer' => '', // string - (Optional). Performer * 'title' => '', // string - (Optional). Track name * 'thumb' => InputFile::file($file), // InputFile|string - (Optional). Thumbnail can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Thumbnails can't be reused and can be only uploaded as a new file. * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * * @link https://core.telegram.org/bots/api#sendaudio * </code> * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendAudio(array $params): MessageObject { $response = $this->uploadFile('sendAudio', $params, 'audio'); return new MessageObject($response->getDecodedBody()); } /** * Send general files. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'document' => InputFile::file($file), // InputFile|string - Required. File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. * 'thumb' => InputFile::file($file), // InputFile|string - (Optional). Thumbnail can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Thumbnails can't be reused and can be only uploaded as a new file. * 'caption' => '', // string - (Optional). Document caption (may also be used when resending documents by file_id), 0-200 characters * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption. * 'caption_entities => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'disable_content_type_detection' => '', // bool - (Optional). Disables automatic server-side content type detection for files uploaded using multipart/form-data * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#senddocument * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendDocument(array $params): MessageObject { $response = $this->uploadFile('sendDocument', $params, 'document'); return new MessageObject($response->getDecodedBody()); } /** * Send Video File, Telegram clients support mp4 videos (other formats may be sent as Document). * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'video' => InputFile::file($file), // InputFile|string - Required. Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. * 'duration' => '', // int - (Optional). Duration of sent video in seconds * 'width' => '', // int - (Optional). Video width * 'height' => '', // int - (Optional). Video height * 'thumb' => InputFile::file($file), // InputFile|string - (Optional). Thumbnail can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Thumbnails can't be reused and can be only uploaded as a new file. * 'caption' => '', // string - (Optional). Video caption (may also be used when resending videos by file_id), 0-200 characters. * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption. * 'caption_entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'supports_streaming' => '', // bool - (Optional). Pass True, if the uploaded video is suitable for streaming * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendvideo * @see sendDocument * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendVideo(array $params): MessageObject { $response = $this->uploadFile('sendVideo', $params, 'video'); return new MessageObject($response->getDecodedBody()); } /** * Send send animation files (GIF or H.264/MPEG-4 AVC video without sound). * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'animation' => InputFile::file($file), // InputFile|string - Required. Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. * 'duration' => '', // int - (Optional). Duration of sent animation in seconds * 'width' => '', // int - (Optional). Animation width * 'height' => '', // int - (Optional). Animation height * 'thumb' => InputFile::file($file), // InputFile|string - (Optional). Thumbnail can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Thumbnails can't be reused and can be only uploaded as a new file. * 'caption' => '', // string - (Optional). Document caption (may also be used when resending documents by file_id), 0-200 characters * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption. * 'caption_entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendanimation * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendAnimation(array $params): MessageObject { $response = $this->uploadFile('sendAnimation', $params, 'animation'); return new MessageObject($response->getDecodedBody()); } /** * Send voice audio files. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'voice' => InputFile::file($file), // InputFile|string - Required. Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. * 'caption' => '', // string - (Optional). Voice message caption, 0-200 characters * 'parse_mode' => '', // string - (Optional). Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption. * 'caption_entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'duration' => '', // int - (Optional). Duration of the voice message in seconds * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendvoice * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendVoice(array $params): MessageObject { $response = $this->uploadFile('sendVoice', $params, 'voice'); return new MessageObject($response->getDecodedBody()); } /** * Send rounded square mp4 videos of up to 1 minute long. Use this method to send video messages. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'video_note' => InputFile::file($file), // InputFile|string - Required. Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. * 'duration' => '', // int - (Optional). Duration of sent video in seconds * 'length' => '', // int - (Optional). Video width and height * 'thumb' => InputFile::file($file), // InputFile|string - (Optional). Thumbnail can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Thumbnails can't be reused and can be only uploaded as a new file. * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendvideonote * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendVideoNote(array $params): MessageObject { $response = $this->uploadFile('sendVideoNote', $params, 'video_note'); return new MessageObject($response->getDecodedBody()); } /** * Send a group of photos, audio, documents or videos as an album. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'media' => [], // array - Required. A JSON-serialized array describing messages to be sent, must include 2-10 items. Array of InputMediaAudio, InputMediaDocument, InputMediaPhoto and InputMediaVideo * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent messages from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * ] * </code> * * @link https://core.telegram.org/bots/api#sendmediagroup * * @param array $params * * @throws TelegramSDKException * * //TODO Check this return type. * @return MessageObject */ public function sendMediaGroup(array $params) { $response = $this->uploadFile('sendMediaGroup', $params, 'media'); return new MessageObject($response->getDecodedBody()); } /** * Send information about a venue. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'latitude' => '', // float - Required. Latitude of the venue * 'longitude' => '', // float - Required. Longitude of the venue * 'title' => '', // string - Required. Name of the venue * 'address' => '', // string - Required. Address of the venue * 'foursquare_id' => '', // string - (Optional). Foursquare identifier of the venue * 'foursquare_type' => '', // string - (Optional). Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) * 'google_place_id' => '', // string - (Optional). Google Places identifier of the venue * 'google_place_type' => '', // string - (Optional). Google Places type of the venue. * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendvenue * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendVenue(array $params): MessageObject { $response = $this->post('sendVenue', $params); return new MessageObject($response->getDecodedBody()); } /** * Send phone contacts. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'phone_number' => '', // string - Required. Contact's phone number * 'first_name' => '', // string - Required. Contact's first name * 'last_name' => '', // string - Required. Contact's last name * 'vcard' => '', // string - (Optional). Additional data about the contact in the form of a vCard, 0-2048 bytes * 'disable_notification' => '', // bool - (Optional). Sends the message silently. iOS users will not receive a notification, Android users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendcontact * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendContact(array $params): MessageObject { $response = $this->post('sendContact', $params); return new MessageObject($response->getDecodedBody()); } /** * Send a poll. * * Use this method to send a native poll. A native poll can't be sent to a private chat. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername"). A native poll can't be sent to a private chat. * 'question' => '', // string - Required. Poll question, 1-255 characters * 'options' => '', // array - Required. List of answer options, 2-10 strings 1-100 characters each * 'is_anonymous' => '', // bool - (Optional). True, if the poll needs to be anonymous, defaults to True * 'type' => '', // string - (Optional). Poll type, “quiz” or “regular”, defaults to “regular” * 'allows_multiple_answers' => '', // bool - (Optional). True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False * 'correct_option_id' => '', // int - (Optional). 0-based identifier of the correct answer option, required for polls in quiz mode * 'explanation' => '', // string - (Optional). Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing * 'explanation_parse_mode' => '', // string - (Optional). Mode for parsing entities in the explanation. See formatting options for more details. * 'explanation_entities' => '', // array - (Optional). List of special entities that appear in the caption, which can be specified instead of parse_mode * 'open_period' => '', // int - (Optional). Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date. * 'close_date' => '', // int - (Optional). Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period. * 'is_closed' => '', // bool - (Optional). Pass True, if the poll needs to be immediately closed. This can be useful for poll preview. * 'disable_notification' => '', // bool - (Optional). Sends the message silently. Users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply' => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#sendpoll * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendPoll(array $params): MessageObject { $params['options'] = is_string($params['options']) ? $params['options'] : json_encode($params['options']); $response = $this->post('sendPoll', $params); return new MessageObject($response->getDecodedBody()); } /** * Send a dice. * * Use this method to send a dice, which will have a random value from 1 to 6 * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername"). A native poll can't be sent to a private chat. * 'emoji' => '', // string - (Optional). Emoji on which the dice throw animation is based. Currently, must be one of “🎲”, “🎯”, “🏀”, “⚽”, “🎳”, or “🎰”. Dice can have values 1-6 for “🎲”, “🎯” and “🎳”, values 1-5 for “🏀” and “⚽”, and values 1-64 for “🎰”. Defaults to “🎲” * 'disable_notification' => '', // bool - (Optional). Sends the message silently. Users will receive a notification with no sound. * 'protect_content' => '', // bool - (Optional). Protects the contents of the sent message from forwarding and saving * 'reply_to_message_id' => '', // int - (Optional). If the message is a reply, ID of the original message * 'allow_sending_without_reply => '', // bool - (Optional). Pass True, if the message should be sent even if the specified replied-to message is not found * 'reply_markup' => '', // string - (Optional). Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. * ] * </code> * * @link https://core.telegram.org/bots/api#senddice * * @param array $params * * @throws TelegramSDKException * * @return MessageObject */ public function sendDice(array $params): MessageObject { $response = $this->post('sendDice', $params); return new MessageObject($response->getDecodedBody()); } /** * Broadcast a Chat Action. * * <code> * $params = [ * 'chat_id' => '', // int|string - Required. Unique identifier for the target chat or username of the target channel (in the format "@channelusername") * 'action' => '', // string - Required. Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. * ] * </code> * * @link https://core.telegram.org/bots/api#sendchataction * * @param array $params * * @throws TelegramSDKException * * @return bool */ public function sendChatAction(array $params): bool { $validActions = [ 'typing', 'upload_photo', 'record_video', 'upload_video', 'record_audio', 'upload_audio', 'upload_document', 'find_location', 'record_video_note', 'upload_video_note', ]; if (isset($params['action']) && in_array($params['action'], $validActions)) { $this->post('sendChatAction', $params); return true; } throw new TelegramSDKException('Invalid Action! Accepted value: ' . implode(', ', $validActions)); } }