如何通过PHP实现自动化在QQ空间发布文章的功能?

更新于
2026-09-27 14:36:15
1阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计953个文字,预计阅读时间需要4分钟。

如何通过PHP实现自动化在QQ空间发布文章的功能?

这是一个使用PHP模拟登录后到QQ空间发送文章的简单程序。需要的朋友可以参考,或提出改进意见:

php

// 请替换以下代码中的用户名和密码$username='your_username';$password='your_password';

// QQ登录地址$login_url='https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=716027609&daid=388&style=33&scope=2&login_state=1&callback_url=http%3A%2F%2Fyour_callback_url&width=305&height=400&use_qlogin=1&use_openid=1';

// QQ空间发送文章的API地址$article_url='https://user.qzone.qq.com/cgi-bin/space_update';

// 初始化cURL会话$ch=curl_init();

// 设置cURL选项curl_setopt($ch, CURLOPT_URL, $login_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array( 'u'=> $username, 'p'=> $password, 'appid'=> 716027609, 'daid'=> 388, 'style'=> 33, 'scope'=> 2, 'login_state'=> 1, 'callback_url'=> 'http://your_callback_url', 'width'=> 305, 'height'=> 400, 'use_qlogin'=> 1, 'use_openid'=> 1)));

// 执行cURL会话$response=curl_exec($ch);

如何通过PHP实现自动化在QQ空间发布文章的功能?

// 关闭cURL会话curl_close($ch);

// 解析登录信息preg_match('/unionid=(\w+)&openid=(\w+)/', $response, $matches);$unionid=$matches[1];$openid=$matches[2];

// 发送文章$article_data=http_build_query(array( 'type'=> '2', 'token'=> 'your_token', 'content'=> '这里是你要发送的文章内容', 'summary'=> '这里是文章的摘要', 'source'=> '这里是你文章的来源', 'title'=> '这里是文章的', 'summary'=> '这里是文章的摘要', 'unionid'=> $unionid, 'openid'=> $openid));

$ch=curl_init();curl_setopt($ch, CURLOPT_URL, $article_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $article_data);$response=curl_exec($ch);curl_close($ch);

// 输出结果echo $response;?>

我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见:www.lai18.com/content/368902.html

1.[代码][PHP]代码

<?php //模拟get post请求函数 www.lai18.com /* 函数说明: 功能:请求方式可以get,post,可以发送的cookie,保存的cookiefile文件 参数:$url-----请求url $referer---来源url $postdata----------用于post请求的数据,''为get请求 $cookie---------发送的cookie $cookiefile-----保存的cookiefile文件 返回值:返回获取的源码 */ function request($url,$referer='',$postdata='',$cookie='',$cookiefile=''){ //header设置 $header=''; $header.="Content-Type: application/x-www-form-urlencodedrn";//内容请求类型 $header.="User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)rn";//浏览器字段 $header.="Referer:".$referer."rn";//设置来源地址 $header .= "Cookie:".$cookie ; //设置cookie,默认空 //请求方法get post,通过$postdata空---get,非空----post if($postdata=='')$method='GET'; else $method='POST'; //定义用于创建流的数组 $opts=array(); $opts['b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789" target="_blank">b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789</a> $_POST['title']---文章标题,不得空 $_POST['content']---文章内容,不得空 */ header('Content-Type:text/html;charset=gb2312'); set_time_limit(0); //ob_end_clean(); //ob_start(); //获取cookie文件,不存在创建,并退出程序 $cookiefile=dirname(__FILE__).'\qq_cookie.txt'; if(!file_exists($cookiefile)){ echo 'qq_cookie.txt不存在,自动创建,请填写抓包的cookie<br>'; file_put_contents($cookiefile,''); die('程序退出'); } //存在,读取cookie else{ $cookie=file_get_contents($cookiefile);//登录cookie //$cookie=urlencode($cookie); } //echo 'cookie:'.$cookie.'<br>'; //构成发表页,post数据等的重要信息 //qq号码 if(emptyempty($_POST['qq'])||preg_match('/[^0-9]/is',$_POST['qq']))die('qq号码有误,必须数字'); else $qq=$_POST['qq'];//qq号 if(emptyempty($_POST['g_tk'])||preg_match('/[^0-9]/is',$_POST['g_tk']))die('post重要参数g_tk不合法,必须数字,请使用抓包的值'); $g_tk=$_POST['g_tk']; $title=emptyempty($_POST['title'])?die('标题不得空'):$_POST['title'];//文章标题 $content=emptyempty($_POST['content'])?die('内容不得空'):$_POST['content'];//内容 $category='个人日记';//分类 $fabiao='b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk='.$g_tk;//发表处理页 $referer='ctc.qzs.qq.com/qzone/v5/toolpages/fp_gbk.html';//来源页 $r1='user.qzone.qq.com/'.$qq.'/infocenter';//列表访问来源页 $postdata='uin='.$qq.'&category='.urlencode($category).'&title='.urlencode($title).'&content='.urlencode($content).'&html='.urlencode('<div class="blog_details_20110920">'.$content.'</div>').'&tweetflag=0&cb_autograph=1&topflag=0&needfeed=0&g_tk='.$g_tk.'&_fp_refer=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%7Chttp%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%3Chttp%3A%2F%2Fuser.qzone.qq.com%2F'.$qq.'%2Fmain';//post数据 //$postdata=urlencode($postdata); //echo $postdata; //发送请求,获取源码 $yuanma=request($fabiao,$r1,$postdata,$cookie,''); if(strpos($yuanma,'发表成功'))echo $title.' 发表成功<br>'; else echo '发表失败:右键查看源码,可以看到具体错误'.$yuanma; ?>

