首页 > 后端开发 > php教程 > php实现微信公众号无限群发_php技巧

php实现微信公众号无限群发_php技巧

WBOY
发布: 2016-05-16 20:06:44
原创
1228 人浏览过

利用微信客服接口进行各类消息的无限群发

sendAllMsg.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

&#65279;<&#63;php

  /*

    Author:yf

    使用说明:微信公众号无限群发接口,使用实例:  

    $test = new SendAllMsg("你的appId","你的appSecret");

    $test->sendMsgToAll(); //调用群发方法

    注:1.使用条件:认证号或测试号

      2.群发消息内容可为图文、文本、音乐等,$data具体内容参照微信开发文档/客服接口

      3.若用户量过万,需修改getUserInfo(),具体参照信开发文档/获取关注者列表

        

    新手上路,大神们多多指点,谢谢

  */

  interface iSendAllMsg{

    function getData($url); //curl 发送get请求

    function postData($url,$data); //curl 发送post请求

    function getAccessToken();  //在构造方法中已调用该方法来获取access_token,注意它在wx服务器的保存时间7200s

    function sendMsgToAll(); //群发消息方法,发送的消息$data 可自行修改

  }

  class SendAllMsg implements iSendAllMsg{

    private $appId;

    private $appSecret;

    private $access_token;

    //

    public function __construct($appId, $appSecret) {

      $this->appId = $appId;

      $this->appSecret = $appSecret;

      $this->access_token = $this->getAccessToken();

    }

    //

    function getData($url){

      $ch = curl_init();

      curl_setopt($ch, CURLOPT_URL, $url);

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

      curl_setopt($ch, CURLOPT_HEADER, 0);

      curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');

      curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

      $data = curl_exec($ch);

      curl_close($ch);

      return $data;

    }

    //

    function postData($url,$data){

      $ch = curl_init();

      curl_setopt($ch, CURLOPT_URL, $url);

      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

      curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');

      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

      curl_setopt($ch, CURLOPT_AUTOREFERER, 1);

      curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

      $tmpInfo = curl_exec($ch);

      if (curl_errno($ch)) {

        return curl_error($ch);

      }

      curl_close($ch);

      return $tmpInfo;

    }

    //

    function getAccessToken(){

      $url = "https://api.weixin.qq.com/cgi-bin/token&#63;grant_type=client_credential&appid=".$this->appId."&secret=".$this->appSecret;

      $res = $this->getData($url);

      $jres = json_decode($res,true);

      $access_token = $jres['access_token'];

      return $access_token;

    }

    //

    private function getUserInfo(){

      $url = "https://api.weixin.qq.com/cgi-bin/user/get&#63;access_token=".$this->access_token;

      $res = $this->getData($url);

      $jres = json_decode($res,true);

      //print_r($jres);

      $userInfoList = $jres['data']['openid'];

      return $userInfoList;

    }

    function sendMsgToAll(){

      $userInfoList = $this->getUserInfo();

      $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send&#63;access_token=".$this->access_token;

      foreach($userInfoList as $val){

        $data = '{

              "touser":"'.$val.'",

              "msgtype":"text",

              "text":

              {

                "content":"测试一下,抱歉打扰各位"

              }

            }';

        $this->postData($url,$data);

      }

    }

  }

  $test = new SendAllMsg("YOURappId","YOURappSecret");

  $test->sendMsgToall();

    

&#63;>

登录后复制

以上就是本文的全部内容了,希望大家能够喜欢。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板