首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP实现发送微博消息功能完整示例

PHP实现发送微博消息功能完整示例

作者头像
砸漏
发布2020-10-20 11:21:11
6030
发布2020-10-20 11:21:11
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

本文实例讲述了PHP实现发送微博消息功能。分享给大家供大家参考,具体如下:

<?php
$cookie_file = dirname(__FILE__)."/weibo.cookie";
$username = '用户名';
$password = '密码';
$userCenter = loginWeibo($username,$password);
echo sendMsg("不知道能不能成功呢!");
function sendMsg($msg){
global $cookie_file,$userCenter;
$posturl = "http://weibo.com/aj/mblog/add?_wv=5&__rnd=".time()."707";
$postdata['text'] = $msg;
$postdata['pic_id'] = "";
$postdata['rank'] = 0;
$postdata['rankid'] = "";
$postdata['_surl'] = "";
$postdata['hottopicid'] = "";
$postdata['location'] = "home";
$postdata['module'] = "stissue";
$postdata['_t'] = 0;
foreach($postdata as $key = $value){
$tmp .= $key."=".$value."&";
}
$post = trim($tmp,"&");
$header = array(
'Host:weibo.com',
'Accept: */*',
'Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3',
'Content-Type:application/x-www-form-urlencoded',
'X-Requested-With:XMLHttpRequest',
'Referer: '.$userCenter,
);
//var_dump($header);exit;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$posturl);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0');
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
$str = curl_exec($ch);
curl_close($ch);
return $str;
}
function loginWeibo($u,$p){
global $cookie_file ;
//$password = sha1(sha1(sha1($p)).$encryption['servertime'].$encryption['nonce']);
$password = $p;
$username = base64_encode($u);
$loginUrl = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543';
$loginData['entry'] = 'sso';
$loginData['gateway'] = '1';
$loginData['from'] = 'null';
$loginData['savestate'] = '30';
$loginData['useticket'] = '0';
$loginData['pagerefer'] = '';
$loginData['vsnf'] = '1';
$loginData['su'] = base64_encode($u);
$loginData['service'] = 'sso';
$loginData['sp'] = $password;
$loginData['sr'] = '1920*1080';
$loginData['encoding'] = 'UTF-8';
$loginData['cdult'] = '3';
$loginData['domain'] = 'sina.com.cn';
$loginData['prelt'] = '0';
$loginData['returntype'] = 'TEXT';
//var_dump($loginData);exit;
$login = json_decode(loginPost($loginUrl,$loginData),true);
//获取微博
get($login['crossDomainUrlList'][0]);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"http://weibo.com");  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);  
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);  
$return = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$info['redirect_url']);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);  
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);  
curl_exec($ch);
curl_close($ch);
return $info['redirect_url'];
}
function loginPost($url,$data){
global $cookie_file ;
//echo $cookie_file ;exit;
$tmp = '';
if(is_array($data)){
foreach($data as $key = $value){
$tmp .= $key."=".$value."&";
}
$post = trim($tmp,"&");
}else{
$post = $data;
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);    
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
$return = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
return $return;
}
function post($url,$data){
global $cookie_file;
$tmp = '';
if(is_array($data)){
foreach($data as $key = $value){
$tmp .= $key."=".$value."&";
}
$post = trim($tmp,"&");
}else{
$post = $data;
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);      
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
$return = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
return $return;
}
function get($url,$getInfo=false){
global $cookie_file;  
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_file);  
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);  
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);      
$return = curl_exec($ch);
$info = curl_getinfo($ch);
if($getInfo)return $info;
curl_close($ch);
return $return;
}
function mp(){
$getRndCode = "http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.15)&_=1403081692608";
@preg_match_all('/\((.*?)\)/is',get($getRndCode,$data),$data);
$encryption = json_decode($data[1][0],true);
return $encryption;
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》及《PHP中json格式数据操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档