ホームページ制作/SEO対策なら株式会社サイバーブレーンへ

 03-5961-5681 平日10:00~19:00

 2017-11-30

Amazon SNSのSMSをPHPで送信してみる

Amazon SNSの「SNS」とは、「Simple Notification Service」の略で、直訳すると簡易通知サービスになります。スマホやMacのデスクトップのPUSH通知や、電子メールも通知の類と言えますが、今回はAmazon SNSで携帯電話番号さえわかれば通知を送れる「SMS(ショートメッセージサービス)」を送信してみたいと思います。

まずは、送信に必要な「アクセスキー(アクセスキーIDとシークレットアクセスキー)」を発行します。

アクセスキー発行方法

管理コンソール右上のアカウント名 > セキュリティ認証情報 > アクセスキー(アクセスキーIDとシークレットアクセスキー)> 新しいアクセスキーの作成で簡単に作成できます。シークレットアクセスキーは二度と画面に表示されませんので、アクセスキーを表示してコピーするかキーファイルをダウンロードしてください。

AWS SDK for PHP

PHPでAWSを利用する場合には、「AWS SDK for PHP」が必要になりますので、下記ページからダウンロードします。今回はPhar形式を利用して説明します。

aws.pharのダウンロードページ
http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html

PHPソース

<?php
require './aws.phar';
use Aws\Sns\SnsClient;

$key = 'アクセスキーID';
$secret = 'シークレットアクセスキー';
$phone_number = '携帯電話番号';
$message = '送信メッセージ';

$client = new SnsClient([
	'region' => 'ap-northeast-1',
	'version' => 'latest',
	'credentials' => [
		'key' => $key,
		'secret' => $secret,
		]
]);

$result = $client->publish([
	'PhoneNumber' => $phone_number,
	'Message' => $message
]);

アクセスキーIDとシークレットアクセスキーそのままで良いのですが、携帯電話番号は「E.164」形式にする必要があります。例えば、日本での電話番号が03-1234-5678の場合、「+81 312345678」になります。上記ソースファイル実行するだけでSMSの送信が可能です。

料金について

SMSは、インターネット回線ではなく電話回線を使って送信します。下記ページに料金表がありますのでご確認ください。1通0.03〜0.08ドル(3〜9円)ぐらいでしょうか。

SMS料金ページ
https://aws.amazon.com/jp/sns/sms-pricing/

日本の各キャリアの料金を確認するには、Enter your country:にJapanを入力すると表示されます。「Transactional SMS」は2段階認証など即座に通知が必要なものに利用し、「Promotional SMS」は広告などの通知に利用するもののようです。こういった設定も下記のように変更可能なようですが、DefaultSMSTypeの変更は試していなく、SenderIDは今現在の日本では変更はできないようですが・・・

//publishの前に
$client->setSMSAttributes([
	'attributes' => [
		'DefaultSMSType' => 'Transactional',
		'DefaultSenderID' => 'CyberBrain',
	]
]);

setSMSAttributes
http://docs.aws.amazon.com/ja_jp/sns/latest/api/API_SetSMSAttributes.html

今回は以上です!

~この記事の著者~

コンバージョン施策に関するご相談はこちら

 03-5961-5681 平日10:00~19:00

メールフォーム