【Laravel】Guzzleを使用して外部APIへリクエストを投げる手順メモ
経緯
- いけいけナンバーAPIを使用して、SMSを送信する必要が出てきた
- cURLを使って、リクエスト投げよう!と思っていたが、今時は、Guzzleを使用するらしいので、流れに乗ることにした
- 外部に投げるライブラリの事を、HTTP Clientと呼ぶらしい。「Laravel リクエスト」みたいに検索すると通常のRequestの記事ばかり出てきて困った。
インストール
composerを利用して、Guzzleをインストール
1 |
composer require guzzlehttp/guzzle |
自分の場合、ここでエラーに、対処法は以下で説明
【Laravel】「composer require guzzlehttp/guzzle 」が、エラーで失敗する。
POSTでリクエストを投げる
使用方法は以下のとおり。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php namespace App\Http\Service; use GuzzleHttp\Client; //①Clientクラスを宣言する class ForwardSmsService { public function sendToForwardingPhoneNumber(): void { $base_url = 'http://xxxx.xxxxx.com'; $send_path = '/send'; $send_url = $base_url.$send_path; $client = new Client([ 'base_url' => $base_url ]); //②Clientクラスを初期化 (base_url) //③パラメータ生成 ※Basic認証がある場合は'auth'キーでIDとパスワードを渡す $params = [ 'form_params' => [ "mobilenumber" => '09088888888', "smstext" => "bar", "smsid" => 1, "format" => "json" ], 'auth' => [ 'user', 'password' ] ]; //④引数(メソッド、url、パラメータ)で、リクエストする。 $response = $client->request('POST', $send_url, $params); //⑤実行結果をログ書き出し 例){"status":200,"text":"OK"} \Log::info($response->getBody()); } } |
この記事がお役に立てたら、是非シェアをお願いします^^