(原典:iOS Support with Windows Azure Mobile Services – now with Push Notifications)
Windows Azure Mobile ServicesのiOSサポートにプッシュ型通知機能を追加
数週間前、Windows Azure Mobile Servicesの新機能について投稿しました。その中の1つが、Objective-CクライアントSDKの追加で、これにより、iOS開発者はMobile Serviceを使用してデータの利用および認証が簡単にできるようになるというものでした。今回お知らせしたいのは、iOS SDKに多数の新機能が追加されたこと、中でもAPNS(Apple Push Notification Services)を通じたプッシュ型通知が新たに可能になったことです。これにより、Windows Azure Mobile Serviceスクリプトから、iOSユーザーへプッシュ型通知を非常に簡単に流せるようになりました。
APNS経由のプッシュ型通知
プロビジョニングやセットアッププロセスをステップごとに行うチュートリアルを2つ用意しました。これにより、Windows Azure Mobile ServiceアプリケーションでAPNS(Apple Push Notification Services)が有効になります。この中に、Apple iOSプロビジョニングポータルでプッシュするために必要なアプリケーション設定のステップがすべて含まれています。
Apple iOSプロビジョニングポータルでアプリケーションを設定し、APNSプッシュ証明書をそのAppleプロビジョニングポータルにアップロードすれば、後は、Windows Azure管理ポータルを使用してMobile ServiceへAPNSプッシュ証明書をアップロードするだけです。
Mobile Serviceの[PUSH]タブにある[Upload]をクリックすると、ローカルのファイルシステムを検索して、エクスポートされた証明書を見つけてアップロードできます。この中で、開発用(DEV)もしくは本番用(PROD)のどちらのAppleサービスを使用するか選択できます。
Windows Azure Mobile Service内からクライアントにプッシュ型通知を送信するコードは以下のとおりです。
push.apns.send(deviceToken,{ alert: 'Toast: A new Mobile Services task.', sound: 'default' });
これにより、Windows Azure Mobile Serviceは、APNS(Apple Push Notification Service)に接続して、デバイストークンを通じて指定しているiOSデバイスへ通知を送信します。
プッシュ型通知を送信する新しいWindows Azure Mobile ServiceのAPNSオブジェクトの詳細な使用方法については、参照ドキュメントを確認してください。
フィードバックスクリプト
PNS(プッシュ型通知サービス)を使用する際に重要なのは、期限切れしたデバイストークンとチャネルに対するフィードバックの取り扱いです。通常これは、デバイスからアプリケーションがアンインストールされた時に起こります。Windows通知サービスでは、HTTPサーバーからすぐにリスポンスが来ます。Appleの通知サービスは、方法が若干違い、期限切れしたトークンの一覧を引き出すために接続する追加のエンドポイントを用意しています。
Mobile Serviceに統合するすべての機能において、開発者が、インフラ構築を短時間で済ませ、アプリケーションの構築により時間をかけて集中できるようにしたいと考えています。そのため、開発者が定期的にAPNSからのフィードバックを簡単に統合できる方法を提供しようと思っていました。
今週の更新でポータルに用意した新しいスクリーンから、APSNフィードバックを処理するスクリプトをオプションで提供できます。これは、進行中のものをベースにMobile Serviceが実行します。
サービスがアクティブの間、定期的に起動されるスクリプトです。このスクリプト内からAPNSオブジェクトのgetFeedbackメソッドを呼び出すだけでフィードバックのエンドポイントを引き出せます。
push.apns.getFeedback({ success: function(results) { // results is an array of objects with a deviceToken and time properties } });
これにより、無効なトークンの一覧が返ってくるので、データベースから削除できます。
iOSクライアントSDKの改善
先月1か月間は、Objective-C SDKを改善させるために、iOSアドバイザーの方々とずっと作業を続けてきました。このSDKはオープンソースライセンス(Apache 2.0)のもと開発され、github上で利用可能になっています。
多くの改善は、パフォーマンスやメモリー使用などの裏側の改善になります。
iOSクライアントAPIに対する最大の改善の中に、さらに簡単になったログインメソッドの追加があります。
以下は、Objective-Cで実行するコードになります。
[client loginWithProvider:@"twitter" onController:self animated:YES completion:^(MSUser *user, NSError *error) { // if no error, you are now logged in via twitter }];
このコードは、指定したコントローラー上のモーダルダイアログとして、ログインビューコントローラーを表示したり閉じたりを自動で行います。これにより、Twitter、Google、Facebook、Microsoftのアカウント認証を通じたログイン機能を、たった一行のコードでできるようになります。
同僚のJosh氏が、私が推薦する新機能を紹介しているショートビデオを投稿しています。
まとめ
上記の機能はすべて本番環境にあるので、すぐに利用可能です。Windows Azureアカウントをまだお持ちでない場合は、無償トライアルでサインアップすると、すぐにMobile Servicesが利用できます。アプリケーションの構築方法についての詳細は、Windows Azure Mobile Developer Centerでご確認ください。
Hope this helps,
Scott
P.S. ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。