amazon SNSでスマホアプリにプッシュ通知をする方法(PHP編)

2018/01/25 カテゴリー:スマホアプリ開発 タグ: , , , ,
  • このエントリーをはてなブックマークに追加

先日、amazon SNSについてのまとめ記事を書きました。今回は具体的にPHPのサンプルコードをのせたいと思います。

SPONSOR

公式SDKをつかう

公式SDKはこちら。composerを使ってインストールしてください。また、アクセスキーとシークレットキーは事前にAWSコンソールから作成しておきます。デバイストークンはアプリで取得したものを送信しているものとします。

require 'vendor/autoload.php';
use Aws\Sns\SnsClient;

$sns = SnsClient::factory(array(
  'credentials' => [
      'key'    => アクセスキー,
      'secret' => シークレットキー
    ],
    'region' => 'ap-northeast-1',
    'version' => 'latest'
));

//devicetokenからエンドポイントを取得
$options = array(
    'PlatformApplicationArn' => アプリケーションのARN,
    'Token' => デバイストークン,
    'CustomUserData' => $name
);

try {

    $result = $sns->createPlatformEndpoint($options);
    $endpoint = $result['EndpointArn'];

    // 送信するメッセージ
    $message = array(
    'default' => 'メッセージ',
    'APNS' => json_encode(array(
        'aps' => array(
            'alert' => array(
            'title' => 'タイトル',
            'body' => '内容です'
                )
            ),
            'scheme' => ""
            )
        )
    );

    //トピック(グループを作成)
    $topicname = 'topic';
    $result = $sns->createTopic(array(
        'Name' => $topicname
    ));
    $topicArn = $result['TopicArn'];
    
    //エンドポイント分だけ繰り返し
    $params = [
        'Endpoint' => $endpoint,
        'Protocol' => 'application',
        'TopicArn' => $topicArn
    ];
    $sub = $sns->subscribe($params);

    // プッシュ通知
    $sns->publish(array(
        'TargetArn' => $topicArn,
        'Message' => (string) json_encode($message),
        'MessageStructure' => 'json'
    ));

    //サブスクリプションを削除
    $sns->unsubscribe(array(
        'SubscriptionArn' => $sub['SubscriptionArn']
    ));

    // 作ったトピックを削除
    $result = $sns->deleteTopic(array(
        'TopicArn' => $topicArn,
    ));

} catch(\Exception $e){
    //エラー処理
}

これで完了。覚えてしまえば、かんたんですね。

参考)Amazon Simple Notification Service ドキュメント

Webサービスのメール配信で到達率を高めるべくSendGridを使ってみる

  • このエントリーをはてなブックマークに追加
SPONSOR

PROFILE

プロフィール

入江 慎吾
自分が作ったサービスで生きていく。同じゴールを目指すサービス開発集団「入江開発室」を運営(現在約280名) / 個人間スキルシェアサービス「MENTA」は約1ヶ月で売上100万円を達成。1日で100社が利用した「JobTag」など多数開発
(詳しいプロフィール)

PRODUCT

イリテクで開発したプロダクト

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす