Я пытаюсь прикрепить изображения в push-уведомлениях iOS с помощью PyAPNS.Как я могу добавить это вложение в структуру полезной нагрузки apns?
Мы можем отправить уведомление с заголовком, подзаголовком и телом.
class ApplePushNotification(object):
"""
class to handle apple push notifications
"""
def __init__(self, account, user_id_token_mappings, project='testproject'):
'''
constructor to initialize account and device info
:param account: account id
:param user_id_token_mappings: user id - device token mapping (dict)
'''
self.account = account
self.user_id_token_mappings = user_id_token_mappings
self.cert_file = ''
self.key_file = self.cert_file
def send_apple_push_notification(self, message, alert=None, extra_payload={}):
'''
sends push notification to iOS device
:param message: push notification content
:param alert: alert text
:param extra_payload: extra notification content
:return: None
'''
if not self.user_id_token_mappings:
return False
apns_server = Apns(use_sandbox=USE_SANDBOX, cert_file=self.cert_file, key_file=self.key_file,
enhanced=True)
apns_server.gateway_server.register_response_listener(response_listener, self.account)
payload_content = {'sound': "default", 'content_available': 1, 'custom': message}
if alert:
payload_content['alert'] = {
'title': title,
'subtitle': '',
'body': alert
}
if extra_payload:
payload_content.update(extra_payload)
payload = Payload(**payload_content)
expiry = int(time.time() + 3600)
invalid_tokens = []
for i, userid_apns_mapping in enumerate(self.user_id_token_mappings):
identifier = get_identifier()
try:
apns_server.gateway_server.send_notification(userid_apns_mapping[1], payload, identifier=identifier,
expiry=expiry)
apns_server.gateway_server.set_identifier_token_mapping(identifier, userid_apns_mapping)
except TypeError:
# s = traceback.format_exc()
# write_error_log(s)
invalid_tokens.append(userid_apns_mapping)
print('type error')
continue
Таким образом, класс APNS здесь переопределен, и мыотправка полезной нагрузки, как это необходимо.Но не удается отправить вложение в этой структуре полезной нагрузки, и это вызывает ошибку.