ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して WeChat アプレットに音声メッセージを実装する方法

PHP を使用して WeChat アプレットに音声メッセージを実装する方法

王林
王林オリジナル
2023-06-01 21:31:342128ブラウズ

WeChat ミニ プログラムでは、音声メッセージが一般的な機能であり、ユーザーは音声を通じて対話できます。では、PHP の WeChat アプレットに音声メッセージを実装するにはどうすればよいでしょうか?以下で詳しく紹介していきましょう。

1. WeChat ミニ プログラムの音声メッセージ

WeChat ミニ プログラムでは、ユーザーは音声を通じてメッセージを送受信できます。具体的な使用方法は以下の通りです。

  1. 音声メッセージを送信

ミニプログラムのチャットウィンドウで、「長押しするとメッセージが送信されます」を長押しすることができます。 「話す」ボタンを押して音声メッセージの録音を開始します。録音が完了したら、ユーザーがボタンを放すと、音声メッセージが送信できるようになります。

  1. 音声メッセージの受信

ユーザーが音声メッセージを受信すると、ミニ プログラムが自動的に音声を再生し、音声メッセージの長さとテキスト認識結果を表示します。 (あれば) 。

2. PHP を使用して WeChat ミニ プログラムに音声メッセージを実装する

PHP で WeChat ミニ プログラムに音声メッセージを実装するには、次の手順が必要です:

  1. Get 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. 音声マテリアルのアップロード

音声マテリアルをアップロードするには、WeChat サーバーに POST リクエストを送信し、コンテンツ タイプを指定する必要があります。リクエストヘッダー.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. 音声メッセージを送信する

音声メッセージを送信するには、POST リクエストを WeChat サーバーに送信し、リクエスト本文にメッセージの内容を 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。