博客园Logo
首页
新闻
博问
专区
闪存
班级
代码改变世界
搜索
注册
登录
五哥想要的东西就要靠自己去拿
自定义微信公众号的个性化菜单栏
问题描述:
今天接到一个小任务,要求利用接口来设置不同用户访问微信公众号时显示不同的菜单栏任务,对用户划分人群。第一次接手这样的任务,于是就在网上一顿乱搜,结果搞了半天,浪费了一上午的时间,始终报如下错误:
1
2
3
4
array(2) {
[“errcode”] => int(40001)
[“errmsg”] => string(89) “invalid credential, access_token is invalid or not latest rid: 5faf79a3-00fe0a19-5cca1349”
}
按照报错的提示说,不是有效的access_token或者不是最新的,然后又一直的打印代码查看access_token值,结果并没有发现有不一样的地方。心态崩了~
发现原因:
最后查看官方文档发现,所需要的access_token原来是有两个值,现在使用的这个access_token是这个返回给我的,下面的是一个第三方授权的请求
1
2
KaTeX parse error: Expected '}', got 'EOF' at end of input: …s_token?appid={appid}&secret={KaTeX parse error: Expected 'EOF', got '}' at position 10: appsecret}̲&code={code}&grant_type=authorization_code";
return
t
h
i
s
−
>
h
t
t
p
G
e
t
F
o
r
J
s
o
n
(
this->httpGetForJson(
this−>httpGetForJson(url);
正确的获取access_token应该是请求下面的url
1
2
3
4
a
p
p
I
d
=
appId=
appId=config[‘appid’];
a
p
p
S
e
c
r
e
t
=
appSecret=
appSecret=config[‘appsecret’];
KaTeX parse error: Expected 'EOF', got '&' at position 75: …ient_credential&̲appid='.appId.’&secret=’.$appSecret;
$arr =
t
h
i
s
−
>
h
t
t
p
c
u
r
l
(
this->http_curl(
this−>httpcurl(url,‘get’,‘json’);
通关大道:
复制代码
1 public function getAccessToken(){
2 //先获取access_token
3
a
p
p
I
d
=
appId=
appId=config[‘appid’];
4
a
p
p
S
e
c
r
e
t
=
appSecret=
appSecret=config[‘appsecret’];
5 KaTeX parse error: Expected 'EOF', got '&' at position 75: …ient_credential&̲appid='.appId.’&secret=’.$appSecret;
6 $arr =
t
h
i
s
−
>
h
t
t
p
c
u
r
l
(
this->http_curl(
this−>httpcurl(url,‘get’,‘json’);
7 $access_token = $arr[‘access_token’];
8 return $access_token;
9 }
10
11 //创建菜单
12 public function createMenu(){
13 $access_token = $this->getAccessToken();
14
u
r
l
=
"
h
t
t
p
s
:
/
/
a
p
i
.
w
e
i
x
i
n
.
q
q
.
c
o
m
/
c
g
i
−
b
i
n
/
m
e
n
u
/
c
r
e
a
t
e
?
15
a
c
c
e
s
s
t
o
k
e
n
=
"
.
url = "https://api.weixin.qq.com/cgi-bin/menu/create? 15 access_token=".
url="https://api.weixin.qq.com/cgi−bin/menu/create?15accesstoken=".access_token;
16 $button=array(
17 array(
18 ‘type’=>‘view’,
19 ‘name’=>‘未来科技’,
20 ‘url’=>‘https://www.baidu.com’
21 ),
22 array(
23 ‘name’=>“We*小店”,
24 ‘sub_button’=>array(
25 array(
26 ‘type’=>‘click’,
27 ‘name’=>‘我的订单’,
28 ‘key’=>‘ORDER’
29 ),
30 array(
31 ‘type’=>‘view’,
32 ‘name’=>‘我的中心’,
33 ‘url’=>‘https://www.baidu.com’
34 ),
35 )
36 )
37 );
38 //转化成json的格式
39
a
r
r
a
y
J
s
o
n
=
u
r
l
d
e
c
o
d
e
(
j
s
o
n
e
n
c
o
d
e
(
arrayJson = urldecode(json_encode(
arrayJson=urldecode(jsonencode(array,JSON_UNESCAPED_UNICODE));
40 $res =
t
h
i
s
−
>
h
t
t
p
c
u
r
l
(
this->http_curl(
this−>httpcurl(url,‘post’,‘json’,
a
r
r
a
y
J
s
o
n
)
;
41
d
u
m
p
(
arrayJson); 41 dump(
arrayJson);41dump(res);
42 }
复制代码
成功提示:
1
2
3
4
array(2) {
[“errcode”] => int(0)
[“errmsg”] => string(2) “ok”
}
tip小陷阱:
1.烦人的报错代码:
解决方案:检查菜单栏设置的url是否是有效的url(已备案且能正常访问的链接)
1
2
3
4
array(2) {
[“errcode”] => int(40054)
[“errmsg”] => string(61) “invalid sub button url domain rid: 5faf808f-4e6897ec-0bf2ff16”
}
分类: 微信公众号开发, PHP
标签: 微信公众号
好文要顶 关注我 收藏该文
五哥-coder
关注 - 0
粉丝 - 0
+加关注
00
« 上一篇: 数组函数-1
posted on 2020-11-14 15:04 五哥-coder 阅读(141) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
登录后才能发表评论,立即 登录 或 注册, 访问 网站首页
博客园派送云上免费午餐,AWS注册立享12个月免费套餐
【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】博客园 & 陌上花开HIMMR 给单身的程序员小哥哥助力脱单啦~
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【福利】AWS携手博客园为开发者送免费套餐与抵扣券
【推荐】 阿里云折扣价格返场,错过再等一年
相关博文:
· sql序列号单号
· js-替换“单引号”、“双引号”、“尖括号”
· 信号
· 二号
· 手机号码生成器,最新号段号码库
» 更多推荐…
AWS免费套餐
最新 IT 新闻:
· 手残党福音:不会摘隐形眼镜?这个机器人可以帮你
· 我是如何被职场PUA毁掉的?
· 唯品会的去库存生意,还能玩多久?
· 美团“特价版”横空出世,王兴打响守城之战
· 马斯克终结美国载人航天的“寄俄篱下”
» 更多新闻…
导航
博客园
首页
新随笔
联系
订阅 订阅
管理
统计
随笔 - 6
文章 - 0
评论 - 0
引用 - 0
公告
昵称: 五哥-coder
园龄: 1年3个月
粉丝: 0
关注: 0
+加关注
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
PHP数组(1)
冒泡排序(1)
算法(1)
算法实例(1)
微信公众号(1)
随笔分类
laravel随笔-学习笔记(2)
PHP(2)
算法(1)
算法实例(1)
微信公众号开发(1)
随笔档案
2020年11月(1)
2020年6月(3)
2019年9月(2)
阅读排行榜
- 算法-找出数组中两个元素之和等于给定的目标值(684)
- laravel模板布局(662)
- laravel中利用循环实现隔行换色(248)
- 冒泡排序算法-详解(237)
- 自定义微信公众号的个性化菜单栏(139)
推荐排行榜 - 冒泡排序算法-详解(1)
Powered by:
博客园
Copyright © 2020 五哥-coder
Powered by .NET 5.0.0 on Kubernetes