diff --git a/aiogram/api.py b/aiogram/api.py index 6935b1f9..715df600 100644 --- a/aiogram/api.py +++ b/aiogram/api.py @@ -98,10 +98,10 @@ class ApiMethods: SEND_VIDEO = 'sendVideo' SEND_VOICE = 'sendVoice' SEND_VIDEO_NOTE = 'sendVideoNote' - SEND_LOCATION = 'sendLocation' # TODO - SEND_VENUE = 'sendVenue' # TODO - SEND_CONTACT = 'sendContact' # TODO - SEND_CHAT_ACTION = 'sendChatAction' # TODO + SEND_LOCATION = 'sendLocation' + SEND_VENUE = 'sendVenue' + SEND_CONTACT = 'sendContact' + SEND_CHAT_ACTION = 'sendChatAction' GET_USER_PROFILE_PHOTOS = 'getUserProfilePhotos' # TODO GET_FILE = 'getFile' # TODO KICK_CHAT_MEMBER = 'kickChatMember' # TODO diff --git a/aiogram/bot.py b/aiogram/bot.py index 6de14933..a24dc787 100644 --- a/aiogram/bot.py +++ b/aiogram/bot.py @@ -242,3 +242,20 @@ class AIOGramBot: payload = generate_payload(**locals()) message = await self.request(ApiMethods.SEND_VENUE, payload) return self.prepare_object(Message.de_json(message)) + + async def send_contact(self, chat_id, phone_number, first_name, last_name=None, disable_notification=None, + reply_to_message_id=None, reply_markup=None): + if reply_markup and hasattr(reply_markup, 'to_json'): + reply_markup = json.dumps(reply_markup.to_json()) + + if hasattr(reply_to_message_id, 'message_id'): + reply_to_message_id = reply_to_message_id.message_id + + payload = generate_payload(**locals()) + message = await self.request(ApiMethods.SEND_CONTACT, payload) + return self.prepare_object(Message.de_json(message)) + + async def send_chat_action(self, chat_id, action): + payload = generate_payload(**locals()) + message = await self.request(ApiMethods.SEND_CHAT_ACTION, payload) + return self.prepare_object(Message.de_json(message))