Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 56 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,61 @@ https://developers.line.biz/en/reference/messaging-api/#get-narrowcast-progress-
print(narrowcast.target_count)


validate\_reply\_message\_objects(self, messages, timeout=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Validate that an array of message objects used for reply message is valid.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-reply-message

.. code:: python

line_bot_api.validate_reply_message_objects(TextSendMessage(text='Hello World!'))

validate\_push\_message\_objects(self, messages, timeout=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Validate that an array of message objects used for push message is valid.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-push-message

.. code:: python

line_bot_api.validate_push_message_objects(TextSendMessage(text='Hello World!'))

validate\_multicast\_message\_objects(self, messages, timeout=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Validate that an array of message objects used for multicast message is valid.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-multicast-message

.. code:: python

line_bot_api.validate_multicast_message_objects(TextSendMessage(text='Hello World!'))

validate\_broadcast\_message\_objects(self, messages, timeout=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Validate that an array of message objects used for broadcast message is valid.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-broadcast-message

.. code:: python

line_bot_api.validate_broadcast_message_objects(TextSendMessage(text='Hello World!'))

validate\_narrowcast\_message\_objects(self, messages, timeout=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Validate that an array of message objects used for narrowcast message is valid.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-narrowcast-message

.. code:: python

line_bot_api.validate_narrowcast_message_objects(TextSendMessage(text='Hello World!'))

get\_profile(self, user\_id, timeout=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -764,7 +819,7 @@ TextSendMessage-Emoji
"index": 0,
"productId": "5ac1bfd5040ab15980c9b435",
"emojiId": "001"
},
},
{
"index": 13,
"productId": "5ac1bfd5040ab15980c9b435",
Expand Down
177 changes: 175 additions & 2 deletions linebot/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,10 @@
Group, UserIds, RichMenuAliasResponse, RichMenuAliasListResponse, ChannelAccessTokens,
IssueChannelTokenResponseV2, VerifyChannelTokenResponseV2, ValidAccessTokenKeyIDsResponse,
InsightMessageEventOfCustomAggregationUnitResponse, AggregationInfoResponse,
AggregationNameListResponse
AggregationNameListResponse,
ValidateBroadcastMessageObjectsResponse,
ValidateMulticastMessageObjectsResponse, ValidateNarrowcastMessageObjectsResponse,
ValidatePushMessageObjectsResponse, ValidateReplyMessageObjectsResponse,
)


Expand Down Expand Up @@ -174,7 +177,7 @@ def multicast(self, to, messages, retry_key=None, notification_disabled=False,
Messages cannot be sent to groups or rooms.

:param to: IDs of the receivers
Max: 150 users
Max: 500 users
:type to: list[str]
:param messages: Messages.
Max: 5
Expand Down Expand Up @@ -327,6 +330,176 @@ def get_progress_status_narrowcast(self, request_id, timeout=None):

return MessageProgressNarrowcastResponse.new_from_json_dict(response.json)

def validate_reply_message_objects(self, messages, timeout=None):
"""Call validate reply message objects API.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-reply-message

You can validate that an array of message objects is valid as a value
for the messages property of the request body for the send reply message endpoint.

:param messages: Messages.
Max: 5
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
:param timeout: (optional) How long to wait for the server
to send data before giving up, as a float,
or a (connect timeout, read timeout) float tuple.
Default is self.http_client.timeout
:type timeout: float | tuple(float, float)
:rtype: :py:class:`linebot.models.responses.ValidateReplyMessageObjectsResponse`
"""
if not isinstance(messages, (list, tuple)):
messages = [messages]

data = {
'messages': [message.as_json_dict() for message in messages],
}

response = self._post(
'/v2/bot/message/validate/reply', data=json.dumps(data),
timeout=timeout
)

return ValidateReplyMessageObjectsResponse(
request_id=response.headers.get('X-Line-Request-Id'))

def validate_push_message_objects(self, messages, timeout=None):
"""Call validate push message objects API.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-push-message

You can validate that an array of message objects is valid as a value
for the messages property of the request body for the send push message endpoint.

:param messages: Messages.
Max: 5
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
:param timeout: (optional) How long to wait for the server
to send data before giving up, as a float,
or a (connect timeout, read timeout) float tuple.
Default is self.http_client.timeout
:type timeout: float | tuple(float, float)
:rtype: :py:class:`linebot.models.responses.ValidatePushMessageObjectsResponse`
"""
if not isinstance(messages, (list, tuple)):
messages = [messages]

data = {
'messages': [message.as_json_dict() for message in messages],
}

response = self._post(
'/v2/bot/message/validate/push', data=json.dumps(data),
timeout=timeout
)

return ValidatePushMessageObjectsResponse(
request_id=response.headers.get('X-Line-Request-Id'))
Comment on lines +398 to +399
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above. 🆙


def validate_multicast_message_objects(self, messages, timeout=None):
"""Call validate multicast message objects API.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-multicast-message

You can validate that an array of message objects is valid as a value
for the messages property of the request body for the send multicast message endpoint.

:param messages: Messages.
Max: 5
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
:param timeout: (optional) How long to wait for the server
to send data before giving up, as a float,
or a (connect timeout, read timeout) float tuple.
Default is self.http_client.timeout
:type timeout: float | tuple(float, float)
:rtype: :py:class:`linebot.models.responses.ValidateMulticastMessageObjectsResponse`
"""
if not isinstance(messages, (list, tuple)):
messages = [messages]

data = {
'messages': [message.as_json_dict() for message in messages],
}

response = self._post(
'/v2/bot/message/validate/multicast', data=json.dumps(data),
timeout=timeout
)

return ValidateMulticastMessageObjectsResponse(
request_id=response.headers.get('X-Line-Request-Id'))

def validate_broadcast_message_objects(self, messages, timeout=None):
"""Call validate broadcast message objects API.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-broadcast-message

You can validate that an array of message objects is valid as a value
for the messages property of the request body for the send broadcast message endpoint.

:param messages: Messages.
Max: 5
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
:param timeout: (optional) How long to wait for the server
to send data before giving up, as a float,
or a (connect timeout, read timeout) float tuple.
Default is self.http_client.timeout
:type timeout: float | tuple(float, float)
:rtype: :py:class:`linebot.models.responses.ValidateBroadcastMessageObjectsResponse`
"""
if not isinstance(messages, (list, tuple)):
messages = [messages]

data = {
'messages': [message.as_json_dict() for message in messages],
}

response = self._post(
'/v2/bot/message/validate/broadcast', data=json.dumps(data),
timeout=timeout
)

return ValidateBroadcastMessageObjectsResponse(
request_id=response.headers.get('X-Line-Request-Id'))

def validate_narrowcast_message_objects(self, messages, timeout=None):
"""Call validate narrowcast message objects API.

https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-narrowcast-message

You can validate that an array of message objects is valid as a value
for the messages property of the request body for the send narrowcast message endpoint.

:param messages: Messages.
Max: 5
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
:param timeout: (optional) How long to wait for the server
to send data before giving up, as a float,
or a (connect timeout, read timeout) float tuple.
Default is self.http_client.timeout
:type timeout: float | tuple(float, float)
:rtype: :py:class:`linebot.models.responses.ValidateNarrowcastMessageObjectsResponse`
"""
if not isinstance(messages, (list, tuple)):
messages = [messages]

data = {
'messages': [message.as_json_dict() for message in messages],
}

response = self._post(
'/v2/bot/message/validate/narrowcast', data=json.dumps(data),
timeout=timeout
)

return ValidateNarrowcastMessageObjectsResponse(
request_id=response.headers.get('X-Line-Request-Id'))

def get_message_delivery_broadcast(self, date, timeout=None):
"""Get number of sent broadcast messages.

Expand Down
Loading