ホームページ >バックエンド開発 >PHPチュートリアル >PHP WeChatパブリックプラットフォーム開発 カスタムメニュー機能_PHPチュートリアル
以前に内部テスト資格の申請に成功した WeChat パブリック プラットフォーム サービス アカウント と サブスクリプション アカウント には、メニューをカスタマイズする機能があります。開発者はこの機能を使用して、公開アカウントの会話インターフェイスの下部にカスタム メニューを追加し、メニュー内のオプションをクリックして、対応する返信情報または Web リンクを表示できます。カスタマイズされたメニュー インターフェイスにより、パブリック アカウントの情報表示スペースにさらなる可能性が提供されます。この記事では、読者の参考のために、カスタム メニューの簡単な開発アプリケーションを実行します。
開発者は使用資格情報を取得した後、その資格情報を使用してパブリック アカウントのカスタム メニューを作成、クエリ、および削除できます。 カスタム メニュー インターフェイスでは、次の種類のボタンを実装できます:
クリック (クリックイベント):
ユーザーがクリック タイプ ボタンをクリックすると、WeChat サーバーはメッセージ インターフェイス (イベント タイプ) を通じて開発者にクリック イベントをプッシュし、開発者がボタンに入力したキー値を取得します。開発者はメッセージに返信できます。カスタマイズされたキー値を通じて。
表示 (Web ページにアクセス):
ユーザーがビュー タイプ ボタンをクリックすると、開発者が指定した URL に直接ジャンプします。
カスタム メニューを作成した後、WeChat クライアント上のキャッシュのため、WeChat クライアントがカスタム メニューを表示するまでに 24 時間かかります。テストする場合は、公開アカウントのフォローを解除してから再度フォローしてみて、作成後の効果を確認することをお勧めします。
文書アドレス: http://mp.weixin.qq.com/wiki/index.php?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5% 8D%95%E6%8E%A5%E5%8F%A3
3.1 appid と appsecret を取得する
「WeChat パブリック プラットフォーム」>「高度な機能」>「開発モード」で appid と appsecret を見つけます。
3.2 appid と appsecret を使用して、WeChat 認証情報取得インターフェイスから access_token をリクエストします
リクエストアドレス: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
リクエストパラメータの説明:
Grant_type: access_token を取得し、client_credential を入力します
appid: サードパーティユーザーの一意の資格情報
Secret: サードパーティ ユーザーの一意の認証キー、appsecret
返品手順:
正しい Json の戻り結果:
リーリー戻りパラメータの説明:
access_token: 取得した証明書
expires_in: バウチャーの有効期間、単位: 秒
3.3 具体的な実装
a. フォーマットを印刷します
リーリー結果は以下の通りです:
b. access_token を取得します
リーリー
注: access_token はパブリック アカウントに対応し、グローバルに一意のチケットです。繰り返し取得すると、最後の access_token が無効になります。
方法: 特定の構造を POST して、WeChat クライアント上にカスタム メニューを作成します。
リクエストアドレス: https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
リクエスト例:
リーリー説明例:
メニューの構造と説明:
リーリー返品手順:
正しい Json の戻り結果:
リーリーメニューを送信:
上記のメニューデータをcurl経由で送信します。コードは次のとおりです:
$MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$ACC_TOKEN; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $MENU_URL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $info = curl_exec($ch); if (curl_errno($ch)) { echo 'Errno'.curl_error($ch); } curl_close($ch); var_dump($info);
运行结果:
测试结果:
菜单创建成功。
查询当前使用的自定义菜单结构。
请求地址:https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN
curl 代码如下:
$MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".$ACC_TOKEN; $cu = curl_init(); curl_setopt($cu, CURLOPT_URL, $MENU_URL); curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1); $menu_json = curl_exec($cu); $menu = json_decode($menu_json); curl_close($cu); echo $menu_json;
运行结果:
菜单查询成功。
六、删除菜单
取消当前使用的自定义菜单。
请求地址:https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN
curl 代码如下:
$MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$ACC_TOKEN; $cu = curl_init(); curl_setopt($cu, CURLOPT_URL, $MENU_URL); curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1); $info = curl_exec($cu); $res = json_decode($info); curl_close($cu); if($res->errcode == "0"){ echo "菜单删除成功"; }else{ echo "菜单删除失败"; }
运行结果:
测试结果:
菜单删除成功。