Ich habe letztes Mal einen ähnlichen Artikel geschrieben, Ich habe es geschrieben, ohne zu experimentieren, und da ich es tatsächlich ausprobiert habe und es nicht funktioniert hat, werde ich den Artikel erneut schreiben, einschließlich Korrekturen!
Push-Benachrichtigungen mit Python an iOS-Apps senden
Installieren Sie apns mit pip, nachdem Sie mit Virtualenv eine virtuelle Umgebung erstellt haben
$ pip install apns
Exportieren Sie eine PEM-Datei für Push-Benachrichtigungen aus dem Schlüsselbund.
Wenn Sie den privaten Schlüssel mit demselben Namen verwenden, können Sie ihn wiederverwenden. Behalten Sie ihn also mit demselben Namen bei. 2. Exportieren Sie auf die gleiche Weise für den privaten Schlüssel nur den ** privaten Schlüssel ** im p12-Format. 3. Konvertieren Sie jede der drei PEM-Dateien mit dem folgenden Befehl in eine PEM-Datei
$ openssl pkcs12 -in secret.p12 -out secret.pem -nodes -clcerts
Bitte ändern Sie den Namen, damit Sie ihn sehen können. Bitte beim Exportieren ohne Passwort einstellen.
Ich richte eine PEM-Datei für Developer ein.
single.py
# coding: utf-8
import time
from apns import APNs, Payload
apns = APNs(use_sandbox=True, cert_file='develop.pem', key_file='secret.pem')
token_hex = '45f9f318ac6506742a54a3b8bb6493c72cdad9afe2c154d5295e9db15cdf83a7'
content = "Prüfung!!"
content = content.decode('utf-8')
payload = Payload(alert=content, sound="default", badge=1)
apns.gateway_server.send_notification(token_hex, payload)
cert_file
ist der öffentliche Schlüssel. key_file
ist der private Schlüssel.
Dieses Mal habe ich die für DeployGate angegebene getestet und die PEM-Datei für die Verteilung festgelegt.
multi.py
# coding: utf-8
import time
from apns import APNs, Frame, Payload
apns = APNs(use_sandbox=False, cert_file='distribution.pem', key_file='secret.pem', enhanced=True)
token_hex = ['417a7b3329c86240b159b816313a3ae51ff9059b98ac29bc7cbcbd36dd41e2a9',
'446d18e7a621d371a8683d0d33bf9080091efbf693f5b591f9ec307a1e627d46']
message = "Botschaft! !!"
message = message.decode('utf-8')
payload = Payload(alert=message, sound="default", badge=1, custom={'uri': 'https://nnsnodnb.moe'})
frame = Frame()
identifier = 1
expiry = time.time() + 3600
priority = 10
for token in token_hex:
frame.add_item(token, payload, identifier, expiry, priority)
apns.gateway_server.send_notification_multiple(frame)
Beim Senden an mehrere Terminals scheint es wichtig zu sein, "erweitert" auf das Element "APNs" zu setzen. Ich habe vergessen, den Link zu verwenden, aber er wurde zum Thema GitHub im PyAPNs-Paket veröffentlicht.
Ist es auch möglich, Push mit Bildern von iOS10 zu unterstützen, indem "mutable_content = True" auf die gleiche Weise auf "Payload" gesetzt wird?
Ich kann die Symbole nicht anzeigen, da sie derzeit für den privaten Gebrauch entwickelt werden, aber ich habe eine solche Benachrichtigung erhalten! Sie können JSON anstelle von "custom" einbetten, so dass Sie so etwas anscheinend ganz einfach tun können!
GitHub-Repository.
nnsnodnb/APNs-Push-Notification
Paket diesmal verwendet
Anscheinend unterstützt es Python3 nicht, also muss ich selbst etwas dagegen tun. Auch wenn es 2to3 ist, ändert es sich aus irgendeinem Grund nicht! ??
Recommended Posts