Rumah >pembangunan bahagian belakang >tutorial php >Helo, Laravel? Berkomunikasi dengan PHP melalui SMS!
aplikasi cuaca Laravel ini, yang pada mulanya direka untuk panggilan suara, kini menyokong komunikasi SMS. Peningkatan ini melibatkan menambah laluan, mengubahsuai lapisan perkhidmatan, dan membuat pengawal SMS untuk mengendalikan mesej teks yang masuk.
penambahan laluan:
fail dikemas kini untuk memasukkan kumpulan laluan SMS: routes/web.php
<code class="language-php">Route::group(['prefix' => 'sms', 'middleware' => 'twilio'], function () { Route::post('weather', 'SmsController@showWeather')->name('weather'); });</code>Laluan ini mengendalikan semua mesej SMS yang masuk, memanfaatkan permintaan pos Twilio.
/sms/weather
kaedah
fail disemak semula untuk menampung SMS: app/Services/WeatherService.php
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>. Jika benar, ramalan dipendekkan agar sesuai dengan had aksara SMS.
$forSms
A BARU
SmsController.php
app/Http/Controllers
Kaedah Pengawal
<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>untuk menafsirkan mesej SMS dan panggilan
dengan parameter yang sesuai. showWeather
Mengenal pasti kod zip, hari dalam seminggu, dan permintaan kredit. parseBody
getWeather
parseBody
Konfigurasi Twilio:
Kemas kini tetapan nombor telefon Twilio anda untuk menunjuk webhook SMS ke titik akhir aplikasi anda (menggunakan URL NGROK anda).
/sms/weather
Aplikasi Laravel yang dipertingkatkan ini menunjukkan cara yang mantap dan fleksibel untuk mengendalikan kedua -dua suara dan interaksi SMS menggunakan Twilio. Kod ini memberikan contoh yang jelas tentang cara memperluaskan fungsi untuk menyokong saluran komunikasi baru. Ingatlah untuk menggantikan komen pemegang tempat dengan kod sebenar dari respons asal.
Atas ialah kandungan terperinci Helo, Laravel? Berkomunikasi dengan PHP melalui SMS!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!