PHP实现发送微博消息功能完整示例
吾爱主题
阅读:171
2021-09-18 16:51:00
评论:0
本文实例讲述了PHP实现发送微博消息功能。分享给大家供大家参考,具体如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | <?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程序设计有所帮助。
原文链接:https://www.cnblogs.com/phpfensi/p/3910789.html
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。