亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現微信模擬登陸并給用戶發送消息的方法【文字,圖片,圖文】

2024-05-04 23:58:23
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現微信模擬登陸并給用戶發送消息的方法。分享給大家供大家參考,具體如下:

<?php/*原作者:https://github.com/itziy/wechat修改:Server getUserFakeid函數 獲取fakeid的正則匹配公式調用方式簡單說明: $arr = array(  'account' => '公眾平臺帳號',  'password' => '密碼');$w = new Weixin($arr);$w->getAllUserInfo();//獲取所有用戶信息$w->getUserInfo($groupid, $fakeid);//獲取所有用戶信息,如果默認分組,則$groupid傳0$w->sendMessage('群發內容'); //群發給所有用戶$w->sendMessage('群發內容',$userId); //群發給特定用戶,這里的$userId就是用戶的fakeid,數組方式傳遞*/$w = new Weixin(array('account'=>'771948524@qq.com','password'=>'1259012345'));$w->sendMessage('hello', 'oXLujjp9y1311QldQKht7iyq83RM');exit;class Weixin {  public $userFakeid;//所有粉絲的fakeid  private $_account;//用戶名  private $_password;//密碼  private $url;//請求的網址  private $send_data;//提交的數據  private $getHeader = 0;//是否顯示Header信息  private $token;//公共帳號TOKEN  private $host = 'mp.weixin.qq.com';//主機  private $origin = 'https://mp.weixin.qq.com';  private $referer;//引用地址  private $cookie;  private $pageSize = 100000;//每頁用戶數(用于讀取所有用戶)  private $userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0';  public function __construct($options){    $this->_account = isset($options['account'])?$options['account']:'';    $this->_password = isset($options['password'])?$options['password']:'';    $this->login();  }  //登錄  private function login(){    $url = 'https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN';    $this->send_data = array(      'username' => $this->_account,      'pwd' => md5($this->_password),      'f' => 'json'    );    $this->referer = "https://mp.weixin.qq.com/";    $this->getHeader = 1;    $result = explode("/n",$this->curlPost($url));    //print_r($result);exit;    foreach ($result as $key => $value) {      $value = trim($value);      if (preg_match('/token=(/d+)/i', $value,$match)){        //獲取token        $this->token = trim($match[1]);      }      if (preg_match('/"ret":(.*)/i', $value,$match)){//獲取token        switch ($match[1]) {          case -1:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"系統錯誤")));          case -2:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"帳號或密碼錯誤")));          case -3:            die(urldecode(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>urlencode("密碼錯誤")))));          case -4:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"不存在該帳戶")));          case -5:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"訪問受限")));          case -6:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"需要輸入驗證碼")));          case -7:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"此帳號已綁定私人微信號,不可用于公眾平臺登錄")));          case -8:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"郵箱已存在")));          case -32:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"驗證碼輸入錯誤")));          case -200:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"因頻繁提交虛假資料,該帳號被拒絕登錄")));          case -94:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"請使用郵箱登陸")));          case 10:            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"該公眾會議號已經過期,無法再登錄使用")));          case 0:            //$this->userFakeid = $this->getUserFakeid();            break;        }      }      if(preg_match('/^set-cookie:[/s]+([^=]+)=([^;]+)/i', $value,$match)){//獲取cookie        $this->cookie .=$match[1].'='.$match[2].'; ';      }    }  }  //單發消息  private function send($fakeid,$content){    $url = 'https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN';    $this->send_data = array(        'type' => 1,        'f' => 'json',        'action' => 'sync',        'content' => $content,        'tofakeid' => $fakeid,        'token' => $this->token,        'ajax' => 1,      );    $this->referer = 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token='.$this->token.'&fromfakeid='.$fakeid.'&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN';    return $this->curlPost($url);  }  //單發消息  private function sendimg($fakeid,$mediaid){    $url = 'https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN';    $this->send_data = array(        'type' => 2,        'f' => 'json',        'action' => 'sync',        'tofakeid' => $fakeid,        'token' => $this->token,        'ajax' => 1,        'file_id'=>$mediaid,        'fileid'=>$mediaid,      );    $this->referer = 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token='.$this->token.'&fromfakeid='.$fakeid.'&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN';    return $this->curlPost($url);  }  //群發消息  public function sendMessage($content='',$userId='') {    if(!empty($userId)){      $json = json_decode($this->sendimg($userId,'304019426'));      /*if($json->ret!=0){        $errUser[] = $v;      }*/      /*foreach($userId as $v){        $json = json_decode($this->send($v,$content));        if($json->ret!=0){          $errUser[] = $v;        }      }*/    }else{      foreach($this->userFakeid as $v){        $json = json_decode($this->send($v['fakeid'],$content));        if($json->ret!=0){          $errUser[] = $v['fakeid'];        }      }    }    //共發送用戶數    //$count = count($this->userFakeid);    //發送失敗用戶數    //$errCount = count($errUser);    //發送成功用戶數    //$succeCount = $count-$errCount;    /*$data = array(      'status'=>0,      'count'=>$count,      'succeCount'=>$succeCount,      'errCount'=>$errCount,      'errUser'=>$errUser    );    return json_encode($data);*/  }  //獲取所有用戶信息  public function getAllUserInfo(){    foreach($this->userFakeid as $v){      $info[] = $this->getUserInfo($v['groupid'],$v['fakeid']);    }    return $info;  }  //獲取用戶信息  public function getUserInfo($groupId,$fakeId){    $url = "https://mp.weixin.qq.com/cgi-bin/getcontactinfo?t=ajax-getcontactinfo&lang=zh_CN&fakeid={$fakeId}";    $this->getHeader = 0;    $this->referer = 'https://mp.weixin.qq.com/cgi-bin/contactmanagepage?token='.$this->token.'&t=wxm-friend&lang=zh_CN&pagesize='.$this->pageSize.'&pageidx=0&type=0&groupid='.$groupId;    $this->send_data = array(      'token'=>$this->token,      'ajax'=>1    );    $message_opt = $this->curlPost($url);    return $message_opt;  }  //獲取所有用戶fakeid  private function getUserFakeid(){    ini_set('max_execution_time',600);    $pageSize = 100;    $this->referer = "https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token={$this->token}";    $url = "https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize={$pageSize}&pageidx=0&type=0&groupid=0&token={$this->token}&lang=zh_CN";    $user = $this->vget($url);    //print_r($user);exit;    //$preg = "/"id":(/d+),"nick_name"/";    //preg_match_all($preg,$user,$b);    $user = str_replace(array(" "," ","/t","/n","/r"), '', $user);    preg_match_all('%id:"(.*?)",%si', $user, $b);    $i = 0;    foreach($b[1] as $v){      $arr[$i]['fakeid'] = $v;      $arr[$i]['groupid'] = 0;      $i++;    }    return $arr;  }  /**   * curl模擬登錄的post方法   * @param $url request地址   * @param $header 模擬headre頭信息   * @return json   */  private function curlPost($url) {    $header = array(      'Accept:*/*',      'Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3',      'Accept-Encoding:gzip,deflate,sdch',      'Accept-Language:zh-CN,zh;q=0.8',      'Connection:keep-alive',      'Host:'.$this->host,      'Origin:'.$this->origin,      'Referer:'.$this->referer,      'X-Requested-With:XMLHttpRequest'    );    $curl = curl_init(); //啟動一個curl會話    curl_setopt($curl, CURLOPT_URL, $url); //要訪問的地址    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //設置HTTP頭字段的數組    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); //對認證證書來源的檢查    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); //從證書中檢查SSL加密算法是否存在    curl_setopt($curl, CURLOPT_USERAGENT, $this->userAgent); //模擬用戶使用的瀏覽器    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); //使用自動跳轉    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); //自動設置Referer    curl_setopt($curl, CURLOPT_POST, 1); //發送一個常規的Post請求    curl_setopt($curl, CURLOPT_POSTFIELDS, $this->send_data); //Post提交的數據包    curl_setopt($curl, CURLOPT_COOKIE, $this->cookie); //讀取儲存的Cookie信息    curl_setopt($curl, CURLOPT_TIMEOUT, 30); //設置超時限制防止死循環    curl_setopt($curl, CURLOPT_HEADER, $this->getHeader); //顯示返回的Header區域內容    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //獲取的信息以文件流的形式返回    $result = curl_exec($curl); //執行一個curl會話    curl_close($curl); //關閉curl    return $result;  }  private function vget($url){ // 模擬獲取內容函數    $header = array(        'Accept: */*',        'Connection: keep-alive',        'Host: mp.weixin.qq.com',        'Referer: '.$this->referer,        'X-Requested-With: XMLHttpRequest'    );    $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0';    $curl = curl_init(); // 啟動一個CURL會話    curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //設置HTTP頭字段的數組    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在    curl_setopt($curl, CURLOPT_USERAGENT, $useragent); // 模擬用戶使用的瀏覽器    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer    curl_setopt($curl, CURLOPT_HTTPGET, 1); // 發送一個常規的GET請求    curl_setopt($curl, CURLOPT_COOKIE, $this->cookie); // 讀取上面所儲存的Cookie信息    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環    curl_setopt($curl, CURLOPT_HEADER, $this->getHeader); // 顯示返回的Header區域內容    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回    $tmpInfo = curl_exec($curl); // 執行操作    if (curl_errno($curl)) {      // echo 'Errno'.curl_error($curl);    }    curl_close($curl); // 關閉CURL會話    return $tmpInfo; // 返回數據  }}

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
蜜月aⅴ免费一区二区三区| 欧美视频在线观看 亚洲欧| 97在线视频免费观看| 亚洲第一区在线| 91精品国产色综合久久不卡98| 欧美色xxxx| 久久久久北条麻妃免费看| 日韩精品在线观看一区二区| 亚洲成av人乱码色午夜| 97超碰蝌蚪网人人做人人爽| 国产91在线高潮白浆在线观看| 国产福利精品在线| 黑人巨大精品欧美一区二区| 国产91成人video| yellow中文字幕久久| 视频在线观看一区二区| 亚洲第一精品久久忘忧草社区| 欧美又大粗又爽又黄大片视频| 欧美日韩国产123| 久久久久久91香蕉国产| 国产精品老女人视频| 欧美床上激情在线观看| 一区二区在线视频| 欧美性猛交xxxx富婆| 久久精品人人爽| 欧美日韩国产成人高清视频| 欧美理论片在线观看| 国产不卡在线观看| 亚洲一区中文字幕在线观看| 欧美黄色片视频| 国产欧美精品va在线观看| 国产日韩精品在线观看| 欧美大尺度激情区在线播放| 日本在线精品视频| 国产亚洲人成网站在线观看| 国产精品免费小视频| 日韩欧美国产成人| 欧美日韩xxx| 国产精品高精视频免费| 亚洲一区二区三区777| 成人在线小视频| 欧美丝袜一区二区三区| 国产精自产拍久久久久久| 欧美xxxx综合视频| 国产一区二区黑人欧美xxxx| 在线观看欧美日韩国产| 国产精品久久久久免费a∨| 日韩免费观看视频| 欧美国产在线电影| 精品成人国产在线观看男人呻吟| 亚洲精品电影网站| 久久久在线视频| 欧美激情手机在线视频| 亚洲精品美女久久久| 奇米影视亚洲狠狠色| 日韩亚洲精品视频| 亚洲欧美日韩一区二区三区在线| 日韩高清av一区二区三区| 亚洲伦理中文字幕| 国产精品第一页在线| 国产一区视频在线播放| 亚洲欧洲在线视频| 国产69精品久久久久99| 欧美一级高清免费| 国产精品久久久久久久av大片| 欧美成人午夜免费视在线看片| 国产91精品高潮白浆喷水| 91精品视频在线免费观看| 亚洲综合一区二区不卡| 亚洲激情免费观看| 亚洲自拍av在线| 亚洲丝袜在线视频| 91国产精品91| 2019国产精品自在线拍国产不卡| 亚洲天堂av网| 九九九热精品免费视频观看网站| 在线观看欧美成人| 97免费视频在线播放| 国产精品永久免费在线| 国产精品成人一区二区三区吃奶| 色偷偷噜噜噜亚洲男人| 精品亚洲一区二区三区在线观看| 欧美国产日韩一区二区| 国产精品夫妻激情| 亚洲综合第一页| 欧美亚洲国产视频小说| 激情av一区二区| 亚洲精品短视频| 亚洲美女精品久久| 欧美日本国产在线| 国产美女精品视频免费观看| 国产精品久久久久久久久免费看| 国产69精品99久久久久久宅男| 国内伊人久久久久久网站视频| 久久久在线视频| 中文欧美在线视频| www.久久久久| 国产精品吹潮在线观看| 91在线观看免费网站| 精品亚洲一区二区三区在线播放| 久色乳综合思思在线视频| 成人黄在线观看| 国产精品丝袜久久久久久高清| 91精品国产综合久久久久久蜜臀| 国产精品美女主播在线观看纯欲| 夜夜躁日日躁狠狠久久88av| 亚洲性视频网址| 亚洲精品suv精品一区二区| 国产日韩欧美91| 国产日韩专区在线| 精品亚洲精品福利线在观看| 久久99视频免费| 国产亚洲美女久久| 欧美成人黑人xx视频免费观看| 欧美综合国产精品久久丁香| 国产精品久久久av久久久| 一区二区三区日韩在线| 亚洲国产精品久久久久| 欧美综合国产精品久久丁香| 国产精品一区二区三区成人| www.日韩欧美| 欧美成人精品h版在线观看| 欧美精品video| 国产福利视频一区二区| 国产玖玖精品视频| 日韩在线视频播放| 国产精品私拍pans大尺度在线| 亚洲自拍偷拍色图| 国产福利成人在线| 久久天天躁狠狠躁夜夜爽蜜月| 欧美精品做受xxx性少妇| 亚洲女人被黑人巨大进入al| 欧美激情第一页xxx| 中文字幕在线观看日韩| 中文字幕欧美日韩va免费视频| 日韩亚洲欧美中文高清在线| 成人激情电影一区二区| 最近中文字幕mv在线一区二区三区四区| 久久男人av资源网站| 亚洲国产精彩中文乱码av在线播放| 日本一区二三区好的精华液| 日韩欧美中文第一页| 久久久在线免费观看| 91av在线播放视频| 国产精品第七十二页| 日本欧美黄网站| 久久中文字幕视频| 国产精品尤物福利片在线观看| 欧美成人免费全部| 国产精品一区二区久久精品| 欧美夫妻性生活视频| 欧美美最猛性xxxxxx| 成人a视频在线观看| 久久精品视频99| 国产日韩视频在线观看| 热99精品只有里视频精品| 亚洲色无码播放| 91精品国产高清| 九九九热精品免费视频观看网站| 亚洲跨种族黑人xxx| 日韩av综合中文字幕| 国产精品久久久久久久7电影| 国产精品免费网站| 欧美日韩国产专区|