Heim >Backend-Entwicklung >PHP-Tutorial >Hallo, Laravel? Kommunikation mit PHP über SMS!
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.
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
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.
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!