PHP curl模拟登陆微信公众平台并群发微信
1,文件1 weixinFunc.php
weixindenglu.php
<?
require_once('weixinFunc.php');
$user='service-jd@jssdw.com';
$password='******';
$result=init($user,$password);
//echo ($result);
// 开始群发微信
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, 'https://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&token='.$result.'&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0');
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_file); //读取cookie
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch2);
//print_r ($data);
curl_close($ch2);
preg_match_all('/fakeId" : "(d+)"/s',$data,$matches);//带引号
//print_r ($matches);
$new_arr=array_unique($matches[1]);//去除数组中重复的值
foreach($new_arr as $key){
//echo $key."</br>";
weixinpost($key,"测试微信公众平台群发信息到用户功能!!!");
}
?>
3,文件3
weixinpost.php
<?
require_once('weixinFunc.php');
$url = "http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
//$fields = "username=71512398&pwd=**********************&imgcode=&verify=&f=json";
$fields = array('username' => '71512398', 'pwd' => '***********************************', 'imgcode' => '', 'verify' => '', 'f' => 'json');
// 用来存放cookie的文件
$cookie_file = dirname(__FILE__)."/cookie.txt";
// 启动一个CURL会话
$ch = curl_init();
// 要访问的地址
curl_setopt($ch, CURLOPT_URL, $url);
// 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
//模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
// 发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($ch, CURLOPT_POST, 1);
//要传送的所有数据,如果要传送一个文件,需要一个@开头的文件名
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
//连接关闭以后,存放cookie信息的文件名称
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
// 包含cookie信息的文件名称,这个cookie文件可以是Netscape格式或者HTTP风格的header信息。
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
// 设置curl允许执行的最长秒数
//curl_setopt($ch, CURLOPT_TIMEOUT, 6);
// 获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// 执行操作
$result = curl_exec($ch);
//print_r ($result);
if ($result == NULL) {
echo "Error:";
echo curl_errno($ch) . " – " . curl_error($ch) . "";}
// 关闭CURL会话
curl_close($ch);
//echo ($result);
$result=json_decode($result,true);
//print_r ($result);
$result=$result['ErrMsg'];
preg_match_all('/token=(d+)/s',$result,$matches);
$result=$matches[1][0];
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, 'https://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&token='.$result.'&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0');
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_file); //读取cookie
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch2);
//print_r ($data);
curl_close($ch2);
preg_match_all('/fakeId" : "(d+)"/s',$data,$matches);//带引号
//print_r ($matches);
$new_arr=array_unique($matches[1]);//去除数组中重复的值
//foreach($new_arr as $key){
//echo $key."</br>";
weixinpost('937814962',"测试微信公众平台群发信息到用户功能!!!");
//}
?>