Envoyer des notifications push aux applications iOS avec Python2 (avec un exemple de code)

introduction

J'ai écrit un article similaire la dernière fois, Je l'ai écrit sans expérimenter, et comme je l'ai essayé et que cela n'a pas fonctionné, j'écrirai à nouveau l'article avec des corrections!

Envoyer des notifications push aux applications iOS avec Python

environnement

Composition environnementale

Installez apns avec pip après avoir créé un environnement virtuel avec Virtualenv

$ pip install apns

Préparation

Exportez un fichier pem pour les notifications push du trousseau.

スクリーンショット_2016-09-17_午前11_04_45.png

  1. Exportez les fichiers p12 pour le développement et la distribution, y compris les clés publiques et privées.

Quant à la clé privée, si vous utilisez celle qui porte le même nom, vous pouvez la réutiliser, alors gardez-la avec le même nom. 2. De la même manière pour la clé privée, exportez uniquement la ** clé privée ** au format p12. 3. Convertissez chacun des trois fichiers pem en fichier pem avec la commande suivante

$ openssl pkcs12 -in secret.p12 -out secret.pem -nodes -clcerts

Veuillez changer le nom afin que vous puissiez le voir. Veuillez définir sans mot de passe lors de l'exportation.

Code source

Envoyer vers un terminal

Je mets en place un fichier pem pour Developer.

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 = "tester!!"
content = content.decode('utf-8')

payload = Payload(alert=content, sound="default", badge=1)
apns.gateway_server.send_notification(token_hex, payload)

cert_file est la clé publique. key_file est la clé privée.

Envoyer vers plusieurs terminaux

Cette fois, j'ai testé celui donné à DeployGate, j'ai donc défini le fichier pem pour Distribution.

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 = "message! !!"
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)

Lors de l'envoi vers plusieurs terminaux, il semble qu'il soit important de définir ʻenhanced dans l'élément de ʻAPNs. J'ai oublié de prendre le lien, mais il a été publié sur la question de GitHub dans le package PyAPNs.

De plus, est-il possible de prendre en charge le push avec des images d'iOS10 en définissant mutable_content = True sur Payload de la même manière?

résultat

IMG_0136.png

Je ne peux pas afficher les icônes car il est actuellement en cours de développement pour un usage privé, mais j'ai reçu une notification comme celle-ci! Vous pouvez intégrer JSON à la place de custom, il semble donc que vous puissiez faire quelque chose comme ça assez facilement!

Autre

Dépôt GitHub.

nnsnodnb/APNs-Push-Notification

Paquet utilisé cette fois

djacobs/PyAPNs

Apparemment, il ne prend pas en charge Python3, donc je dois faire quelque chose moi-même. Même si c'est 2to3, cela ne change pas pour une raison quelconque! ??

Recommended Posts

Envoyer des notifications push aux applications iOS avec Python2 (avec un exemple de code)
Envoyer des notifications push aux applications iOS avec Python
Exemple de notification Slack avec python lambda
mail html avec image à envoyer avec python
Exemple de conversion en ondelettes d'images en Python
Envoyer un message à LINE avec Python (LINE Notify)
Envoyez un email à l'adresse de Spushi avec python
Réécrire le code Python2 en Python3 (2to3)
Envoyer des e-mails par Python
Python Ver. Présentation de WebPay avec un peu de code
Exemple de code spécifique pour travailler avec SQLite3 en Python
Notification PUSH de Python vers Android à l'aide de l'API de Google
Exemple de code pour démarrer avec le shader GLSL en traitement (Java ou Python)
Obtenez le code du pays avec python
Exemple de données créées avec python
Python avec VSCode (Windows 10)
Connectez-vous à BigQuery avec Python
Envoyer du courrier japonais avec Python3
Paramètres lors du développement d'applications App Engine / Python avec VS Code
Comment installer NPI + envoyer un message à la ligne avec python
Un exemple de python pour apprendre XOR avec un algorithme génétique sur un réseau neuronal
J'ai essayé différentes méthodes pour envoyer du courrier japonais avec Python
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Exécutez l'exemple de code python BNO055 avec I2C (Raspberry Pi 3B)
Déboguer Python avec VS Code
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
[Python] Exemple de code pour la grammaire Python
Convertir le code python 3.x en python 2.x
Envoyer en utilisant Python avec Gmail
Faites fonctionner Jupyter avec l'API REST pour extraire et enregistrer le code Python
Envoyez des notifications push depuis les applications iOS via Firebase Cloud Messaging
Essayez de créer un environnement python avec Visual Studio Code et WSL
Exemple à utiliser après l'authentification OAuth de l'API BOX avec Python
Comment se connecter à Cloud Firestore à partir de Google Cloud Functions avec du code Python
Comment envoyer une requête à l'API DMM (FANZA) avec python
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Python: comment utiliser async avec
Lien pour commencer avec python
[Python] Ecrire dans un fichier csv avec Python
Ravi de vous rencontrer avec python
Essayez d'exploiter Facebook avec Python
Sortie vers un fichier csv avec Python
[Automation] Envoyer des e-mails Outlook avec Python
Surveillez les applications Web Python avec Prometheus
Convertir la liste en DataFrame avec python
Comment démarrer avec Python
Implémentation des notifications push iOS dans Firebase
Que faire avec la sortie de PYTHON?
Comment calculer la date avec python
Je veux déboguer avec Python
[Python] Envoyez des e-mails avec Outlook
Envoyer des données multipart / form avec des requêtes python
Envoyer l'image avec python et enregistrer avec php
Installez python avec mac vs code
[Python] Créer une API pour envoyer Gmail
Envoyer des e-mails via gmail avec Python 3.4.3.
Que faire si vous ne parvenez pas à envoyer un e-mail à Yahoo avec Python.