Heim >Backend-Entwicklung >PHP-Tutorial >Hallo, Laravel? Kommunikation mit PHP über SMS!

Hallo, Laravel? Kommunikation mit PHP über SMS!

William Shakespeare
William ShakespeareOriginal
2025-02-09 11:21:14570Durchsuche

Diese Laravel -Wetter -App, die ursprünglich für Sprachanrufe entwickelt wurde, unterstützt jetzt die SMS -Kommunikation. Diese Verbesserung beinhaltet das Hinzufügen von Routen, das Ändern der Serviceebene und das Erstellen eines SMS -Controllers, um eingehende Textnachrichten zu verarbeiten.

Hello, Laravel? Communicating with PHP through SMS!

Routeneradungen:

Die Datei routes/web.php wird aktualisiert, um eine SMS -Route -Gruppe einzuschließen:

<code class="language-php">Route::group(['prefix' => 'sms', 'middleware' => 'twilio'], function () {
    Route::post('weather', 'SmsController@showWeather')->name('weather');
});</code>

Diese /sms/weather Route übernimmt alle eingehenden SMS -Nachrichten und nutzt die Postanfragen von Twilio.

Service -Layer -Modifikation:

Die Methode app/Services/WeatherService.php Datei wird überarbeitet, um SMS aufzunehmen: getWeather

<code class="language-php">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;
}</code>
Die Schlüsseländerung ist die Zugabe von

Parameter. Wenn wahr, wird die Prognose verkürzt, um in SMS -Charaktergrenzen zu passen. $forSms

SMS -Controller:

Ein neues

wird in SmsController.php: app/Http/Controllers erstellt

<code class="language-php"><?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) ...
    }
}</code>
Die

-Methode dieses Controllers verwendet showWeather, um die SMS -Nachricht zu interpretieren und parseBody mit entsprechenden Parametern aufzurufen. getWeather identifiziert Postleitzahlen, Wochentage und Kreditanforderungen. parseBody

Twilio -Konfiguration:

Aktualisieren Sie Ihre Twilio -Telefonnummer -Einstellungen, um das SMS -Webhook auf den Endpunkt Ihrer Anwendung zu verweisen (mit Ihrer NGROK -URL).

/sms/weather

Hello, Laravel? Communicating with PHP through SMS!

App -Verwendung:

Senden Sie eine SMS mit einer Postleitzahl an Ihre Twilio -Nummer, um die Wettervorhersage zu erhalten. Nachfolgende Nachrichten können einen Wochentag angeben oder Credits anfordern.

Hello, Laravel? Communicating with PHP through SMS! Hello, Laravel? Communicating with PHP through SMS! Hello, Laravel? Communicating with PHP through SMS! Hello, Laravel? Communicating with PHP through SMS! Diese verbesserte Laravel -Anwendung zeigt eine robuste und flexible Möglichkeit, sowohl mit Sprach- als auch SMS -Interaktionen mithilfe von Twilio umzugehen. Der Code bietet ein klares Beispiel dafür, wie die Funktionalität zur Unterstützung eines neuen Kommunikationskanals erweitert wird. Denken Sie daran, Platzhalter -Kommentare durch den tatsächlichen Code aus der ursprünglichen Antwort zu ersetzen.

Das obige ist der detaillierte Inhalt vonHallo, Laravel? Kommunikation mit PHP über SMS!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn