微信单条图文信息 php,微信公众号开发——消息群发接口实现

favicon.ico摘要:在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力。

在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力。

【注意】1、对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个标签;

2、对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户每月只能接收4条群发消息,多于4条的群发将对该用户发送失败;

3、开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果;

4、群发过程中,微信后台会自动进行图文消息原创校验,请提前设置好相关参数(send_ignore等);

5、开发者可以主动设置 clientmsgid 来避免重复推送。

6、群发接口每分钟限制请求60次,超过限制的请求会被拒绝。

7、图文消息正文中插入自己帐号和其他公众号已群发文章链接的能力。

因为公众平台有每天群发消息的限制(订阅号每天一条,服务号一个月4条),而公众平台为开发者提供了预览接口,每天可调用100次,因此我们在开发时,可以用预览接口发送消息给指定用户,然后在手机端查看排版样式。

预览接口:http请求方式: POST

https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN

群发消息接口实现://群发消息

public function sdMsg()

{

$accessToken = $this->_getWxAccessToken();

echo "$accessToken";

echo "


";

$url = 'https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token='.$accessToken;

//单文本消息

$arr = [

'touser' => '***',//openid 用微信扫描测试号,用户列表下的微信号

'text' => [

'content' => urlencode('心月IT博客公众号群发消息测试'),

],

'msgtype' => 'text',

];

//图片消息

// $arr = [

//    "touser" => "o3anQ1BcB1g2C5jFEgrXb3m7lSps",

//    "image"=>[

//      "media_id"=>"BTgN0opcW3Y5zV_ZebbsD3NFKRWf6cb7OPswPi9Q83fOJHK2P67dzxn11Cp7THat",

//     ],

//    "msgtype"=>"image" ,

// ];

$postJson = urldecode(json_encode($arr));

echo "


";

echo "$postJson";

$res = $this->ch($url, 'post', 'json', $postJson);

dump($res);

}

private function ch($url, $type='get', $res='json', $arr='')

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

if ($type == 'post') {

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);

}

$cnt = curl_exec($ch);

if (curl_errno($ch)) {

return;

}

curl_close($ch);

if ($res == 'json') {

return json_decode($cnt, true);

}

return $cnt;

}

20191004_1570156440852803.jpg

直接调用 sdMsg() 接口就可以实现消息群发。

20191004_1570157151929678.jpg

群发图片消息示例:

20191006_1570365762368534.jpg

文本消息json格式:{

"touser":"OPENID",

"text":{

"content":"CONTENT"

},

"msgtype":"text"

}

群发消息,除了单文本还可以发送其他的消息,其他消息发送的json格式:

图文消息(其中media_id与根据分组群发中的media_id相同):{

"touser":"OPENID",

"mpnews":{

"media_id":"123dsdajkasd231jhksad"

},

"msgtype":"mpnews"

}

语音(其中media_id与根据分组群发中的media_id相同):{

"touser":"OPENID",

"voice":{

"media_id":"123dsdajkasd231jhksad"

},

"msgtype":"voice"

}

图片(其中media_id与根据分组群发中的media_id相同):{

"touser":"OPENID",

"image":{

"media_id":"123dsdajkasd231jhksad"

},

"msgtype":"image"

}

视频(其中media_id与根据分组群发中的media_id相同):{

"touser":"OPENID",

"mpvideo":{  "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",

},

"msgtype":"mpvideo"

}

卡券:{ "touser":"OPENID",

"wxcard":{

"card_id":"123dsdajkasd231jhksad",

"card_ext": "{"code":"","openid":"","timestamp":"1402057159","signature":"017bb17407c8e0058a66d72dcc61632b70f511ad"}"

},

"msgtype":"wxcard"

}

在实际开发中可以参照文本消息,把你要发送的消息类型用数组表示出来,然后在通过json_encode 转换成 json。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值