国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim php教程 PHP源碼 Die einfache Version von PHP implementiert das offizielle WeChat-Konto, um Nachrichten aktiv zu pushen

Die einfache Version von PHP implementiert das offizielle WeChat-Konto, um Nachrichten aktiv zu pushen

Nov 08, 2016 pm 05:33 PM

Simulieren Sie die Anmeldung bei der ?ffentlichen WeChat-Plattform, um den aktiven Nachrichtenversand zu realisieren.

Durchbrechen der Beschr?nkung, dass Abonnementkonten nur eine Nachricht pro Tag senden k?nnen.

Kodierung UTF-8 verwenden
Codeadresse: https://github.com/itziy/wechat
Verwendung:

$arr = array( 'account' => ' ?ffentliches Plattformkonto', 'password' => 'Password' );

$w = new Weixin($arr);

//$w->getAllUserInfo();// Get alle Benutzerinformationen
$w->getUserInfo($groupid, $fakeid);//Informationen eines einzelnen Benutzers abrufen Wenn es sich um die Standardgruppe handelt, wird $groupid 0 übergeben

$w-. >sendMessage( 'Group content'); //Gruppennachrichten an alle Benutzer

$w->sendMessage('Group content',$userId); //Gruppennachrichten an bestimmte Benutzer, die Benutzer-ID ist hier fakeid

Dieses Beispiel dient nur als Referenz und ich bin nicht verantwortlich für etwaige rechtliche Risiken, die sich daraus ergeben. Danke.

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


Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276