AWSとは

AWS(amazon web service)とは、あの通販大手のAmazon社が提供しているインターネット上のサービスです。

内容は、レンタルサーバーの様なものから、メール配信、決済機能まで多種多様です。

日本(東京リージョン)でSMSの配信を開始したのは、つい最近の事の様です。

SMSの送信を実装

AWSでSMSを日本(東京リージョン)でも送信できるらしい、という情報を見つけたのですのが、なかなかサンプルのようなものを見つけることができません。

仕方がないこで、英語のマニュアルをよく読んで実装して見ました。結果、一応送れました。

前提として、AWS SDK3じゃないとSMS送信ができませんので、php5.5以上が必要です。

参考 http://qiita.com/tennmu/items/4c16308287e966d5cc01

SMS送信料金

あと、料金ですが、なんかよくわからないですね。なぜ、docomoでも複数の価格帯があるのか。。ちなみに、Transactional SMS というのは、普通のSMS(即時配信)で、Promotional SMSというのは、場合によっては配信遅延もある安いSMSのようです(ただ料金が逆になっている場合も!)

HNIの意味が解りません。おそらく、送信先の基地局?(携帯電話が収容されている場所)によって料金が変わるんでしょうか。料金は全体的にtwilioの$0.08より安いようです。ただし、AWSの場合は発信者電話番号が指定できませんので(これもよくわからないのですが、アルファベットでsender id を入力できて、何回かやってみると指定できる場合もある、ようです。でも、ほぼできません)今のところ、SMS送信.comではTwilioを使うしかなさそうです。

もうちょっと調べて何かわかったら追記します。

実装方法

App::import('Vendor', 'aws/aws-autoloader');
use Aws\Sns\SnsClient;
$client = new SnsClient(array(
'region' => 'ap-northeast-1',
'version' => '2010-03-31',
'credentials' => array(
'key' => AWS_KEY,
'secret' => AWS_SECRET,
)
));
$result = $client->publish([
'Message' => '送信メッセージをこちらに',
'PhoneNumber' => '+81 90 xxxx xxxx' // 送信先電話番号
]);
pr($result);

関連記事

http://qiita.com/kidatti/items/93832b9959d3ad2390dd

TwilioがAWSとコラボレーション、AWSのSMSメッセージング機能を高度化か

API使用方法

http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sms_publish-to-phone.html