>백엔드 개발 >PHP 튜토리얼 >PHP를 사용하여 WeChat 애플릿에서 음성 메시지를 구현하는 방법

PHP를 사용하여 WeChat 애플릿에서 음성 메시지를 구현하는 방법

王林
王林원래의
2023-06-01 21:31:342126검색

WeChat 미니 프로그램에서는 음성 메시지가 공통 기능이며 사용자는 음성을 통해 상호 작용할 수 있습니다. 그렇다면 PHP의 WeChat 애플릿에서 음성 메시지를 구현하는 방법은 무엇입니까? 아래에서 자세히 소개하겠습니다.

1. 위챗 미니 프로그램의 음성 메시지

위챗 미니 프로그램에서는 음성으로 메시지를 주고받을 수 있습니다. 구체적인 사용법은 다음과 같습니다.

  1. 음성 메시지 보내기

사용자는 미니 프로그램의 채팅 창에서 "길게 눌러 말하기" 버튼을 길게 눌러 음성 메시지 녹음을 시작할 수 있습니다. 녹음이 완료되면 사용자가 버튼을 놓으면 음성 메시지가 전송됩니다.

  1. 음성 메시지 받기

사용자가 음성 메시지를 받으면 미니 프로그램이 자동으로 음성을 재생하고 음성 메시지의 지속 시간과 문자 인식 결과(있는 경우)를 표시합니다.

2. PHP를 사용하여 WeChat 미니 프로그램에서 음성 메시지 구현

PHP에서 WeChat 미니 프로그램에서 음성 메시지를 구현하려면 다음 단계가 필요합니다.

  1. access_token 가져오기

access_token은 WeChat 인터페이스를 호출하는 것입니다. 매개변수를 사용하려면 먼저 access_token을 얻어야 합니다. 이는 다음 코드를 통해 달성할 수 있습니다:

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. 음성 자료 업로드

음성 자료를 업로드하려면 POST 요청을 WeChat 서버에 보내고 요청 헤더에 Content-Type을 multipart/form-data로 지정해야 합니다. 구체적인 코드는 다음과 같습니다.

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

그 중 $filePath는 업로드할 음성 파일의 경로를 나타내고, $media_id는 업로드 성공 후 반환되는 미디어 ID를 나타냅니다.

  1. 음성 메시지 보내기

음성 메시지를 보내려면 WeChat 서버에 POST 요청을 보내고 요청 본문에 메시지 내용을 xml 형식으로 지정해야 합니다. 구체적인 코드는 다음과 같습니다.

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

그 중 $openId는 음성 메시지를 받는 사용자의 openid를 나타냅니다.

  1. 요약

위는 PHP를 사용하여 WeChat 애플릿에서 음성 메시지를 구현하는 단계입니다. 특정 작업은 위의 코드를 참조하고 실제 상황에 따라 수정할 수 있습니다.

위 내용은 PHP를 사용하여 WeChat 애플릿에서 음성 메시지를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.