标签:方法

本文共计953个文字,预计阅读时间需要4分钟。

如何通过PHP实现自动化在QQ空间发布文章的功能?

这是一个使用PHP模拟登录后到QQ空间发送文章的简单程序。需要的朋友可以参考,或提出改进意见:

php

// 请替换以下代码中的用户名和密码$username='your_username';$password='your_password';

// QQ登录地址$login_url='https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=716027609&daid=388&style=33&scope=2&login_state=1&callback_url=http%3A%2F%2Fyour_callback_url&width=305&height=400&use_qlogin=1&use_openid=1';

// QQ空间发送文章的API地址$article_url='https://user.qzone.qq.com/cgi-bin/space_update';

// 初始化cURL会话$ch=curl_init();

// 设置cURL选项curl_setopt($ch, CURLOPT_URL, $login_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array( 'u'=> $username, 'p'=> $password, 'appid'=> 716027609, 'daid'=> 388, 'style'=> 33, 'scope'=> 2, 'login_state'=> 1, 'callback_url'=> 'http://your_callback_url', 'width'=> 305, 'height'=> 400, 'use_qlogin'=> 1, 'use_openid'=> 1)));

// 执行cURL会话$response=curl_exec($ch);

如何通过PHP实现自动化在QQ空间发布文章的功能?

// 关闭cURL会话curl_close($ch);

// 解析登录信息preg_match('/unionid=(\w+)&openid=(\w+)/', $response, $matches);$unionid=$matches[1];$openid=$matches[2];

// 发送文章$article_data=http_build_query(array( 'type'=> '2', 'token'=> 'your_token', 'content'=> '这里是你要发送的文章内容', 'summary'=> '这里是文章的摘要', 'source'=> '这里是你文章的来源', 'title'=> '这里是文章的', 'summary'=> '这里是文章的摘要', 'unionid'=> $unionid, 'openid'=> $openid));

$ch=curl_init();curl_setopt($ch, CURLOPT_URL, $article_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $article_data);$response=curl_exec($ch);curl_close($ch);

// 输出结果echo $response;?>

我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见:www.lai18.com/content/368902.html

1.[代码][PHP]代码

<?php //模拟get post请求函数 www.lai18.com /* 函数说明: 功能:请求方式可以get,post,可以发送的cookie,保存的cookiefile文件 参数:$url-----请求url $referer---来源url $postdata----------用于post请求的数据,''为get请求 $cookie---------发送的cookie $cookiefile-----保存的cookiefile文件 返回值:返回获取的源码 */ function request($url,$referer='',$postdata='',$cookie='',$cookiefile=''){ //header设置 $header=''; $header.="Content-Type: application/x-www-form-urlencodedrn";//内容请求类型 $header.="User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)rn";//浏览器字段 $header.="Referer:".$referer."rn";//设置来源地址 $header .= "Cookie:".$cookie ; //设置cookie,默认空 //请求方法get post,通过$postdata空---get,非空----post if($postdata=='')$method='GET'; else $method='POST'; //定义用于创建流的数组 $opts=array(); $opts['b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789" target="_blank">b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789</a> $_POST['title']---文章标题,不得空 $_POST['content']---文章内容,不得空 */ header('Content-Type:text/html;charset=gb2312'); set_time_limit(0); //ob_end_clean(); //ob_start(); //获取cookie文件,不存在创建,并退出程序 $cookiefile=dirname(__FILE__).'\qq_cookie.txt'; if(!file_exists($cookiefile)){ echo 'qq_cookie.txt不存在,自动创建,请填写抓包的cookie<br>'; file_put_contents($cookiefile,''); die('程序退出'); } //存在,读取cookie else{ $cookie=file_get_contents($cookiefile);//登录cookie //$cookie=urlencode($cookie); } //echo 'cookie:'.$cookie.'<br>'; //构成发表页,post数据等的重要信息 //qq号码 if(emptyempty($_POST['qq'])||preg_match('/[^0-9]/is',$_POST['qq']))die('qq号码有误,必须数字'); else $qq=$_POST['qq'];//qq号 if(emptyempty($_POST['g_tk'])||preg_match('/[^0-9]/is',$_POST['g_tk']))die('post重要参数g_tk不合法,必须数字,请使用抓包的值'); $g_tk=$_POST['g_tk']; $title=emptyempty($_POST['title'])?die('标题不得空'):$_POST['title'];//文章标题 $content=emptyempty($_POST['content'])?die('内容不得空'):$_POST['content'];//内容 $category='个人日记';//分类 $fabiao='b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk='.$g_tk;//发表处理页 $referer='ctc.qzs.qq.com/qzone/v5/toolpages/fp_gbk.html';//来源页 $r1='user.qzone.qq.com/'.$qq.'/infocenter';//列表访问来源页 $postdata='uin='.$qq.'&category='.urlencode($category).'&title='.urlencode($title).'&content='.urlencode($content).'&html='.urlencode('<div class="blog_details_20110920">'.$content.'</div>').'&tweetflag=0&cb_autograph=1&topflag=0&needfeed=0&g_tk='.$g_tk.'&_fp_refer=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%7Chttp%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%3Chttp%3A%2F%2Fuser.qzone.qq.com%2F'.$qq.'%2Fmain';//post数据 //$postdata=urlencode($postdata); //echo $postdata; //发送请求,获取源码 $yuanma=request($fabiao,$r1,$postdata,$cookie,''); if(strpos($yuanma,'发表成功'))echo $title.' 发表成功<br>'; else echo '发表失败:右键查看源码,可以看到具体错误'.$yuanma; ?>

标签:方法