Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie PHP zum Implementieren von Sprachnachrichten im WeChat-Applet

So verwenden Sie PHP zum Implementieren von Sprachnachrichten im WeChat-Applet

王林
王林Original
2023-06-01 21:31:342056Durchsuche

In WeChat-Miniprogrammen sind Sprachnachrichten eine häufige Funktion und Benutzer können über Sprache interagieren. Wie implementiert man also Sprachnachrichten im WeChat-Applet in PHP? Lassen Sie uns es unten im Detail vorstellen.

1. Sprachnachrichten im WeChat Mini-Programm

Im WeChat Mini-Programm können Benutzer Nachrichten per Sprache senden und empfangen. Die spezifische Verwendung ist wie folgt:

  1. Eine Sprachnachricht senden

Benutzer können mit der Aufzeichnung von Sprachnachrichten beginnen, indem sie im Chatfenster des Miniprogramms lange auf die Schaltfläche „Zum Sprechen gedrückt halten“ drücken. Sobald die Aufnahme abgeschlossen ist, lässt der Benutzer die Taste los und die Sprachnachricht kann gesendet werden.

  1. Sprachnachrichten empfangen

Wenn der Benutzer eine Sprachnachricht erhält, spielt das Miniprogramm automatisch die Stimme ab und zeigt die Dauer der Sprachnachricht und das Texterkennungsergebnis (falls vorhanden) an.

2. Verwenden Sie PHP, um Sprachnachrichten in WeChat-Miniprogrammen zu implementieren.

In PHP sind zur Implementierung von Sprachnachrichten in WeChat-Miniprogrammen die folgenden Schritte erforderlich:

  1. Access_token abrufen

access_token ist zum Aufrufen der WeChat-Schnittstelle erforderlich Parameter müssen wir zuerst access_token erhalten. Dies kann durch den folgenden Code erreicht werden:

function getAccessToken(){
    $appid = ""; // 小程序的appid
    $secret = ""; // 小程序的secret
    $url = sprintf("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s",$appid,$secret);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $output = curl_exec($ch);
    curl_close($ch);
    $json = json_decode($output,true);
    $access_token = $json["access_token"];
    return $access_token;
}
  1. Sprachmaterial hochladen

Das Hochladen von Sprachmaterial erfordert das Senden einer POST-Anfrage an den WeChat-Server und die Angabe des Inhaltstyps als Multipart/Formulardaten im Anforderungsheader. Der spezifische Code lautet wie folgt:

function uploadVoice($access_token, $filePath){
    $url = sprintf("https://api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s",$access_token,"voice");
    $postdata = array(
        "media" => new CURLFile(realpath($filePath))
    );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    $output = curl_exec($ch);
    curl_close($ch);
    $json = json_decode($output,true);
    $media_id = $json["media_id"];
    return $media_id;
}

Darunter stellt $filePath den Pfad der hochzuladenden Sprachdatei dar und $media_id stellt die Medien-ID dar, die nach erfolgreichem Hochladen zurückgegeben wird.

  1. Eine Sprachnachricht senden

Das Senden einer Sprachnachricht erfordert das Senden einer POST-Anfrage an den WeChat-Server und die Angabe des Nachrichteninhalts im XML-Format im Anfragetext. Der spezifische Code lautet wie folgt:

function sendVoiceMessage($access_token, $openId, $mediaId){
    $url = sprintf("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=%s", $access_token);
    $xml = sprintf('<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[voice]]></MsgType><Voice><MediaId><![CDATA[%s]]></MediaId></Voice></xml>',
            $openId, "", time(), $mediaId);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

Dabei stellt $openId die OpenID des Benutzers dar, der die Sprachnachricht empfängt.

  1. Zusammenfassung

Die oben genannten Schritte sind die Schritte zur Verwendung von PHP zur Implementierung von Sprachnachrichten im WeChat-Applet. Sie können sich für bestimmte Vorgänge auf den obigen Code beziehen und ihn entsprechend der tatsächlichen Situation ändern.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP zum Implementieren von Sprachnachrichten im WeChat-Applet. 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