懂微信公众号自定义菜单的来~主要要有自定义菜单

微信公众平台的所有公众号都能自定义菜单了
发表于 15:39|
来源腾讯科技|
摘要:微信公众平台宣布进一步开放基础能力,对所有的公众号开放自定义菜单功能。编辑自定义菜单功能时可选择“跳转到网页”和“发送消息”两种动作。
2月12日消息,微信公众平台宣布进一步开放基础能力,对所有的公众号开放自定义菜单功能。
公众帐号运营者点击“添加功能插件”后选择右下角的“自定义菜单”卡片可申请开通自定义菜单插件。
编辑自定义菜单功能时可选择“跳转到网页”和“发送消息”两种动作。
1. 自定义菜单支持“跳转到网页”。所有公众帐号均可在自定义菜单中直接选择素材库中的图文消息作为跳转到网页的对象。认证订阅号和服务号还可直接输入网址。2. 自定义菜单还支持“发送信息”。可发送信息类型包括文字、图片、语音、视频和图文消息等。未认证订阅号用户暂时无法支持文字类型。
文章来自:
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章php实现微信公众平台账号自定义菜单类
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了php实现微信公众平台账号自定义菜单类的方法,涉及针对微信接口API的二次开发,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了php实现微信公众平台账号自定义菜单类的方法。分享给大家供大家参考。具体分析如下:
微信公众平台服务号可申请自定义菜单了,其它的号暂时不支持自定义菜单了,这个不但可以使用api来操作,还可以直接在后台定义菜单与参数。
申请自定义菜单
服务号可以申请自定义菜单,使用QQ登录的公众号,可以升级为邮箱登录,使用邮箱登录的公众号,可以修改登录邮箱,群发消息可以同步到腾讯微博.
微信公众平台账号api程序
代码如下:&?php
//define your token
define("TOKEN", "chenxiang");//改成自己的TOKEN
define('APP_ID', '');//改成自己的APPID
define('APP_SECRET', '');//改成自己的APPSECRET
$wechatObj = new wechatCallbackapiTest(APP_ID,APP_SECRET);
$wechatObj-&Run();
class wechatCallbackapiTest
&&& private $fromU
&&& private $toU
&&& private $
&&& private $
&&& private $app_
&&& private $app_
&&& public function __construct($appid,$appsecret)
&&&&&&& # code...
&&&&&&& $this-&app_id = $
&&&&&&& $this-&app_secret = $
&&& public function valid()
&&&&&&& $echoStr = $_GET["echostr"];
&&&&&&& if($this-&checkSignature()){
&&&&&&&&&&& echo $echoS
&&&&&&&&&&&
&&&& * 运行程序
&&&& * @param string $value [description]
&&& public function Run()
&&&&&&& $this-&responseMsg();
&&&&&&& $arr[]= "您好,这是自动回复,我现在不在,有事请留言,我会尽快回复你的^_^";
&&&&&&& echo $this-&make_xml("text",$arr);
&&& public function responseMsg()
&&&&&&& $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据
&&&&&&& if (!emptyempty($postStr)){
&&&&&&&&&&&&&&& $access_token = $this-&get_access_token();//获取access_token
&&&&&&&&&&&&&&& $this-&createmenu($access_token);//创建菜单
&&&&&&&&&&&&&&& //$this-&delmenu($access_token);//删除菜单
&&&&&&&&&&&&&&& $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
&&&&&&&&&&&&&&& $this-&fromUsername = $postObj-&FromUserN//发送消息方ID
&&&&&&&&&&&&&&& $this-&toUsername = $postObj-&ToUserN//接收消息方ID
&&&&&&&&&&&&&&& $this-&keyword = trim($postObj-&Content);//用户发送的消息
&&&&&&&&&&&&&&& $this-&times = time();//发送时间
&&&&&&&&&&&&&&& $MsgType = $postObj-&MsgT//消息类型
&&&&&&&&&&&&&&& if($MsgType=='event'){
&&&&&&&&&&&&&&&&&&& $MsgEvent = $postObj-&E//获取事件类型
&&&&&&&&&&&&&&&&&&& if ($MsgEvent=='subscribe') {//订阅事件
&&&&&&&&&&&&&&&&&&&&&&& $arr[] = "你好,我是xxx,现在我们是好友咯![愉快][玫瑰]";
&&&&&&&&&&&&&&&&&&&&&&& echo $this-&make_xml("text",$arr);
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }elseif ($MsgEvent=='CLICK') {//点击事件
&&&&&&&&&&&&&&&&&&&&&&& $EventKey = $postObj-&EventK//菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息
&&&&&&&&&&&&&&&&&&&&&&& $arr[] = $EventK
&&&&&&&&&&&&&&&&&&&&&&& echo $this-&make_xml("text",$arr);
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& }
&&&&&&& }else {
&&&&&&&&&&& echo "this a file for weixin API!";
&&&&&&&&&&&
&&&& * 获取access_token
&&& private function get_access_token()
&&&&&&& $url = "https://api./cgi-bin/token?grant_type=client_credential&appid=".$this-&app_id."&secret=".$this-&app_
&&&&&&& $data = json_decode(file_get_contents($url),true);
&&&&&&& if($data['access_token']){
&&&&&&&&&&& return $data['access_token'];
&&&&&&& }else{
&&&&&&&&&&& return "获取access_token错误";
&&&& * 创建菜单
&&&& * @param $access_token 已获取的ACCESS_TOKEN
&&& public function createmenu($access_token)
&&&&&&& $url = "https://api./cgi-bin/menu/create?access_token=".$access_
&&&&&&& $arr = array(&
&&&&&&&&&&& 'button' =&array(
&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("生活查询"),
&&&&&&&&&&&&&&&&&&& 'sub_button'=&array(
&&&&&&&&&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("天气查询"),
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'type'=&'click',
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'key'=&'VCX_WEATHER'
&&&&&&&&&&&&&&&&&&&&&&& ),
&&&&&&&&&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("身份证查询"),
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'type'=&'click',
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'key'=&'VCX_IDENT'
&&&&&&&&&&&&&&&&&&&&&&& )
&&&&&&&&&&&&&&&&&&& )
&&&&&&&&&&&&&&& ),
&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("轻松娱乐"),
&&&&&&&&&&&&&&&&&&& 'sub_button'=&array(
&&&&&&&&&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("刮刮乐"),
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'type'=&'click',
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'key'=&'VCX_GUAHAPPY'
&&&&&&&&&&&&&&&&&&&&&&& ),
&&&&&&&&&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("幸运大转盘"),
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'type'=&'click',
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'key'=&'VCX_LUCKPAN'
&&&&&&&&&&&&&&&&&&&&&&& )
&&&&&&&&&&&&&&&&&&& )
&&&&&&&&&&&&&&& ),
&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("我的信息"),
&&&&&&&&&&&&&&&&&&& 'sub_button'=&array(
&&&&&&&&&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("关于我"),
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'type'=&'click',
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'key'=&'VCX_ABOUTME'
&&&&&&&&&&&&&&&&&&&&&&& ),
&&&&&&&&&&&&&&&&&&&&&&& array(
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'name'=&urlencode("工作信息"),
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'type'=&'click',
&&&&&&&&&&&&&&&&&&&&&&&&&&& 'key'=&'VCX_JOBINFORMATION'
&&&&&&&&&&&&&&&&&&&&&&& )
&&&&&&&&&&&&&&&&&&& )
&&&&&&&&&&&&&&& )
&&&&&&&&&&& )
&&&&&&& );
&&&&&&& $jsondata = urldecode(json_encode($arr));
&&&&&&& $ch = curl_init();
&&&&&&& curl_setopt($ch,CURLOPT_URL,$url);
&&&&&&& curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
&&&&&&& curl_setopt($ch,CURLOPT_POST,1);
&&&&&&& curl_setopt($ch,CURLOPT_POSTFIELDS,$jsondata);
&&&&&&& curl_exec($ch);
&&&&&&& curl_close($ch);
&&&& * 查询菜单
&&&& * @param $access_token 已获取的ACCESS_TOKEN
&&& private function getmenu($access_token)
&&&&&&& # code...
&&&&&&& $url = "https://api./cgi-bin/menu/get?access_token=".$access_
&&&&&&& $data = file_get_contents($url);
&&&&&&& return $
&&&& * 删除菜单
&&&& * @param $access_token 已获取的ACCESS_TOKEN
&&& private function delmenu($access_token)
&&&&&&& # code...
&&&&&&& $url = "https://api./cgi-bin/menu/delete?access_token=".$access_
&&&&&&& $data = json_decode(file_get_contents($url),true);
&&&&&&& if ($data['errcode']==0) {
&&&&&&&&&&& # code...
&&&&&&&&&&&
&&&&&&& }else{
&&&&&&&&&&&
&&&& *@param type: text 文本类型, news 图文类型
&&&& *@param value_arr array(内容),array(ID)
&&&& *@param o_arr array(array(标题,介绍,图片,超链接),...小于10条),array(条数,ID)
&&& private function make_xml($type,$value_arr,$o_arr=array(0)){
&&&&&&& //=================xml header============
&&&&&&& $con="&xml&
&&&&&&&&&&&&&&&&&&& &ToUserName&&![CDATA[{$this-&fromUsername}]]&&/ToUserName&
&&&&&&&&&&&&&&&&&&& &FromUserName&&![CDATA[{$this-&toUsername}]]&&/FromUserName&
&&&&&&&&&&&&&&&&&&& &CreateTime&{$this-&times}&/CreateTime&
&&&&&&&&&&&&&&&&&&& &MsgType&&![CDATA[{$type}]]&&/MsgType&";
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&& //=================type content============
&&&&&&& switch($type){
&&&&&&&&&&
&&&&&&&&&&& case "text" :&
&&&&&&&&&&&&&&& $con.="&Content&&![CDATA[{$value_arr[0]}]]&&/Content&
&&&&&&&&&&&&&&&&&&& &FuncFlag&{$o_arr}&/FuncFlag&";&&
&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&& case "news" :&
&&&&&&&&&&&&&&& $con.="&ArticleCount&{$o_arr[0]}&/ArticleCount&
&&&&&&&&&&&&&&&&&&&& &Articles&";
&&&&&&&&&&&&&&& foreach($value_arr as $id=&$v){
&&&&&&&&&&&&&&&&&&& if($id&=$o_arr[0]) //判断数组数不超过设置数
&&&&&&&&&&&&&&&&&&& $con.="&item&
&&&&&&&&&&&&&&&&&&&&&&&& &Title&&![CDATA[{$v[0]}]]&&/Title&&
&&&&&&&&&&&&&&&&&&&&&&&& &Description&&![CDATA[{$v[1]}]]&&/Description&
&&&&&&&&&&&&&&&&&&&&&&&& &PicUrl&&![CDATA[{$v[2]}]]&&/PicUrl&
&&&&&&&&&&&&&&&&&&&&&&&& &Url&&![CDATA[{$v[3]}]]&&/Url&
&&&&&&&&&&&&&&&&&&&&&&&& &/item&";
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& $con.="&/Articles&
&&&&&&&&&&&&&&&&&&&& &FuncFlag&{$o_arr[1]}&/FuncFlag&";&&
&&&&&&&&&&&
&&&&&&& } //end switch
&&&&&&&& //=================end return============
&&&&&&& $con.="&/xml&";
&&&&&&& return $
&&& private function checkSignature()
&&&&&&& $signature = $_GET["signature"];
&&&&&&& $timestamp = $_GET["timestamp"];
&&&&&&& $nonce = $_GET["nonce"];&&&&
&&&&&&&&&&&&&&&&
&&&&&&& $token = TOKEN;
&&&&&&& $tmpArr = array($token, $timestamp, $nonce);
&&&&&&& sort($tmpArr);
&&&&&&& $tmpStr = implode( $tmpArr );
&&&&&&& $tmpStr = sha1( $tmpStr );
&&&&&&& if( $tmpStr == $signature ){
&&&&&&&&&&&
&&&&&&& }else{
&&&&&&&&&&&
希望本文所述对大家基于PHP的微信开发有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具当前位置: >
微信自定义菜单如何加表情符号
20:36 来源/作者:懒人模板 分类: 
我们先看下微信自定义菜单加符号以后效果:
是不是这样加了符号以后更加图文并茂哈。其实很简单的,不用懂任何技术都可以自己轻松搞定哈。
我们打开这个网站:& 然后在网页找到如下地方:
选择代码表中的softbank的代码,其他的都不用看。
第三步:在微信自定义菜单栏这样填写:
注意用小写字母哦,前面加个斜线\, 去掉+
最后大功告成,不用懂技术,就可以自己轻松搞定。
* 懒人模板承诺:本站所有资源免费下载,无病毒,无弹窗,无干扰链接!
猜你也喜欢看这些 ??????
这些是最新的 ??????
我们一直在进步
日 懒人模板官网论坛上线!
日 微信贺卡源码频道上线!
日 手机单页专题频道上线!
微信游戏源码频道上线!
05年3月10日 手机单页专题频道上线!
10月18日 懒人模板手机版正式上线!
8月21日 关键词“wap模板”首页排名前一!
8月17日 关键词“手机模板”首页排名前四!
08月12日 关键词“手机wap网站模板”首页排名第一!
快捷导航:}

我要回帖

更多关于 公众号自定义菜单客服 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信