微信接口说明只是简单的一句话带过:“通过POST一个特定结构体,实现在微信客户端创建自定义菜单。”
实在令人摸不着头脑, 网上找的代码总是 ”{“errcode”:40001,”errmsg”:”invalid credential”}”。
后台发现token和access_token原来是不同的概念,token是在微信后台选择开发模式的时候填写的,而access_token则是通过接口调用生成的。调用的语句是:
- https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
结果会返回一个json格式的access_toke值。注意 json_decode()解析json后的结果是对象,原来以为是数组呢,又长见识了。。所以access_token 是 $weixindata->access_token 而不是$weixindata['access_token']。
如果你不想麻烦也可以到以下网址提交生成你的菜单。
- http://www.xjabc.net/weixinjiekoukaifa/menu.php
微信菜单并不是在客户打开微信的时候实时生成的,而已运行一次代码把数据提交到微信后台的,说白了,微信平台连做一个提交表单的工作都省略了,再次bs一下微信平台,体验实在不是一般烂。
<?php
header(“Content-type: text/html; charset=utf-8″);
$APPID=APPID;
$APPSECRET=APPSECRET;
$jsondata=file_get_contents(“https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=”.$APPID.”&secret=”.$APPSECRET);
$weixindata=json_decode($jsondata);
$ACCESS_TOKEN=$weixindata->access_token;
$data = ‘{
“button”:[
{
"type":"click",
"name":"获取密码1",
"key":"get_password"
},
{
"type":"click",
"name":"锁定账户",
"key":"lock_acount"
},
{
"type":"click",
"name":"解锁账户",
"key":"unlock_acount"
}]
}’;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$ACCESS_TOKEN}”);
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);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
echo ‘Errno’.curl_error($ch);
}
curl_close($ch);
var_dump($tmpInfo);
?>
祝你好运
分享到:
相关推荐
主要介绍了微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"},非常具有实用价值,需要的朋友可以参考下
string '{"errcode":0,"errmsg":"ok"}' (length=27) 自定义菜单的删除接口会一次性删除所有自定义菜单,请求地址是: https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN。成功后返回数据是...
微信小程序精品Demo:云档(it技术开发)项目原地址:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=9771&page=1&extra=#pid63445
{“errcode”:48001,”errmsg”:”api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]”} 声明:是已认证的服务号 前置说明 网页授权获取用户基本信息:两种 scope 域 ...snsapi_base 不需要用户点同意,直接...
主要介绍了微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法的相关资料,需要的朋友可以参考下
云函数 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -504001, error message Unkown function;...
首先根据微信的接口说明 获取你的 access_token 值 然后 利用文本中给的代码函数 调用 执行 返回 "errcode":0,"errmsg":"ok"} 则成功
第一个坑,获取用户的openid,参数一定要拼在url连接上,否则会报{"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: iil1ba0504ns86 ]"}错误 onLoad: function () { var that = this wx.l
Java版本微信模板消息推送后台代码。适合初学者。小程序模板消息推送开发
首先根据微信的接口说明 获取你的 access_token 值 然后 利用提供的文件直接上传运行,根据显示的返回 参考判断是否正确,如果返回的是 {"errcode":0,"errmsg":"ok"} 则成功。 保证能用
1246200383 and hide = ‘n’ and type=’blog’ ORDER BY date DESC LIMIT 1 Error writing file ‘C:\WINDOWS\TEMP\MY9B6F.tmp’ (Errcode: 28) 解决方法: 1.释放C:\WINDOWS\TEMP\空间 2.因为原表太大,所以查询...
在微信小程序的开发过程中,有时会遇到错误提示`{“baseresponse”:{“errcode”:-80002,”errmsg”:””}}`。这个错误信息表明,当前登录微信开发者工具的微信号并未与该项目关联,因此无法正常访问和操作。为了...
10003是微信蓝牙连接经常碰到的问题,微信官方给出的文档中就简单的描述为“connection fail”,备注为“连接失败”。然而,实际上出现10003的状况有很多,比如根据deviceId连接蓝牙时,蓝牙设备未开启或异常导致...
一:微信小程序一键登录之无法识别json数据 前言: 作为一个运维人员不背锅,谁背呢! 正文: 开发人员和前端人员写好了微信小程序,然后坑出现了,安卓上打死不能一键登录。然后开始排查, 开始从数据上着手...
在微信小程序开发中,生成图片是一项常见的需求,例如用于截图、生成二维码或者数据可视化等场景。`wxmlcanvas-v2` 提供了一种解决方案,它是一个小程序组件库,专门用于帮助开发者在小程序环境中动态生成图片。这个...
本教程主要关注如何利用钉钉机器人实现自动发送自定义信息到钉钉群,这涉及到Java编程和钉钉开放平台的应用。 首先,我们需要理解钉钉机器人的工作原理。钉钉机器人是钉钉开放平台提供的一种自动化服务,它可以接收...
File ‘c:mysqlsharecharsets?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:mysqlsharecharsetsIndex’ file
在IT行业中,推送服务是移动应用开发者经常遇到的一项任务,特别是在需要实时通知用户或进行消息广播的场景下。"个推"(GeTui)是中国的一款专业的智能推送服务,它提供了一整套SDK和API,使得开发者能够方便地在...