发送多button消息,收到解析错误回复
{"msgtype":"pjson","subtype":12,"data":{"content":"测试测试测试","buttons":[{"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=5","name":"5分"},{"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=4","name":"4分"},{"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=3","name":"3分"},{"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=2","name":"2分"},{"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=1","name":"1分"}]},"touser":"xxx"}
"msgtype":"pjson"------文档上的样例中没这个参数吧。
lenny在5-3010:57回复
那请问正确的格式应该是什么样子?我是在一个内部文档里面看的,公开文档里面找不到多button消息的说明。
#2{1}sanxi在5-3011:04回复
{
"data":{
"content":string,
"buttons":[
{
"cmd":string
"name":string
},
{
"cmd":string,
"name":string
}
]
},
"subtype":12
}
lenny在5-3011:30回复
文档里面确实是这样写的,但是我觉得这个应该是一个代码片段不是完整的,因为里面连目标用户的字段都没有,服务端拿到根本不知道往哪发啊,所以我仿造其他消息的格式在消息体里面加了一些字段,但是报错了
{
"msgtype":"pjson",
"subtype":12,
"data":{
"content":"测试测试测试",
"buttons":[
{
"cmd":"cmd:http://www.123.com/test?code=abcdef&score=2",
"name":"2分"
},
{
"cmd":"cmd:http://www.123.com/test?code=abcdef&score=1",
"name":"1分"
}
]
},
"touser":"abcd1234"
}
#3{1}sanxi在5-3014:38回复
你从哪里弄来的说明文档?样例都给你了,你还加"msgtype":"pjson"干什么?调接口的时候需要发送对象openid的,就加在接口url后面,有openid参数。
lenny在5-3015:27回复
文档里面没看到send接口有把openid直接get到url上面的用法啊?用下面这样请求:
https://api.yixin.im/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN&openid=目标用户ID
报错{"errcode":41009,"errmsg":"缺少openid"}
{
"subtype":12,
"data":{
"content":"测试测试测试",
"buttons":[
{
"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=2",
"name":"2分"
},
{
"cmd":"cmd:http://www.123.com/test?itsm_code=abcdef&score=1",
"name":"1分"
}
]
}
}
#4sanxi在5-3015:37回复
openid=目标用户ID
本来就是可以主动发送消息的接口,在用户未发起会话的情况下,你去哪getOPENID?调接口前先将openid附上去,再调完整地址。