消息群發(fā)
微信的群發(fā)消息接口有各種亂七八糟的注意事項(xiàng)及限制,具體請(qǐng)閱讀 微信官方文檔。
發(fā)送消息
以下所有方法均有第二個(gè)參數(shù) $to
用于指定接收對(duì)象:
- 當(dāng)
$to
為整型時(shí)為標(biāo)簽id
- 當(dāng)
$to
為數(shù)組時(shí)為用戶(hù)的openid
列表(至少兩個(gè)用戶(hù)的openid
) - 當(dāng)
$to
為null
時(shí)表示全部用戶(hù)
$officialAccount->broadcasting->sendMessage(\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message, array | int $to = null);
下面的別名方法 sendXXX
都是基于上面 sendMessage
方法的封裝。
文本消息
<?php
// 發(fā)送給全部用戶(hù)
$officialAccount->broadcasting->sendText("大家好!歡迎使用 EasySwoole WeChat。");
// 指定目標(biāo)用戶(hù)
// 至少兩個(gè)用戶(hù)的 openid,必須是數(shù)組。
$officialAccount->broadcasting->sendText("大家好!歡迎使用 EasySwoole WeChat。", [$openid1, $openid2]);
// 指定標(biāo)簽組用戶(hù)
$officialAccount->broadcasting->sendText("大家好!歡迎使用 EasySwoole WeChat。", $tagId); // $tagId 必須是整型數(shù)字
圖文消息
<?php
$officialAccount->broadcasting->sendNews($mediaId);
$officialAccount->broadcasting->sendNews($mediaId, [$openid1, $openid2]);
$officialAccount->broadcasting->sendNews($mediaId, $tagId);
圖片消息
<?php
$officialAccount->broadcasting->sendImage($mediaId);
$officialAccount->broadcasting->sendImage($mediaId, [$openid1, $openid2]);
$officialAccount->broadcasting->sendImage($mediaId, $tagId);
$mediaIds = [
'aaa',
'bbb',
'ccc'
];
$extraParams = [
'recomand' => 'xxx',
'need_open_comment' => 1,
'only_fans_can_comment' => 0
];
$officialAccount->broadcasting->sendImages($mediaIds, 2, [], $extraParams);
語(yǔ)音消息
<?php
$officialAccount->broadcasting->sendVoice($mediaId);
$officialAccount->broadcasting->sendVoice($mediaId, [$openid1, $openid2]);
$officialAccount->broadcasting->sendVoice($mediaId, $tagId);
視頻消息
用于群發(fā)的視頻消息,需要先創(chuàng)建消息對(duì)象。
<?php
// 1. 先上傳視頻素材用于群發(fā):
$video = '/path/to/video.mp4';
$videoMedia = $officialAccount->material->uploadVideo($video, '視頻標(biāo)題', '視頻描述');
// 結(jié)果如下:
//{
// "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",
// "url": "URL"
//}
// 2. 使用上面得到的 media_id 群發(fā)視頻消息
$officialAccount->broadcasting->sendVideo($videoMedia['media_id']);
// to tag
$officialAccount->broadcasting->sendVideo($videoMedia['media_id'], $tagId);
// to user
$officialAccount->broadcasting->sendVideo($videoMedia['media_id'], [$openid1, $openid2]);
卡券消息
<?php
$officialAccount->broadcasting->sendCard($cardId);
// to user
$officialAccount->broadcasting->sendCard($cardId, [$openid1, $openid2]);
// to tag
$officialAccount->broadcasting->sendCard($cardId, $tagId);
發(fā)送預(yù)覽群發(fā)消息給指定的 openId 用戶(hù)
<?php
$officialAccount->broadcasting->previewText($text, $openId);
$officialAccount->broadcasting->previewNews($mediaId, $openId);
$officialAccount->broadcasting->previewVoice($mediaId, $openId);
$officialAccount->broadcasting->previewImage($mediaId, $openId);
$officialAccount->broadcasting->previewVideo($mediaId, $openId);
$officialAccount->broadcasting->previewCard($cardId, $openId);
發(fā)送預(yù)覽群發(fā)消息給指定的微信號(hào)用戶(hù)
$wxanme 是用戶(hù)的微信號(hào),比如:easyswoole
<?php
$officialAccount->broadcasting->previewText($text, $wxname, \EasySwoole\WeChat\OfficialAccount\Broadcasting\Client::PREVIEW_BY_NAME);
$officialAccount->broadcasting->previewNews($mediaId, $wxname, \EasySwoole\WeChat\OfficialAccount\Broadcasting\Client::PREVIEW_BY_NAME);
$officialAccount->broadcasting->previewVoice($mediaId, $wxname, \EasySwoole\WeChat\OfficialAccount\Broadcasting\Client::PREVIEW_BY_NAME);
$officialAccount->broadcasting->previewImage($mediaId, $wxname, \EasySwoole\WeChat\OfficialAccount\Broadcasting\Client::PREVIEW_BY_NAME);
$officialAccount->broadcasting->previewVideo($mediaId, $wxname, \EasySwoole\WeChat\OfficialAccount\Broadcasting\Client::PREVIEW_BY_NAME);
$officialAccount->broadcasting->previewCard($cardId, $wxname, \EasySwoole\WeChat\OfficialAccount\Broadcasting\Client::PREVIEW_BY_NAME);
刪除群發(fā)消息
<?php
$officialAccount->broadcasting->delete($msgId);
$officialAccount->broadcasting->delete($msgId, $index);
查詢(xún)?nèi)喊l(fā)消息發(fā)送狀態(tài)
$officialAccount->broadcasting->status($msgId);