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 サイトの他の関連記事を参照してください。