Для отправки Push-уведомлений к любому устройству Apple с использованием APNS я должен был провести значительное количество времени, которые смотрят на все альтернативы, доступные в Python. Тогда я нашел библиотеку открытой исходности Pyapns2. . Я почти отклонил эту библиотеку, когда я исследую, потому что она не сказала, где в документации она поддерживает аутентификацию на основе дозирования или токена. Когда я искал исходный код, мне было удивлено, чтобы увидеть, что он имел поддержку как для обоих, но не был задокументирован.
Поэтому я обновил документацию и поднял потянуть запрос Отказ
Для любого, кто сталкивался с аналогичными проблемами ниже, является примером кода при использовании библиотеки.
from apns2.client import APNsClient from apns2.payload import Payload token_hex = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87' payload = Payload(alert="Hello World!", sound="default", badge=1) topic = 'com.example.App' client = APNsClient('key.pem', use_sandbox=False, use_alternative_port=False) client.send_notification(token_hex, payload, topic) # To send multiple notifications in a batch Notification = collections.namedtuple('Notification', ['token', 'payload']) notifications = [Notification(payload=payload, token=token_hex)] client.send_notification_batch(notifications=notifications, topic=topic) # To use token based authentication from apsn2.credentials import TokenCredentials auth_key_path = 'path/to/auth_key' auth_key_id = 'app_auth_key_id' team_id = 'app_team_id' token_credentials = TokensCredentials(auth_key_path=auth_key_path, auth_key_id=auth_key_id, team_id=team_id) client = APNsClient(credentials=token_credentials, use_sanbox=False) client.send_notification_batch(notifications=notifications, topic=topic)
Чтобы узнать о аутентификации на основе токена, вы можете взглянуть на этот замечательный ресурс здесь
Тема:
Когда я использовал send_notification
Для образца токен размером 2000 года потребовалось вокруг 10 минут
отправлять все уведомления. Когда я использовал send_notification_batch
Для того же образца токен размером он занял меньше, чем 5 секунд
Чтобы отправить все уведомления.
Оригинал: “https://dev.to/adityavarma1234/apple-push-notifications-207g”