微信公众平台自定义菜单配置工具的实现

由于JS脚本跨域访问的问题,无法通过jQuery的Ajax方法直接调用微信的API,故采用服务器端转发的方式与微信API交互。

配置自定义菜单须先获取Access Token,前端JS代码如下:

 1         function getAccessToken()
 2         {
 3             var appidParam = $("#appid").val();
 4             var secretParam = $("#secret").val();
 5             var date = new Date();
 6             var url = "get_access_token.php?appid="+appidParam+"&secret="+secretParam+"&time="+date.getTime();
 7             $.get(url, function (data,status) {
 8                 var result = eval("("+data+")");
 9                 $("#info").css("display","block");
10                 if(typeof (result["errcode"])!="undefined")
11                 {
12                     var errorInfo = "错误代码:"+result["errcode"]+";错误信息:"+result["errmsg"];
13                     $("#info").html(errorInfo);
14                     $("#changeBtn").attr("disabled","disabled");
15                 }
16                 else
17                 {
18                     var successInfo = "获取Access Token 成功:" + result["access_token"];
19                     $("#accessToken").val(result["access_token"]);
20                     $("#info").html(successInfo);
21                     $("#changeBtn").removeAttr("disabled");
22                 }
23             })
24
25         }

服务器端使用PHP的curl工具进行转发,代码如下:

 1 $appid = $_GET["appid"];
 2 $secret = $_GET["secret"];
 3 $api_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
 4 $ch = curl_init();
 5 curl_setopt($ch,CURLOPT_URL,$api_url);
 6 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 7 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 8 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 9 $json_result = curl_exec($ch);
10 curl_close($ch);
11 echo $json_result;

利用获取到的 Access Token,下一步可以配置自定义菜单。目前还需要自己编写自定义菜单的JSON,以后有时间会加上可视化界面。通过POST方法向服务器提交JSON的JS代码如下:

 1         function changeButton()
 2         {
 3             var url = "button_manage.php?access_token="+$("#accessToken").val();
 4             var button_json = $("#buttonBody").val();
 5             $.post(url,{"button_json":button_json}, function (data,status) {
 6                 var result = eval("("+data+")");
 7                 if(result["errcode"] == 0)
 8                 {
 9                     alert("配置成功");
10                 }
11                 else
12                 {
13                     alert("配置失败,错误代码:"+result["errcode"]+"错误信息:"+result["errmsg"]);
14                 }
15             })
16         }

服务器端的PHP代码如下:

 1     $access_token = $_GET["access_token"];
 2     $api_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$access_token}";
 3     $button_json = $_POST["button_json"];
 4     $ch = curl_init();
 5     curl_setopt($ch,CURLOPT_URL,$api_url);
 6     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 7     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 8     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 9     curl_setopt($ch, CURLOPT_POST, 1);
10     curl_setopt($ch, CURLOPT_POSTFIELDS, $button_json);
11     $json_result = curl_exec($ch);
12     curl_close($ch);
13     echo $json_result;

实现效果可访问:

http://leo07.sinaapp.com/button_manage.html

时间: 2024-10-11 20:05:20

微信公众平台自定义菜单配置工具的实现的相关文章

微信公众平台自定义菜单开发——创建菜单

