Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour implémenter des messages vocaux dans l'applet WeChat

Comment utiliser PHP pour implémenter des messages vocaux dans l'applet WeChat

王林
王林original
2023-06-01 21:31:342093parcourir

Dans les mini-programmes WeChat, les messages vocaux sont une fonction courante et les utilisateurs peuvent interagir par la voix. Alors, comment implémenter des messages vocaux dans l’applet WeChat en PHP ? Présentons-le en détail ci-dessous.

1. Messages vocaux dans le programme WeChat Mini

Dans le programme WeChat Mini, les utilisateurs peuvent envoyer et recevoir des messages par la voix. L'utilisation spécifique est la suivante :

  1. Envoyer un message vocal

Les utilisateurs peuvent commencer à enregistrer des messages vocaux en appuyant longuement sur le bouton "Appuyez et maintenez pour parler" dans la fenêtre de discussion du mini programme. Une fois l'enregistrement terminé, l'utilisateur relâche le bouton et le message vocal peut être envoyé.

  1. Recevoir des messages vocaux

Lorsque l'utilisateur reçoit un message vocal, le mini programme jouera automatiquement la voix et affichera la durée du message vocal et le résultat de la reconnaissance de texte (le cas échéant).

2. Utilisez PHP pour implémenter des messages vocaux dans les mini-programmes WeChat

En PHP, pour implémenter des messages vocaux dans les mini-programmes WeChat, les étapes suivantes sont requises :

  1. Obtenir access_token

access_token consiste à appeler l'interface WeChat Nécessaire paramètres, nous devons d’abord obtenir access_token. Cela peut être réalisé via le code suivant :

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. Télécharger du matériel vocal

Le téléchargement de matériel vocal nécessite l'envoi d'une requête POST au serveur WeChat et la spécification de Content-Type comme multipart/form-data dans l'en-tête de la requête. Le code spécifique est le suivant :

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;
}

Parmi eux, $filePath représente le chemin du fichier vocal à télécharger, et $media_id représente l'identifiant média renvoyé une fois le téléchargement réussi.

  1. Envoyer un message vocal

L'envoi d'un message vocal nécessite l'envoi d'une requête POST au serveur WeChat et la spécification du contenu du message au format XML dans le corps de la requête. Le code spécifique est le suivant :

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;
}

Parmi eux, $openId représente l'openid de l'utilisateur qui reçoit le message vocal.

  1. Résumé

Voici les étapes ci-dessus pour utiliser PHP pour implémenter des messages vocaux dans l'applet WeChat. Vous pouvez vous référer au code ci-dessus pour des opérations spécifiques et le modifier en fonction de la situation réelle.

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:
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