ホームページ >PHPフレームワーク >Laravel >Laravelを使用してテキストメッセージを送受信する方法
Laravel を使用して SMS 送受信機能を実装する方法には、特定のコード例が必要です
Laravel は、さまざまな機能を簡単に実装できる人気のある PHP フレームワークです。そしてテキストメッセージを受信します。この記事では、Laravel フレームワークを使用して SMS 送受信機能を実装する方法と、対応するコード例を紹介します。
1. SMS 送信機能の実装
SMS を送信するには、まず SMS サービスプロバイダーを設定する必要があります。一般的な SMS サービス プロバイダーには、Alibaba Cloud、Tencent Cloud などが含まれます。ここでは、Alibaba Cloud SMS を例に挙げます。
次の設定を .env ファイルに追加します:
ALIYUN_ACCESS_KEY_ID=your_access_key_id ALIYUN_ACCESS_KEY_SECRET=your_access_key_secret ALIYUN_SMS_SIGN_NAME=your_sms_sign_name ALIYUN_SMS_TEMPLATE_CODE=your_sms_template_code
your_access_key_id
と your_access_key_secret
を Alibaba Cloud AccessKey ID と AccessKey Secret に置き換えます。 your_sms_sign_name
は SMS 署名名に置き換えます。your_sms_template_code
は SMS テンプレート コードに置き換えます。
app/Http/Controllers ディレクトリに SmsController.php ファイルを作成し、次のコードを追加します:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AlibabaCloudClientAlibabaCloud; use AlibabaCloudClientExceptionClientException; use AlibabaCloudClientExceptionServerException; class SmsController extends Controller { public function sendSms(Request $request) { $phoneNumber = $request->input('phone_number'); $code = $request->input('code'); AlibabaCloud::accessKeyClient( config('app.aliyun_access_key_id'), config('app.aliyun_access_key_secret') ) ->regionId('cn-hangzhou') ->asDefaultClient(); try { $result = AlibabaCloud::rpc() ->product('Dysmsapi') ->host('dysmsapi.aliyuncs.com') ->version('2017-05-25') ->action('SendSms') ->method('POST') ->options([ 'query' => [ 'PhoneNumbers' => $phoneNumber, 'SignName' => config('app.aliyun_sms_sign_name'), 'TemplateCode' => config('app.aliyun_sms_template_code'), 'TemplateParam' => json_encode([ 'code' => $code, ]), ], ]) ->request(); return response()->json([ 'message' => 'SMS sent successfully', 'result' => $result->toArray(), ]); } catch (ClientException $e) { return response()->json([ 'message' => 'Client exception occurred', 'error' => $e->getErrorMessage(), ], 500); } catch (ServerException $e) { return response()->json([ 'message' => 'Server exception occurred', 'error' => $e->getErrorMessage(), ], 500); } } }
routes/web.php ファイルに次のコードを追加します:
Route::post('/sms/send', 'SmsController@sendSms');
ルーティング /sms/send
へのリクエストによって POST を送信し、テキスト メッセージを送信できます。リクエスト パラメータには、phone_number
パラメータと code
パラメータが含まれている必要があります。たとえば、Postman ツールを使用して次のリクエストを送信できます:
POST /sms/send HTTP/1.1 Host: your-domain.com Content-Type: application/json Authorization: Bearer your-token Content-Length: 68 { "phone_number": "your-phone-number", "code": "123456" }
上記の例では、your-domain.com
をドメイン名と your-token に置き換えます。
を認証トークンに置き換え、your-phone-number
をテキスト メッセージを受信する電話番号に置き換えます。
2. SMS 受信機能の実装
SMS 受信機能を実現するには、サードパーティの SMS プラットフォームが提供する API インターフェイスを使用できます。ここではYunpian.comを例として説明します。
まず、Yunpian.com にアカウントを登録し、ログインして API キーを取得する必要があります。
app/Http/Controllers ディレクトリに SmsController.php ファイルを作成し、次のコードを追加します:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesHttp; class SmsController extends Controller { public function receiveSms(Request $request) { $content = $request->input('content'); $phoneNumber = $request->input('phone_number'); // 处理短信内容的逻辑 // 返回响应 return response('success'); } }
routes/web.php ファイルに次のコードを追加します:
Route::post('/sms/receive', 'SmsController@receiveSms');
##/sms/receive をルーティングするリクエストによって POST を送信し、テキスト メッセージを受信できます。リクエストパラメータには、
content パラメータと
phone_number パラメータが含まれている必要があります。特定の SMS コンテンツ処理ロジックは、インターフェイス ドキュメントに従って作成する必要があります。
以上がLaravelを使用してテキストメッセージを送受信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。