«前月 最新 翌月»

ありし日の気分(改)

2002|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|02|03|04|07|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|12|
2015|05|06|
2018|02|03|08|09|12|
2019|10|
2013年
12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
昨日のカウンタ:
今日のカウンタ:

[RDF]

最近のトラックバック

2013-12-19 (Thu)

iOS - プッシュ通知の試験を手元で行う

珍しくこちらの日記でプログラミングのことを書いてみます。

iOSのプッシュ通知を自分のアプリで使おうと思った場合、特に個人開発者の場合だと、サーバを借りるのが負担だったりして躊躇してた例が多いのではないかなと思います。

プッシュ通知を行うには、AppleのAPNS(Apple Push Notification Service)を叩いてあげる必要がありますが、実は半年以上前からGAE(Google App Engine)からプッシュ通知用のAppleを叩けるようになって*1、その辺りの負担が軽くなっています。大量に使うとGAEも別に安くないですが、規模が小さければありだと思います。数人で実験する程度ならGAEの無料の範囲内に収まりますし。

こちらの本にもその辺りの手順やら解説やらを書きましたので読んでみて下さい。(ステマじゃない堂々とした宣伝)

iPhoneというかiOSデバイス側のサンプルはネット上のあちこちにあるのですが、APNSを叩く側のサンプルコードもちょっと書いてみました。GAEの標準もPythonなので(えっJavaとかGoとかは?)、Pythonで書いてみました。いや、ネット上にあるライブラリを呼び出してるだけですが。


from apns import APNs, Payload

 

apns = APNs(use_sandbox=True, cert_file='cert.pem', key_file='key.pem')

token_hex = 'b2df4272 aa(ここにデバイストークンを書く)128 2cca1b49'.replace(" ", "")

 

payload = Payload(alert="hi", content=0)

apns.gateway_server.send_notification(token_hex, payload)

print("sent\n")

例えばこれをsend_to_apns.pyという名前で保存します。

あとはライブラリとしてはPyAPNsをフォークしたもの*2を使います。とは言え、必要なのはapns.pyだけで、これをダウンロードしてsend_to_apns.pyと同じディレクトリに置けば良いです。

後はcert.pemとkey.pemを標準的な方法で生成してから、ターミナルから「% python send_to_apns.py」を実行すれば、あらかじめ動かしておいたiOS上のプッシュ通知用テストアプリに通知が飛ぶのを確認できるはずです。

えっ? cert.pemやkey.pemの作り方がわからない? プッシュ通知用iOSテストアプリのサンプルが欲しい?

そんな時はこちらの本を読んでみて下さいませ。

*1 つまり、ちょっと前まではGAEからAPNSを叩けなかったんですね。

*2 ちょっと動作に不満のある点があったのでちょっとだけオリジナルから変えてます。

こっちの日記は半分ネタですが、本の方はちゃんと書いてます。m(_ _)m

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

さきら [面白そうなネタですねー。ただ、このところ保留させてもらっている事柄が多くて、いつできるかというお話ができません。。。..]

MattBdog [A church was created with the thinking that if Indiana’s b..]

BrianWrora [For decades, Wunsiedel, a German town near the Czech borde..]



C++でつくるUnreal Engineアプリ開発 for Windows & macOS  UE4でC++を使う方法を書いた本です。

«前月 最新 翌月»


2002|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|02|03|04|07|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|12|
2015|05|06|
2018|02|03|08|09|12|
2019|10|