Django経由でAmazon SNSを使ってPush通知を送る(Part2:iOS編)

この記事はDjangoでAmazon SNSを使用してiPhoneにPush通知を配信するまでの流れのPart2です。

流れとしては以下のようになります。太字の箇所が今回説明する箇所となります。


Part1(準備編)

1.iOSに通知するメッセージを送るサーバー構築(今回はAmazon SNSサービスを使用)

2.通知サービスが有効になったApp IDを作成

3.Apple Push Notification Service(APNs)とサーバー間でメッセージをやりとりするための証明書を作成

4.Provisioning Profileを作成

Part2(iOS編)

5.iOSアプリに実装して端末識別用のDevice Tokenを取得してサーバーに送信

Part3(Amazon SNS編)

6.Amazon SNSのセットアップ

Part4(Django編)

7.Django側からAmazon SNSを経由して送信


では具体的に手順を見ていきます。

UIAppDelegate.h

ヘッダーにUIApplicationDelegate,NSURLConnectionDelegateを追加します。

@interface AppDelegate : UIResponder <UIApplicationDelegate,NSURLConnectionDelegate>

UIAppDelegate.m

PUSH通知が正しく設定されているとdidRegisterForRemoteNotificationWithDeviceToken:(NSData *)deviceTokenというメソッドが呼ばれて、deviceTokenが取得できます。 このdeviceTokenをサーバーにhttp://localhost:5000/devices/tokenに対してPOST送信します。

- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSString *deviceTokenValue = [deviceToken description];

    //Send deviceTokenValue to Server.
    NSString *urlForPost = @"http://localhost:5000/devices/token";
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlForPost]];
    request.HTTPMethod = @"POST";
    request.HTTPBody = [deviceTokenValue dataUsingEncoding:NSUTF8StringEncoding];

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    [connection start];
}

//deviceTokenが正しくPOST送信されたら呼ばれる。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"Device Token is sent successfully!")
}

Done!

これでiOS側の実装は完了です。 次回はAmazon SNSのセットアップを行います。

Related Contents

Pickup Contents