微信订阅号英文菜单能在自定义菜单处点击菜单获取用户信息吗

拒绝访问 | www.wangchao.net.cn | 百度云加速
请打开cookies.
此网站 (www.wangchao.net.cn) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3d58d0a6d7914d08-ua98).
重新安装浏览器,或使用别的浏览器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.weixin.qq.com/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.weixin.qq.com/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.weixin.qq.com/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.weixin.qq.com/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
最近更新的内容
常用在线小工具微信订阅号能在自定义菜单处点击菜单获取用户信息吗_百度知道
微信订阅号能在自定义菜单处点击菜单获取用户信息吗
我有更好的答案
需要认证的公众号有权限,同时还需要你的功能有自动获取用户资料的功能才可以,没认证的不可以获取
采纳率:69%
需要开发才行
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。微信订阅号能在自定义菜单处点击菜单获取用户信息吗_百度知道
微信订阅号能在自定义菜单处点击菜单获取用户信息吗
我有更好的答案
需要认证的公众号有权限,同时还需要你的功能有自动获取用户资料的功能才可以,没认证的不可以获取
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。微信订阅号能在自定义菜单处点击菜单获取用户信息吗_百度知道
微信订阅号能在自定义菜单处点击菜单获取用户信息吗
我有更好的答案
需要认证的公众号有权限,同时还需要你的功能有自动获取用户资料的功能才可以,没认证的不可以获取
采纳率:63%
//open.weixin,菜单不是view类型,那么服务器会收到微信服务器的事件通知.qq.com/connect/oauth2/authorize.qq.com/connect/oauth2/authorize;第二,菜单是view类型,也会收到事件通知://open.weixin,里面包含用户的openid,但是跳转到的页面(轻应用)无法获取到openid,那么需要将菜单按钮的链接设置为用户信息授权链接,而且SCOPE类型为snsapi_base(静默授权),跳转到的{REDIRECT_URI}可以获取到用户openid了?appid=" target="_blank">https,授权链接如下:<a href="https第一
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 微信订阅号自定义菜单 的文章

更多推荐

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

点击添加站长微信