自己从不会到最后做出来,所以好东西必须分享,所以我就给大家写一下过程 1.首先必须是成为微信的开发者,这样才有AppId 和AppSecret 2步就是获取access_token 在你的浏览器上输入https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET (注意连接中得appid=APPID&secret=APPSECRET 分别是你自己在微信

微信公众平台自定义菜单及高级接口PHP SDK

本文介绍介绍微信公众平台自定义菜单及高级接口的PHP SDK及使用方法. 作者 方倍工作室 修正记录: 2014.05.03 v1.0 方倍工作室 http://www.cnblogs.com/txw1958/ SDK 源码: 1 /* 2 方倍工作室 http://www.cnblogs.com/txw1958/ 3 CopyRight 2014 www.doucube.com All Rights Reserved 4 */ 5 6 class class_weixin_adv 7 { 8

手把手教会你微信公众平台自定义菜单开发——创建菜单

一如既往的,关于微信公众平台的开发,不算出自大牛的代码,但是简单易懂适合刚入门的朋友. 首先先介绍一下逻辑,因为发现很多朋友都不能看懂微信官方的文档,当然啦,这跟你是否认真看有关的,认真看总能看懂的,废话不说了.此时,我当你已经有一个已经申请到自定义菜单开发权限的微信服务号.首先,你要在后台开发模式下面找到你的AppId 还有 AppSecret并且记下来,然后通过这两个官方发放给你的ID去获取一个ACCESS_TOKEN[官方解释是:第三方访问api资源的票据],稍后会通过这个ACCESS_T

微信公众平台自定义菜单新增扫一扫、发图片、发位置 LBS运作更便捷

今天微信公众平台发布更新,自定义菜单新增扫一扫.发图片.发送位置等功能,这对于有意挖掘微信LBS服务的运营者来说更便捷了,订阅号不用返回微信界面就能扫图.发送图片.调用地理位置,用户体验更友好,自然也提高了黏度,对涨粉也好一些.详细能力如下: 公众号自定义菜单新增扫一扫.发图片.发位置功能 1. 扫码推送事件 用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息. 2. 扫码推送事件,且弹出“消息接收

微信公众平台自定义菜单问题解决

在制作(www.helpqy.com)的过程中,进行微信公众平台的自定义菜单操作,调了很久微信服务器都返回错误代码,提示button size不对.一直怀疑是json格式不对,因为一直是将原始的Json通过加引号的方式变成字符串.后面自定义对象,将对象序列化为json,然后将此json传给服务器,成功自定义菜单.自定义对象的时候需要注意,由于菜单的每一项都可以不同,在需要定义泛型来接纳,并且为了保证泛型能够接纳不同类型,需要定义一个基本类型,然后其它类都继承自此类,泛型也使用这个基本类为基类.

微信公众平台自定义菜单

之前申请了一个订阅号,当准备大张旗鼓的开始创建自定义菜单的时候发现自定义菜单不针对订阅号开放,没有办法,只好再申请服务号,问题又产生了,服务号不针对个人 开放,经过一系列的折腾,不能不说我最后还是申请到了一个服务号(xiaofeiyu_super),还是蛮感谢腾讯审核的那个人的,虽然不知道是哪位,并且之前也给我拒绝过一次. 废话少说,也不再扯些自定义菜单有什么好处,我想对于大多说我们来说,就只是为了好玩,发现有这么个东西,便想着去玩玩.还是开始今天的主题,怎样才能生成自己的 菜单吧.其实对于自定

.Net程序员关于微信公众平台测试账户配置 项目总结

今天项目第一次验收,夜晚吃过晚饭后,想把项目中用到的关于微信配置总结一下,虽然网上关于这方面的资料很多很多,还有官方API,但是总感觉缺点什么,就像期初做这个项目时,各方面找了很久的资料,说说配置吧! 1.你必须有一个微信可以访问的网站,然后有一个公众账户. 2.成为开发者. 上面这个URL填写你的网站的链接,微信服务器会放这个URL推送一些验证信息,具体验证信息,你可以查看官方API,写的很详细,因为我用的是MVC,所以我写了一个类,让控制器继承这个类,源码贴下,大家一看就明白.还有这个URL

PHP玩转微信公众平台自定义接口

从微信公众平台开通自定义回复后,就一直在关注微信接口这一块,很想用自定义回复这块做个站长工具的查询,例如PR查询,备案查询等,输入网址信息,就能自动获取PR,获取备案信息,应该是一个不错的想法.不过以前一直不支持自定义API,只能是一些固定的信息回复.最近微信公众平台终于开放第三方接口了,也就是说,可以根据用户提交的信息,来自定义回复内容,非常方便. 看到了微信的自定义第三方接口的强大后,下面我们来讲讲怎么实现自定义回复. 首先我们进入第三方接口的页面进行注册,地址:http://mp.weix

微信公众号自定义菜单创建

微信公众号自定义菜单的创建步骤 1.找到AppId和AppSecret.自定义菜单申请成功后,在"高级功能"-"开发模式"-"接口配置信息"的最后两项就是: 2.根据AppId和AppSecret,以https get方式获取访问特殊接口所必须的凭证access_token: 3.根据access_token,将json格式的菜单数据通过https post方式提交. 接口调用请求说明 http请求方式:POST(请使用https协议) http