@@ -109,7 +109,9 @@ def reply_message(self, reply_token, messages, notification_disabled=False, time
109
109
'/v2/bot/message/reply' , data = json .dumps (data ), timeout = timeout
110
110
)
111
111
112
- def push_message (self , to , messages , notification_disabled = False , timeout = None ):
112
+ def push_message (
113
+ self , to , messages ,
114
+ retry_key = None , notification_disabled = False , timeout = None ):
113
115
"""Call push message API.
114
116
115
117
https://developers.line.biz/en/reference/messaging-api/#send-push-message
@@ -121,6 +123,7 @@ def push_message(self, to, messages, notification_disabled=False, timeout=None):
121
123
Max: 5
122
124
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
123
125
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
126
+ :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
124
127
:param bool notification_disabled: (optional) True to disable push notification
125
128
when the message is sent. The default value is False.
126
129
:param timeout: (optional) How long to wait for the server
@@ -132,6 +135,9 @@ def push_message(self, to, messages, notification_disabled=False, timeout=None):
132
135
if not isinstance (messages , (list , tuple )):
133
136
messages = [messages ]
134
137
138
+ if retry_key :
139
+ self .headers ['X-Line-Retry-Key' ] = retry_key
140
+
135
141
data = {
136
142
'to' : to ,
137
143
'messages' : [message .as_json_dict () for message in messages ],
@@ -142,7 +148,7 @@ def push_message(self, to, messages, notification_disabled=False, timeout=None):
142
148
'/v2/bot/message/push' , data = json .dumps (data ), timeout = timeout
143
149
)
144
150
145
- def multicast (self , to , messages , notification_disabled = False , timeout = None ):
151
+ def multicast (self , to , messages , retry_key = None , notification_disabled = False , timeout = None ):
146
152
"""Call multicast API.
147
153
148
154
https://developers.line.biz/en/reference/messaging-api/#send-multicast-message
@@ -157,6 +163,7 @@ def multicast(self, to, messages, notification_disabled=False, timeout=None):
157
163
Max: 5
158
164
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
159
165
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
166
+ :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
160
167
:param bool notification_disabled: (optional) True to disable push notification
161
168
when the message is sent. The default value is False.
162
169
:param timeout: (optional) How long to wait for the server
@@ -168,6 +175,9 @@ def multicast(self, to, messages, notification_disabled=False, timeout=None):
168
175
if not isinstance (messages , (list , tuple )):
169
176
messages = [messages ]
170
177
178
+ if retry_key :
179
+ self .headers ['X-Line-Retry-Key' ] = retry_key
180
+
171
181
data = {
172
182
'to' : to ,
173
183
'messages' : [message .as_json_dict () for message in messages ],
@@ -178,7 +188,7 @@ def multicast(self, to, messages, notification_disabled=False, timeout=None):
178
188
'/v2/bot/message/multicast' , data = json .dumps (data ), timeout = timeout
179
189
)
180
190
181
- def broadcast (self , messages , notification_disabled = False , timeout = None ):
191
+ def broadcast (self , messages , retry_key = None , notification_disabled = False , timeout = None ):
182
192
"""Call broadcast API.
183
193
184
194
https://developers.line.biz/en/reference/messaging-api/#send-broadcast-message
@@ -189,6 +199,7 @@ def broadcast(self, messages, notification_disabled=False, timeout=None):
189
199
Max: 5
190
200
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
191
201
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
202
+ :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
192
203
:param bool notification_disabled: (optional) True to disable push notification
193
204
when the message is sent. The default value is False.
194
205
:param timeout: (optional) How long to wait for the server
@@ -201,6 +212,9 @@ def broadcast(self, messages, notification_disabled=False, timeout=None):
201
212
if not isinstance (messages , (list , tuple )):
202
213
messages = [messages ]
203
214
215
+ if retry_key :
216
+ self .headers ['X-Line-Retry-Key' ] = retry_key
217
+
204
218
data = {
205
219
'messages' : [message .as_json_dict () for message in messages ],
206
220
'notificationDisabled' : notification_disabled ,
@@ -212,7 +226,9 @@ def broadcast(self, messages, notification_disabled=False, timeout=None):
212
226
213
227
return BroadcastResponse (request_id = response .headers .get ('X-Line-Request-Id' ))
214
228
215
- def narrowcast (self , messages , recipient = None , filter = None , limit = None , timeout = None ):
229
+ def narrowcast (
230
+ self , messages ,
231
+ retry_key = None , recipient = None , filter = None , limit = None , timeout = None ):
216
232
"""Call narrowcast API.
217
233
218
234
https://developers.line.biz/en/reference/messaging-api/#send-narrowcast-message
@@ -224,6 +240,7 @@ def narrowcast(self, messages, recipient=None, filter=None, limit=None, timeout=
224
240
Max: 5
225
241
:type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
226
242
list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
243
+ :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
227
244
:param recipient: audience object of recipient
228
245
:type recipient: T <= :py:class:`linebot.models.recipient.AudienceRecipient`
229
246
:param filter: demographic filter of recipient
@@ -240,6 +257,9 @@ def narrowcast(self, messages, recipient=None, filter=None, limit=None, timeout=
240
257
if not isinstance (messages , (list , tuple )):
241
258
messages = [messages ]
242
259
260
+ if retry_key :
261
+ self .headers ['X-Line-Retry-Key' ] = retry_key
262
+
243
263
data = {
244
264
'messages' : [message .as_json_dict () for message in messages ],
245
265
'recipient' : recipient .as_json_dict (),
@@ -1156,5 +1176,6 @@ def __check_error(response):
1156
1176
status_code = response .status_code ,
1157
1177
headers = dict (response .headers .items ()),
1158
1178
request_id = response .headers .get ('X-Line-Request-Id' ),
1179
+ accepted_request_id = response .headers .get ('X-Line-Accepted-Request-Id' ),
1159
1180
error = Error .new_from_json_dict (response .json )
1160
1181
)
0 commit comments