LoginSignup
10
12

More than 5 years have passed since last update.

AWS SDK for PHPでSMSを利用してメッセージを送る

Last updated at Posted at 2017-08-26

仕事でAWSを使ってSMS認証を送るという課題をいただいたので挑戦しました。
しかしいきなりSMS認証は難しいので、今回はAWSで自分の携帯電話番号に「こんにちは」とショートメッセージを送るところまでにしました。
以下はその手順です。

手順

①IAMでグループとユーザーを設定

アクセスキーとセキュリティキーが発行されるのでメモを取る。セキュリティーキーは表示を押すと見ることができます。

:loudspeaker: 注意 :loudspeaker:
アクセスキーとセキュリティーキーは、漏洩しない場所にメモしてください。
もし悪用されると大量にアクセスされ、AWSから高額請求が来ることもあるようです。
また発行されたページから他のページに移動してしまうとセキュリティーキーは2度と見られないので、必ずメモを取るかcsvをダウンロードしましょう。

②作成したグループ内のユーザーにAmazonSNSFullAccessポリシーをアタッチする。

※私ははじめここが理解できず、EC2をアタッチしていました。

③SDK for PHPをComposerでインストールして、venderディレクトリをドキュメントルートに入れる。下のコードもドキュメントルートに置く。

smstest.php
<?php
require './vendor/autoload.php';
error_reporting(E_ALL);
ini_set("display_errors", 1);

$params = array(
    'credentials' => array(
        'key'   =>  'XXXXXX',  //アクセスキー
        'secret'    =>  'XXXXXX', //セキュリティキー
    ),
    'region'        =>  'ap-northeast-1', //リージョンの設定
    'version'       =>  'latest'
);

$sns = new \Aws\Sns\SnsClient($params);

$args = array(
    "SMSType"       =>      "Transational",
    "Message"       =>      "こんにちは", //英語も送信できます。
    "PhoneNumber"   =>      "電話番号" //日本であれば+81-XX-XXXX-XXXX
);

$result = $sns->publish($args);
echo "<pre>";
var_dump($result);
echo "</pre>";
?>

④phpファイルを実行

  1. まずsmstest.phpを置いたドキュメントルートへ移動する
    \$ cd /your/document/root/

  2. ファイルを実行
    \$ php smstest.php

ブラウザからでもコンソールからでもできます。
ブラウザの場合はBASIC認証をかけるなりして第三者からのアクセスを防いでください。

実行結果

できたー!
smstest.jpg

これだけ見るとだいぶ怖いですが、目標は達成しました。

まとめ

今回は、SDK for PHPでSMSを利用してメッセージを送ることに挑戦しました。
AWSのドキュメントを丸パクリ参考にしつつ、無事メッセージを送ることに成功しました。
ここから発展させて、SMS認証も作っていきたいと思います。

最後までお読みいただきありがとうございました!:smiley:
感想や説明不足な点がありましたら、コメントいただけると嬉しいです。

10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12