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


Posted in PHP onDecember 04, 2019

本文实例讲述了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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
php flush类输出缓冲剖析
Oct 19 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
php生成zip文件类实例
Apr 07 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
PHP超全局变量实现原理及代码解析
Sep 01 PHP
PHP连续签到功能实现方法详解
Dec 04 #PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 #PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 #PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 #PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 03 #PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 #PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 #PHP
You might like
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
PDO实现学生管理系统
2020/03/21 PHP
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
jquery radio 操作代码
2011/03/16 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python3实现生成随机密码的方法
2014/08/23 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
Python递归函数特点及原理解析
2020/03/04 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
银行实习鉴定
2013/12/13 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
大学生毕业求职信
2014/06/12 职场文书
教书育人演讲稿
2014/09/11 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
酒会开场白大全
2015/06/01 职场文书
禁毒心得体会范文
2016/01/15 职场文书
部分武汉产收音机展览
2022/04/07 无线电