こんにちは、ギャップラー小林です。
さて今回は先週リリースした「push 通知ライブラリ」についてお話したいと思います。
このライブラリは、push 通知が仕組みはシンプルなのに意外とめんどくさい、世の中に手頃なライブラリが無いといった理由から生まれました。確かに、アプリ単体では実現できず、別途サーバを立てなきゃいけないとなると敷居は高く感じますよね。最近はサーバ側を代行するサービスやフレームワークも出てきているようですが、ちょっと試してみたいとかシンプルに使えれば十分と思い、なかなか手が出せない方もいるのではないでしょうか?そんな皆さんにぜひ使っていただきたい!
ライブラリをダウンロードしていただければ分かると思いますが、ファイルは APNs(iOS) 用と GCM(Android) 用がそれぞれ 1 つずつあるだけです。標準ライブラリのみ使用しているため、このファイル 1 つインポートするだけでサーバプログラムを書くことができちゃいます。Ruby と PHP、主要な二言語に対応しているところもイイ!
ちなみに「ちょっと試してみたい」のであれば、別途サーバを用意しなくてもお試しできるんです!アプリ開発で Mac をお使いなら標準で Ruby がインストールされていますので、push 通知するテキストを送るスクリプトを作成すればよいのです。iOS + Ruby の例で、その手順を簡単に紹介します。
- push 通知が利用できるよう、Xcode プロジェクトをセットアップ。
- アプリを実行してデバイストークンを取得、メモする。
- push 通知ライブラリを使ってメッセージ送信する Ruby スクリプトを書く。
- スクリプトを実行し、iOS 端末に push 通知されることを確認。
まず 1. は Apple のドキュメント「Local および Push Notification プログラミングガイド」を参考に Xcode プロジェクトを作成してください。
次に 2. ですが、AppDelegate に次のコードを入れることでログウィンドウにデバイストークンを出力させることができます。
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)token { NSLog(@"DeviceToken: %@", token); }
3. については、例えばこんな Ruby スクリプトを用意します。
# encoding: utf-8 require './GPApnsConnection' # 引数の有無や内容のチェックは省略してます… message = ARGV[0] token = ARGV[1] apns = GPApnsConnection.new apns.pem = "(サーバ証明書のパス)" apns.sandbox = true apns.send_message(token, message)
上記のスクリプトをターミナルで実行します。
$ ruby push_sample.rb "Hello, push notification", "(スペースを除いたデバイストークン)"
成功すれば、2. で実行しているアプリ名で push 通知がされるはずです!
いかがだったでしょうか?「push 通知使ってみたいけど…」と悩んでいた方の、チャレンジするきっかけになれば幸いです!