专栏首页恩蓝脚本PHP实现发送微博消息功能完整示例

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

本文实例讲述了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程序设计有所帮助。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP实现微信提现功能

    这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现; 

    砸漏
  • PHP实现微信提现功能

    这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现; 

    砸漏
  • PHP接入微信H5支付的方法示例

    调起微信支付,只说明必要参数 请求微信统一下单接口,接口地址:https://api.mch.weixin.qq.com/pay/unifiedorder

    砸漏
  • 利用QQ收藏做检测更新|授权系统|json数据 PHP版

    https://share.weiyun.com/fd5c9441afc13c38b454e3fd88ed3f41

    墨渊
  • 利用QQ收藏做检测更新|授权系统|json数据 PHP版

    https://share.weiyun.com/fd5c9441afc13c38b454e3fd88ed3f41

    V站CEO-西顾
  • 利用QQ收藏做检测更新|授权系统|json数据 PHP版

    Youngxj
  • php使用curl访问https示例

    夏时
  • 快速对接payjq的个人微信扫码支付接口

    在众多个人支付接口的产品中,要寻找一个稳定可靠的产品是比较难的,所幸遇到 payjq ,感觉非常满足自己的需求。推荐大家使用。下边是我在对接payjq的过程中的...

    payjq
  • TP3.2接入极光IM

    一:在common/common文件下function文件中写一个公共调用的方法。

    php007
  • PHP如何获取Cookie并实现模拟登录

    $cookie_jar = dirname(__FILE__).”/pic.cookie”;

    砸漏

扫码关注云+社区

领取腾讯云代金券