LaravelでAWS SNSを使用するには?

ショコラ
ショコラ

LaravelでAWS SNSを使用するには?

aws-sdk-php のパッケージをインストールしてコマンド実行してください。

もっさん先輩
もっさん先輩

このコマンドで aws-sdk-php のパッケージをインストールします。

composer require aws/aws-sdk-php

app/Console/Commands/AwsSns.php を作成する。

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;

class AwsSns extends Command
{
  protected $signature = 'aws-sns';
  protected $description = 'メッセージを送ります';

  public function handle()
  {
    $SnSclient = new \Aws\Sns\SnsClient(array(
      'version' => '2010-03-31',
      'region' => 'ap-northeast-1',
      'credentials' => array(
        'key'    => 'xxx',
        'secret' => 'xxx',
      ),
    ));

    $message =<<<MESSAGE
      (メッセージ)
    MESSAGE;
    $tel = '+818012345678';

    try {
      $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
          'DefaultSMSType' => 'Transactional',
        ],
      ]);
      $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $tel,
      ]);
      if ('200' != $result['@metadata']['statusCode']) {
        throw new err('エラー');
      }
    }
    catch ( Exception $e ) {
      // エラー処理
    }
  }
}

以上