Maison > développement back-end > tutoriel php > Bonjour, Laravel? Communiquer avec PHP via SMS!

Bonjour, Laravel? Communiquer avec PHP via SMS!

William Shakespeare
Libérer: 2025-02-09 11:21:14
original
549 Les gens l'ont consulté

Cette application météo Laravel, initialement conçue pour les appels vocaux, prend désormais en charge la communication SMS. Cette amélioration consiste à ajouter des itinéraires, à modifier la couche de service et à créer un contrôleur SMS pour gérer les messages texte entrants.

Hello, Laravel? Communicating with PHP through SMS!

ajouts d'itinéraire:

Le fichier routes/web.php est mis à jour pour inclure un groupe d'itinéraire SMS:

Route::group(['prefix' => 'sms', 'middleware' => 'twilio'], function () {
    Route::post('weather', 'SmsController@showWeather')->name('weather');
});
Copier après la connexion

Cette route /sms/weather gère tous les messages SMS entrants, tirant parti des demandes de publication de Twilio.

Modification de la couche de service:

La méthode app/Services/WeatherService.php du fichier getWeather est révisée pour s'adapter aux 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;
}
Copier après la connexion

Le changement de clé est l'ajout du paramètre $forSms. Si cela est vrai, la prévision est raccourcie pour s'adapter dans les limites de caractère SMS.

Contrôleur SMS:

Un nouveau SmsController.php est créé dans app/Http/Controllers:

<?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) ...
    }
}
Copier après la connexion

La méthode showWeather de ce contrôleur utilise parseBody pour interpréter le message SMS et les appels getWeather avec des paramètres appropriés. parseBody identifie les codes postaux, les jours de la semaine et les demandes de crédit.

CONFIGURATION TWILIO:

Mettez à jour les paramètres de votre numéro de téléphone Twilio pour pointer le point Web SMS au point de terminaison de votre application (en utilisant votre URL Ngrok). /sms/weather

Hello, Laravel? Communicating with PHP through SMS!

Utilisation de l'application:

Envoyez un SMS avec un code postal à votre numéro Twilio pour recevoir les prévisions météorologiques. Les messages ultérieurs peuvent spécifier un jour de la semaine ou demander des crédits.

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!

Cette application Laravel améliorée démontre un moyen robuste et flexible de gérer les interactions vocales et SMS à l'aide de Twilio. Le code fournit un exemple clair de la façon d'étendre les fonctionnalités pour prendre en charge un nouveau canal de communication. N'oubliez pas de remplacer les commentaires d'espace réservé par le code réel de la réponse d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal