首頁 後端開發 php教程 微信公众平台开发(八) 自定义菜单功能开发_PHP教程

微信公众平台开发(八) 自定义菜单功能开发_PHP教程

Jul 20, 2016 am 11:15 AM
內測 功能 平台 開發 微信 成功 服務 申請 自訂 選單 訂閱 資格

微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能。开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的回复信息或网页链接。自定义菜单接口将为公众账号的信息展示空间提供更多可能性。本文将针对自定义菜单做简单的开发应用,

开发者获取使用凭证后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。 自定义菜单接口可实现以下类型按钮:

click(点击事件):

view(访问网页):

创建自定义菜单后,由于微信客户端缓存,需要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

在 微信公众平台 > 高级功能 > 开发模式中找到appid 和appsecret。

 

3.2 使用appid 和appsecret 向微信凭证获取接口请求access_token

请求地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

请求参数说明:

获取access_token填写client_credential

第三方用户唯一凭证

第三方用户唯一凭证密钥,既appsecret

返回说明:

正确的Json返回结果:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
登入後複製

返回参数说明:

access_token:获取到的凭证

expires_in:凭证有效时间,单位:秒

3.3 具体实现

a. 打印出格式

<?<span php

</span><span $APPID</span>="wxdxxxxxxxxxxxxxxx"<span ;
</span><span $APPSECRET</span>="96xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<span ;

</span><span $TOKEN_URL</span>="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".<span $APPID</span>."&secret=".<span $APPSECRET</span><span ;

</span><span $json</span>=<span file_get_contents</span>(<span $TOKEN_URL</span><span );
</span><span $result</span>=json_decode(<span $json</span>,<span true</span><span );
</span><span print_r</span>(<span $result</span><span );

</span>?>
登入後複製

结果如下:

b. 获取access_token

<?<span php

</span><span $APPID</span>="wxdxxxxxxxxxxxxxxx"<span ;
</span><span $APPSECRET</span>="96xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<span ;

</span><span $TOKEN_URL</span>="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".<span $APPID</span>."&secret=".<span $APPSECRET</span><span ;

</span><span $json</span>=<span file_get_contents</span>(<span $TOKEN_URL</span><span );
</span><span $result</span>=json_decode(<span $json</span>,<span true</span><span );

</span><span $ACC_TOKEN</span>=<span $result</span>['access_token'<span ];

</span><span echo</span> <span $ACC_TOKEN</span><span ;

</span>?>
登入後複製

注:access_token对应于公众号是全局唯一的票据,重复获取将导致上次获取的access_token失效。

方法:通过POST一个特定结构体,实现在微信客户端创建自定义菜单。

请求地址:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

<span {
 "button":[
 {
       "name":"公共查询",
       "sub_button":[
        {
           "type":"click",
           "name":"天气查询",
           "key":"tianQi"
        },
        {
           "type":"click",
           "name":"公交查询",
           "key":"gongJiao"
        },
        {
           "type":"click",
           "name":"翻译",
           "key":"fanYi"
        }]
  },
  {
       "name":"苏州本地",
       "sub_button":[
        {
           "type":"click",
           "name":"爱上苏州",
           "key":"loveSuzhou"
        },
        {
           "type":"click",
           "name":"苏州景点",
           "key":"suzhouScenic"
        },
        {
           "type":"click",
           "name":"苏州美食",
           "key":"suzhouFood"
        },
        {
           "type":"click",
           "name":"住在苏州",
           "key":"liveSuzhou"
        }]
   },
   {
       "type":"click",
       "name":"联系我们",
       "key":"lianxiUs"
   }]
}</span>
登入後複製

示例说明:

菜单结构及说明:

<span {
 "button":[             //button定义该结构为一个菜单
  {
       "name":"分支主菜单名",  
       "sub_button":[    //sub_button定义子菜单
        {
           "type":"click",  //按钮类型
           "name":"分支子菜单名1",  //菜单名称
           "key":"loveSuzhou"  //菜单key值
        },
        {
           "type":"click",
           "name":"分支子菜单名2",
           "key":"liveSuzhou"
        }]
   },    //菜单之间用 , 分隔
   {
       "type":"click",
       "name":"独立菜单",
       "key":"lianxiUs"
   }]
}</span>
登入後複製

返回说明:

正确的Json返回结果:

{"errcode":0,"errmsg":"ok"}
登入後複製

提交菜单:

通过curl 提交以上的菜单数据,代码如下:

<span $MENU_URL</span>="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".<span $ACC_TOKEN</span><span ;

</span><span $ch</span> =<span  curl_init(); 

curl_setopt(</span><span $ch</span>, CURLOPT_URL, <span $MENU_URL</span><span ); 
curl_setopt(</span><span $ch</span>, CURLOPT_CUSTOMREQUEST, "POST"<span );
curl_setopt(</span><span $ch</span>, CURLOPT_SSL_VERIFYPEER, <span FALSE</span><span ); 
curl_setopt(</span><span $ch</span>, CURLOPT_SSL_VERIFYHOST, <span FALSE</span><span );
curl_setopt(</span><span $ch</span>, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'<span );
curl_setopt(</span><span $ch</span>, CURLOPT_FOLLOWLOCATION, 1<span );
curl_setopt(</span><span $ch</span>, CURLOPT_AUTOREFERER, 1<span ); 
curl_setopt(</span><span $ch</span>, CURLOPT_POSTFIELDS, <span $data</span><span );
curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, <span true</span><span ); 

</span><span $info</span> = curl_exec(<span $ch</span><span );

</span><span if</span> (curl_errno(<span $ch</span><span )) {
    </span><span echo</span> 'Errno'.curl_error(<span $ch</span><span );
}

curl_close(</span><span $ch</span><span );

</span><span var_dump</span>(<span $info</span>);
登入後複製

运行结果:

测试结果:

菜单创建成功。

查询当前使用的自定义菜单结构。

请求地址:https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN

curl 代码如下:

<span $MENU_URL</span>="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".<span $ACC_TOKEN</span><span ;

</span><span $cu</span> =<span  curl_init();
curl_setopt(</span><span $cu</span>, CURLOPT_URL, <span $MENU_URL</span><span );
curl_setopt(</span><span $cu</span>, CURLOPT_RETURNTRANSFER, 1<span );
</span><span $menu_json</span> = curl_exec(<span $cu</span><span );
</span><span $menu</span> = json_decode(<span $menu_json</span><span );
curl_close(</span><span $cu</span><span );

</span><span echo</span> <span $menu_json</span>;
登入後複製

取消当前使用的自定义菜单。

请求地址:https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN

curl 代码如下:

<span $MENU_URL</span>="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".<span $ACC_TOKEN</span><span ;

</span><span $cu</span> =<span  curl_init();
curl_setopt(</span><span $cu</span>, CURLOPT_URL, <span $MENU_URL</span><span );
curl_setopt(</span><span $cu</span>, CURLOPT_RETURNTRANSFER, 1<span );
</span><span $info</span> = curl_exec(<span $cu</span><span );
</span><span $res</span> = json_decode(<span $info</span><span );
curl_close(</span><span $cu</span><span );

</span><span if</span>(<span $res</span>->errcode == "0"<span ){
    </span><span echo</span> "菜单删除成功"<span ;
}</span><span else</span><span {
    </span><span echo</span> "菜单删除失败"<span ;
}</span>
登入後複製

运行结果:

测试结果:

菜单删除成功。

七、完整代码获取

请到QQ群213260412共享里下载使用。

八、关注

请关注 卓锦苏州 微信公众帐号,卓锦苏州 基于SAE 平台开发,针对于主流的微信功能进行开发测试。

您可以关注 卓锦苏州 公众帐号进行功能测试,以及获取新的应用开发。

1. 登录微信客户端,朋友们 -> 添加朋友 -> 搜号码 -> zhuojinsz,查找并关注。

2. 扫描二维码:

卓锦苏州菜单功能:

目前菜单具体功能还在开发之中,会陆续更新,敬请期待。。。

 


We Believe, Great People Share Knowledge...

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440160.htmlTechArticle微信公众平台 服务号 以及 之前成功申请内测资格的订阅号 都具有自定义菜单的功能。开发者可利用该功能为公众账号的会话界面底部增加...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

