Dalam program mini WeChat, mesej suara ialah fungsi biasa dan pengguna boleh berinteraksi melalui suara. Jadi bagaimana untuk melaksanakan mesej suara dalam applet WeChat dalam PHP? Mari perkenalkan secara terperinci di bawah.
1. Mesej suara dalam program mini WeChat
Dalam program mini WeChat, pengguna boleh menghantar dan menerima mesej melalui suara. Kaedah penggunaan khusus adalah seperti berikut:
Dalam tetingkap sembang program mini, pengguna boleh menekan lama butang "tekan dan tahan untuk butang bercakap" untuk mula merakam mesej suara . Setelah rakaman selesai, pengguna melepaskan butang dan mesej suara boleh dihantar.
Apabila pengguna menerima mesej suara, program mini akan memainkan suara secara automatik dan memaparkan tempoh mesej suara dan hasil pengecaman teks (jika ada).
2. Gunakan PHP untuk melaksanakan mesej suara dalam program mini WeChat
Dalam PHP, untuk melaksanakan mesej suara dalam program mini WeChat, langkah berikut diperlukan:
Access_token ialah parameter yang diperlukan untuk memanggil antara muka WeChat Kita perlu mendapatkan access_token terlebih dahulu. Ini boleh dicapai melalui kod berikut:
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; }
Memuat naik bahan suara memerlukan menghantar permintaan POST ke pelayan WeChat dan menyatakan Jenis Kandungan dalam pengepala permintaan berbilang bahagian/data-bentuk. Kod khusus adalah seperti berikut:
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; }
Antaranya, $filePath mewakili laluan fail suara yang hendak dimuat naik, dan $media_id mewakili id media yang dikembalikan selepas muat naik berjaya.
Menghantar mesej suara memerlukan menghantar permintaan POST ke pelayan WeChat dan menyatakan kandungan mesej dalam format xml dalam badan permintaan. Kod khusus adalah seperti berikut:
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; }
Antaranya, $openId mewakili openid pengguna yang menerima mesej suara.
Di atas ialah langkah-langkah untuk menggunakan PHP untuk melaksanakan mesej suara dalam applet WeChat. Anda boleh merujuk kepada kod di atas untuk operasi tertentu dan mengubah suainya mengikut situasi sebenar.
Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan mesej suara dalam applet WeChat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!