Push-уведомление с вложенными изображениями с помощью PyAPNS - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь прикрепить изображения в 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 здесь переопределен, и мыотправка полезной нагрузки, как это необходимо.Но не удается отправить вложение в этой структуре полезной нагрузки, и это вызывает ошибку.

...