deepseek生成圖片教程 deepseek生成圖片教程 Feb 19, 2025 pm 04:15 PM

DeepSeek:強大的AI圖像生成利器! DeepSeek本身並非圖像生成工具,但其強大的核心技術為眾多AI繪畫工具提供了底層支持。想知道如何利用DeepSeek間接生成圖片嗎?請繼續閱讀!利用基於DeepSeek的AI工俱生成圖像:以下步驟將引導您使用這些工具:啟動AI繪畫工具:在您的電腦、手機瀏覽器或微信小程序中搜索並打開一個基於DeepSeek的AI繪畫工具(例如,搜索“簡單AI”)。選擇繪畫模式:選擇“AI繪圖”或類似功能,並根據您的需求選擇圖片類型,例如“動漫頭像”、“風景

gateio中文官方網站 gate.io交易平台網址 gateio中文官方網站 gate.io交易平台網址 Feb 21, 2025 pm 03:06 PM

Gate.io,一家創立於 2013 年的領先加密貨幣交易平台,為中國用戶提供了完整的中文官方網站。該網站提供廣泛的服務,包括現貨交易、期貨交易和借貸,並提供中文界面、豐富的資源和社區支持等特色功能。

okx交易平台手續費一覽 okx交易平台手續費一覽 Feb 15, 2025 pm 03:09 PM

OKX 交易平台提供了各種類型的費率,包括交易費用、提款費用和融資費用。對於現貨交易,交易費用根據交易量和 VIP 等級而有所不同,採取“做市商模式”,即市場每筆交易收取較低的手續費。此外,OKX 還提供了多種類型的期貨合約,包括幣本位合約、USDT 合約和交割合約,每種合約的費用結構也有所不同。

gateio交易所app老版本 gateio交易所app老版本下載渠道 gateio交易所app老版本 gateio交易所app老版本下載渠道 Mar 04, 2025 pm 11:36 PM

Gateio 交易所 app 老版本下載渠道,涵蓋官方、第三方應用市場、論壇社區等途徑,還給出下載注意事項,幫你輕鬆獲取老版本,解決新版本使用不適或設備兼容問題。

歐易交易所app國內下載教程 歐易交易所app國內下載教程 Mar 21, 2025 pm 05:42 PM

本文提供國內安全下載歐易OKX App的詳細指南。由於國內應用商店限制,建議用戶通過歐易OKX官方網站下載App,或使用官網提供的二維碼掃描下載。下載過程中,務必核實官網地址,檢查應用權限,安裝後進行安全掃描,並啟用雙重驗證。 使用過程中,請遵守當地法律法規,使用安全網絡環境,保護賬戶安全,警惕詐騙,理性投資。 本文僅供參考,不構成投資建議,數字資產交易風險自負。

芝麻開門登錄註冊入口 gate.io交易所註冊官網入口 芝麻開門登錄註冊入口 gate.io交易所註冊官網入口 Mar 04, 2025 pm 04:51 PM

Gate.io(芝麻開門)是全球領先的加密貨幣交易平台,本文提供Gate.io現貨交易完整教程。教程涵蓋賬戶註冊登錄、KYC認證、法幣及數字貨幣充值、交易對選擇、限價/市價交易下單以及訂單和交易記錄查看等步驟,助您快速上手Gate.io平台進行加密貨幣交易。 無論是新手還是老手,都能從本教程中獲益,輕鬆掌握Gate.io交易技巧。

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

小紅書文案怎麼複製 小紅書文案複製方法圖文教程 小紅書文案怎麼複製 小紅書文案複製方法圖文教程 Jan 16, 2025 pm 04:03 PM

學會輕鬆複製小紅書文案!這篇教學手把手教你如何快速複製小紅書影片文案,告別繁瑣步驟。打開小紅書APP,找到你喜歡的視頻,點擊視頻下方的【文案】區域。長按文案文字,在彈出的選項中選擇【提取文字】功能。系統會自動擷取文字,點選左下角的【複製】按鈕。開啟微信或其他應用,例如朋友圈,長按輸入框,選擇【貼上】。點擊發送即可完成複製。就這麼簡單!

See all articles