本文主要介紹微信公眾平臺開發(fā)群發(fā)信息,這裡整理了詳細的資料來說明微信公共平臺群發(fā)信息的流程,有需要的小伙伴可以參考下
1、目的
完成在微信公眾號中群發(fā)訊息。這裡只是完成簡單的文字發(fā)送。也可以發(fā)送語音圖片等,只是發(fā)送數(shù)據(jù)格式不同而已,下面有鏈接,可以查詢數(shù)據(jù)類型的數(shù)據(jù)發(fā)送格式。
2、群發(fā)簡訊的流程
取得測試公眾帳號(有帳號的可以不用測試帳號,不過正式的帳號限制比較多)
用戶關注上面的公眾帳號
-
透過appid和appsecret取得我們的access_token
*??&* - 透過access_token群發(fā)送簡訊
3、取得測試公眾帳號+ 追蹤公眾號碼
1)、公眾測驗帳號取得 訪問上面的連接,選擇“接口測試號碼申請”獲得直接打開http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index透過微信客戶端掃碼登入即可登入。 登入即可取得一個測試公眾帳號的資訊。主要有appId和appsecret兩個參數(shù),這將唯一標示一個公眾號,並且需要將他們作為參數(shù)來獲取使用者的資訊。 、<?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!empty($postStr)){ /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection, the best way is to check the validity of xml by yourself */ libxml_disable_entity_loader(true); $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!empty( $keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } } private function checkSignature() { // you must define TOKEN by yourself if (!defined("TOKEN")) { throw new Exception(‘TOKEN is not defined!‘); } $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rule sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } } ?>然後填寫設定資訊Token (一定要與上面的wx_sample.php中的token一致)、URL(wx_sample.php的位址)
填寫回呼的域名:
域名是上面配置的根域名,假如你上面“接口配置信息” 填寫的url 為zcr.sinaaappc.com/wx_sample.php,這裡只要填寫zcr.sinaaappc .com? 就可以了。
如果你的網(wǎng)址沒有被列入過黑名單,就會在頂部出現(xiàn)
注意:
1、這裡填寫的是域名(是一個字串),而不是URL,因此請勿加http://等協(xié)議頭;
2、授權(quán)回呼域名配置規(guī)格為全域名,例如需要網(wǎng)頁授權(quán)的域名為:www.qq.com,配置以後此域名下面的頁面http://www.qq.com/music.html?、 ?http://www.qq .com/login.html?都可以進行OAuth2.0鑑定。但ttp://pay.qq.com? 、http://music.qq.com 、 http://qq.com無法進行OAuth2.0鑑權(quán)
到這裡,我們就完成了公眾號測試帳號的取得和配置,已經(jīng)用戶關注微信公眾號。
4、透過appid和appsecret取得我們的access_token*??&*
access_token是公眾號的全域唯一票據(jù),公眾號呼叫各介面時都需使用access_token。開發(fā)者需要進行妥善保存。 access_token的儲存至少要保留512個字元空間。 access_token的有效期限目前為2小時,需定時刷新,重複取得將導致上次取得的access_token失效。 取得方法:http請求方式: GEThttps://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
是否必須 | 說明 | |
---|---|---|
是 | 取得access_token填入client_credential | |
是 | 第三方使用者唯一憑證 | |
是 | 第三方使用者唯一憑證金鑰,即appsecret |
說明 | ||
---|---|---|
取得的憑證 | ||
*??&*憑證有效時間,單位:秒 |
參數(shù) | 是否必須 | 說明 |
---|---|---|
filter | 是 | 用于設定圖文消息的接收者 |
is_to_all | 否 | 用于設定是否向全部用戶發(fā)送,值為true或false,選擇true該消息群發(fā)給所有用戶,選擇false可根據(jù)group_id發(fā)送給指定群組的用戶 |
group_id | 否 | 群發(fā)到的分組的group_id,參加用戶管理中用戶分組接口,若is_to_all值為true,可不填寫group_id |
mpnews | 是 | 用于設定即將發(fā)送的圖文消息 |
media_id | 是 | 用于群發(fā)的消息的media_id |
msgtype | 是 | 群發(fā)的消息類型,圖文消息為mpnews,文本消息為text,語音為voice,音樂為music,圖片為image,視頻為video,卡券為wxcard |
title | 否 | 消息的標題 |
description | 否 | 消息的描述 |
thumb_media_id | 是 | 視頻縮略圖的媒體ID |
例子:發(fā)送給所有人
url:
https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=KBoNONaJZ4-KhafQVJoQ6VBX0F-bls7nAsJBn8Fy7GLwav4Be1lRJcob1RHH6wW35IxxFwkJnZfnc-On9EQITg3oxEWUw7O2YyVW9naDknu6PQX9fnSmQcr8ojTK8Ug-HDTcAAABXN
發(fā)送的json數(shù)據(jù):發(fā)送給所有人
{ "filter":{ "is_to_all":true }, "text":{ "content":"CONTENT" }, "msgtype":"text" }
返回數(shù)據(jù):
{ "errcode": 0, "errmsg": "send job submission success", "msg_id": 1000000003 }
參數(shù)意義:
參數(shù) | 說明 |
---|---|
type | 媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb),圖文消息為news |
errcode | 錯誤碼 |
errmsg | 錯誤信息 |
msg_id | 消息發(fā)送任務的ID |
msg_data_id | 消息的數(shù)據(jù)ID,該字段只有在群發(fā)圖文消息時,才會出現(xiàn)??梢杂糜谠趫D文分析數(shù)據(jù)接口中,獲取到對應的圖文消息的數(shù)據(jù),是圖文分析數(shù)據(jù)接口中的msgid字段中的前半部分,詳見圖文分析數(shù)據(jù)接口中的msgid字段的介紹。 |
錯誤碼及其以及查詢:
使用postman模擬https請求發(fā)送如下圖所示:
2)根據(jù)OpenID列表群發(fā)【訂閱號不可用,服務號認證后可用】
發(fā)送的http請求url:(注意:和上面的不同)
http請求方式: POST
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
數(shù)據(jù)格式:
{ "touser":[ "OPENID1", "OPENID2" ], "msgtype": "text", "text": { "content": "hello from boxer."} }
其中 OPENID1和OPENID2是我們要發(fā)送的微信用戶openId(用戶的唯一標示)。
例子:
發(fā)送"oF3PcsnsrMiJzEwalZZbAfWQpxCI","oF3PcshH1CUIhR_WYau6swUiPzlw" 兩個用戶。
內(nèi)容為:hello from boxer.歡迎來到百度
url:
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=wRyTbnsiu18ssEhMPLf4bDfeT-Bt6e6tgR4CQGVLBipRcyJPkdAKPYfM6-qkKuHUN8uRKJh6Xvm0OuAdFgqOo8Ru8hoDxl-cGc9bh-ezJb2ZUcJSnQk2s416zI8kbEOfOGYdAFARJB
json數(shù)據(jù):
{ "touser":[ "oF3PcsnsrMiJzEwalZZbAfWQpxCI", "oF3PcshH1CUIhR_WYau6swUiPzlw" ], "msgtype": "text", "text": { "content": "hello from boxer.<a href=‘http://ipnx.cn/‘>歡迎希沃學院</a>"} }
返回數(shù)據(jù):
{ "errcode": 0, "errmsg": "send job submission success", "msg_id": 3147483654 }
使用postman模擬發(fā)送請求如下:
微信號接收到的內(nèi)容:
更多微信公眾平臺開發(fā)-群發(fā)訊息相關文章請關注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)