ホームページ > バックエンド開発 > PHPチュートリアル > こんにちは、ララヴェル? SMSを介してPHPと通信!

こんにちは、ララヴェル? SMSを介してPHPと通信!

William Shakespeare
リリース: 2025-02-09 11:21:14
オリジナル
569 人が閲覧しました

当初音声通話用に設計されたこのLaravel Weatherアプリは、SMS通信をサポートしています。 この拡張には、ルートを追加し、サービスレイヤーの変更を加え、SMSコントローラーを作成して着信テキストメッセージを処理することが含まれます。

Hello, Laravel? Communicating with PHP through SMS!

ルートの追加:

ファイルが更新されます。 routes/web.php このルートは、すべての着信SMSメッセージを処理し、Twilioの投稿リクエストを活用しています。
Route::group(['prefix' => 'sms', 'middleware' => 'twilio'], function () {
    Route::post('weather', 'SmsController@showWeather')->name('weather');
});
ログイン後にコピー

サービスレイヤーの変更:/sms/weather

ファイルのメソッドは、SMSに対応するために改訂されます:

app/Services/WeatherService.php重要な変更は、getWeatherパラメーターの追加です。 本当なら、SMS文字制限内に収まるように予測が短縮されます。

public function getWeather($zip, $dayName, $forSms = false) {
    // ... (Existing code to retrieve weather data remains unchanged) ...

    $weather = $day->name;
    $weather .= ' the ' . $tsObj->format('jS') . ': ';

    $response = new Twiml();

    if ($forSms) {
        $remainingChars = 140 - strlen($weather);
        // ... (Condensed weather forecast for SMS, limited to 140 characters) ...
        $response->message($weather);
    } else {
        // ... (Existing code for voice responses remains unchanged) ...
    }

    return $response;
}
ログイン後にコピー
smsコントローラー:

$forSms

新しい

に作成されます

このコントローラーのメソッドは、

SmsController.phpを使用してSMSメッセージを解釈し、適切なパラメーターを使用してapp/Http/Controllersを呼び出します。

zipコード、曜日、クレジットリクエストを識別します。
<?php
namespace App\Http\Controllers;

use App\Services\WeatherService;
use Illuminate\Http\Request;
use Twilio\Twiml;

class SmsController extends Controller
{
    // ... (Constructor and dependencies remain the same) ...

    public function showWeather(Request $request)
    {
        $parts = $this->parseBody($request);

        switch ($parts['command']) {
            case 'zipcode':
                // ... (Handle zipcode input) ...
                break;
            case 'day':
                // ... (Handle day of week input) ...
                break;
            case 'credits':
                // ... (Handle credits request) ...
                break;
            default:
                // ... (Handle default/unknown input) ...
                break;
        }

        return $response;
    }

    private function parseBody($request)
    {
        // ... (Parses the SMS body to determine user intent) ...
    }
}
ログイン後にコピー

showWeathertwilio構成:parseBody getWeather parseBodyTwilioの電話番号設定を更新して、SMS webhookをアプリケーションの

エンドポイント(ngrok URLを使用)に向けます。

/sms/weatherアプリの使用:

Hello, Laravel? Communicating with PHP through SMS! 郵便番号付きSMSをTwilio番号に送信して、天気予報を受け取ります。 後続のメッセージは、曜日を指定したり、クレジットを要求したりできます。

この強化されたLaravelアプリケーションは、Twilioを使用した音声とSMSの両方の相互作用を処理するための堅牢で柔軟な方法を示しています。 このコードは、新しい通信チャネルをサポートするために機能を拡張する方法の明確な例を提供します。 プレースホルダーのコメントを元の応答から実際のコードに置き換えることを忘れないでください。

以上がこんにちは、ララヴェル? SMSを介してPHPと通信!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート