Rumah > pembangunan bahagian belakang > tutorial php > Helo, Laravel? Berkomunikasi dengan PHP melalui panggilan telefon!

Helo, Laravel? Berkomunikasi dengan PHP melalui panggilan telefon!

William Shakespeare
Lepaskan: 2025-02-09 11:43:10
asal
691 orang telah melayarinya

Artikel ini menunjukkan membina aplikasi telefon ramalan cuaca menggunakan Twilio dan Laravel. Siri dua bahagian ini memberi tumpuan kepada interaksi suara di bahagian satu, dengan fungsi SMS akan ditambah dalam bahagian dua.

Hello, Laravel? Communicating with PHP through Phone Calls!

Pengguna memanggil nombor Twilio, masukkan kod zip, dan terima ramalan cuaca semasa. Menu suara membolehkan pengambilan ramalan untuk hari -hari tertentu dalam seminggu.

Ciri -ciri Utama:

    memanfaatkan PHP SDK Twilio dan Guzzle HTTP Client untuk interaksi API yang cekap dalam Laravel.
  • menggunakan laluan pos http di Laravel untuk menguruskan input pengguna dan ramalan permintaan.
  • melaksanakan sistem caching Laravel untuk mengoptimumkan prestasi dan meminimumkan panggilan API.
  • Termasuk middleware tersuai untuk pengesahan permintaan selamat, memintas CSRF untuk Twilio Webhooks.

Prasyarat:

    Homestead bertambah baik (atau persekitaran pembangunan yang setanding). Lihat sumber SitePoint dan Vagrant yang dipautkan untuk bantuan persediaan. Buku Persekitaran Pembangunan PHP juga dikaitkan untuk pembelajaran selanjutnya.
  • Persediaan Projek dan Ketergantungan Projek Laravel:
cd ~/Code
composer create-project --prefer-dist laravel/laravel Laravel 5.4.*
cd Laravel
composer require "twilio/sdk:^5.7"
composer require "guzzlehttp/guzzle:~6.0"
Salin selepas log masuk

Langkah -langkah pembangunan:

  1. Laluan (): Tentukan laluan untuk interaksi suara: routes/web.php
Route::group(['prefix' => 'voice', 'middleware' => 'twilio'], function () {
    Route::post('enterZipcode', 'VoiceController@showEnterZipcode')->name('enter-zip');
    Route::post('zipcodeWeather', 'VoiceController@showZipcodeWeather')->name('zip-weather');
    Route::post('dayWeather', 'VoiceController@showDayWeather')->name('day-weather');
    Route::post('credits', 'VoiceController@showCredits')->name('credits');
});
Salin selepas log masuk
  1. Lapisan Perkhidmatan (

    ): Buat kelas app/Services/WeatherService.php untuk merangkum logik perniagaan. Kelas ini mengendalikan mendapatkan data cuaca dari API Perkhidmatan Cuaca Kebangsaan (), menggunakan data geografi dari Geonames. Caching dilaksanakan untuk prestasi yang lebih baik. Kaedah utama ialah WeatherService, https://api.weather.gov, getWeather, retrieveNwsData, getPoint, dan getTimeZone. getTimestamp getCredits

  2. pengawal ():

    Menguruskan interaksi pengguna, menggunakan app/Http/Controllers/VoiceController.php untuk mengendalikan pengambilan data cuaca. Kaedah termasuk , VoiceController, WeatherService, dan showEnterZipcode. Kaedah ini mengembalikan Twilio Twiml Responses membimbing pengguna melalui panggilan. showZipcodeWeather showDayWeather showCredits

  3. middleware (
  4. ):

    middleware tersuai mengesahkan permintaan masuk dari Twilio menggunakan Twilio RequestValidator, memastikan hanya permintaan sah yang diproses. Perlindungan CSRF dilumpuhkan untuk Twilio Webhooks.

  5. Pembolehubah Alam Sekitar (.env): Konfigurasi Twilio Auth Token anda (TWILIO_APP_TOKEN), dan Geonames nama pengguna (). GEONAMES_USERNAME

  6. ngrok: Gunakan ngrok untuk mendedahkan pelayan pembangunan tempatan anda ke internet untuk panggilan Twilio Webhook. Ingatlah untuk menggunakan pilihan untuk mengendalikan tajuk tuan rumah dengan betul. -host-header

  7. Persediaan Twilio: Dapatkan nombor telefon Twilio dengan keupayaan suara dan SMS. Konfigurasikan URL Webhook dalam tetapan akaun Twilio anda untuk menunjuk ke laluan NGROK yang terdedah anda.

Pertimbangan Pengeluaran: Beralih ke titik akhir HTTPS disyorkan untuk penyebaran pengeluaran.

Kesimpulan: Butir-butir artikel ini mewujudkan aplikasi cuaca berasaskan suara yang berfungsi. Bahagian dua akan melanjutkan ini untuk memasukkan fungsi SMS. Repositori GitHub (pautan tidak disediakan dalam teks asal) akan mengandungi kod lengkap.

Soalan Lazim (dari teks asal, diubahsuai):

Seksyen Soalan Lazim dari teks asal adalah luas dan meliputi pelbagai aspek mengintegrasikan Laravel dengan perkhidmatan komunikasi yang berbeza (Twilio, Plivo, Sinch). Oleh kerana soalan itu hanya meminta menulis semula teks yang disediakan, saya telah meninggalkan seksyen ini untuk keringkasan. Walau bagaimanapun, jika anda ingin bahagian ini disertakan, sila beritahu saya.

Atas ialah kandungan terperinci Helo, Laravel? Berkomunikasi dengan PHP melalui panggilan telefon!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan