摘要:今天就用來上傳圖片到微博,這也是來自的一個問題里面還提到一個版本有種方式實現上傳圖片如果要用這個的話參數必須是,值為經過編碼后的字符串。使用上傳登錄微博獲取就是微博圖片,訪問即可打開圖片這里我上傳的是的廣告圖。
微博是個好圖床,上傳后就可以通過一個url來訪問了。今天就用php來上傳圖片到微博,這也是來自sf的一個問題, 里面還提到一個python版本.
有2種方式實現上傳圖片:
如果要用 http://picupload.service.weib... 這個 URL 的話POST 參數必須是 b64_data,值為經過 base64 編碼后的字符串。
如果要使用 pic1 參數的話,則要用 multipart 方式進行上傳,且 URL 中必須包含 cb 參數,cb 參數的值為 http://weibo.com/aj/static/up... 加(js)時間戳
以下為php實現,感謝這個問題下@consatan 的回復,這里做個總結。
使用base64上傳$cookie = "your cookie";//登錄微博network獲取 $ch = curl_init("http://picupload.service.weibo.com/interface/pic_upload.php" . "?mime=image%2Fjpeg&data=base64&url=0&markpos=1&logo=&nick=0&marks=1&app=miniblog"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_VERBOSE => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Cookie: $cookie"], CURLOPT_POSTFIELDS => ["b64_data" => base64_encode(file_get_contents("./sf.jpg"))], ]); $res = curl_exec($ch); curl_close($ch); print_r($res); /* {"code":"A00006","data":{"count":1,"data":"eyJ1aWQiOjMyNDMwMjYyMzcsImFwcCI6Im1pbmlibG9nIiwiY291bnQiOjEsInRpbWUiOjE0ODc3NDIyMDYuMzIxLCJwaWNzIjp7InBpY18xIjp7IndpZHRoIjo1MTAsInNpemUiOjUyOTMzLCJyZXQiOjEsImhlaWdodCI6MzMwLCJuYW1lIjoicGljXzEiLCJwaWQiOiJjMTRjYTczZGx5MWZjejcxejNyN25qMjBlNjA5NnE1ZiJ9fX0=","pics":{"pic_1":{"width":510,"size":52933,"ret":1,"height":330,"name":"pic_1","pid":"c14ca73dly1fcz71z3r7nj20e6096q5f"}}}} $data=base64_decode($res["data"]["data"]) {"uid":3243026237,"app":"miniblog","count":1,"time":1487742206.321,"pics":{"pic_1":{"width":510,"size":52933,"ret":1,"height":330,"name":"pic_1","pid":"c14ca73dly1fcz71z3r7nj20e6096q5f"}}} */ //c14ca73dly1fcz71z3r7nj20e6096q5f就是微博圖片id,訪問http://ww3.sinaimg.cn/large/c14ca73dly1fcz39h7mo3j20e6096q5f即可打開圖片,這里我上傳的是sf的廣告圖。multipart 方式上傳
$cookie = "your cookie";//登錄微博network獲取 $post_data["pic1"]=new CURLFile(realpath("sf.jpg")); $time=substr(strval(microtime(true) * 1000), 0, 13) . 1; $url="http://picupload.service.weibo.com/interface/pic_upload.php?mime=image%2Fjpeg&data=base64&url=0&markpos=1&logo=&nick=0&marks=1&app=miniblog&cb=http://weibo.com/aj/static/upimgback.html?_wv=5&callback=STK_ijax_".time(); $ch = curl_init($url); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //multipart 方式上傳需要注意傳遞的參數是數組,不是字符串 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); //curl_setopt($ch, CURLOPT_HEADER, 1); // curl_setopt($ch, CURLOPT_NOBODY, 0); $output = curl_exec($ch); $rinfo=curl_getinfo($ch); print_r($output); curl_close($ch); /* {"code":"A20001","data":{"count":2,"data":"eyJ1aWQiOjMyNDMwMjYyMzcsImFwcCI6Im1pbmlibG9nIiwiY291bnQiOjIsInRpbWUiOjE0ODc3MzQzMzUuNDU3LCJwaWNzIjp7InBpY18yIjp7InJldCI6LTIsIm5hbWUiOiJwaWNfMiJ9LCJwaWNfMSI6eyJ3aWR0aCI6NTEwLCJzaXplIjo1MjkzMywicmV0IjoxLCJoZWlnaHQiOjMzMCwibmFtZSI6InBpY18xIiwicGlkIjoiYzE0Y2E3M2RseTFmY3ozOWg3bW8zajIwZTYwOTZxNWYifX19","pics":{"pic_2":{"ret":-2,"name":"pic_2"},"pic_1":{"width":510,"size":52933,"ret":1,"height":330,"name":"pic_1","pid":"c14ca73dly1fcz39h7mo3j20e6096q5f"}}}} */ //從結果中獲取pid即可,這里發現上傳同一張圖片返回的pid是相同的,看來微博有處理,也許是比較文件的md5.
這里需要注意php不同版本上傳圖片的處理,參考這個鏈接 ,傳統上,PHP的cURL支持通過在數組數據中,使用“@+文件全路徑”的語法附加文件,供cURL讀取上傳,但PHP從5.5開始引入了新的CURLFile類用來指向文件,所以做個處理:
if (class_exists("CURLFile")) { $field = array("fieldname" => new CURLFile(realpath($filepath))); } else { $field = array("fieldname" => "@" . realpath($filepath)); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22421.html
摘要:微博圖床對于微博圖床的理解得力于這篇文章利用微博當圖床語言實現。源碼如下上傳圖片到微博圖床圖片文件圖片是否采用方式上傳返回的數據微博提交正則表達式提取返回結果中的數據微博機器人源碼列舉了所要用到的幾個重要,最后還是貼一下機器人的源碼吧。 ? 在2011年的時候,浙大的一位博士生借助微博的開放平臺為他實驗室的一臺飲水機弄了個微博,名喚@浙大CCNT實驗室飲水機,俗稱飲水機娘。當年這...
摘要:僅供學習交流,請勿用于商業用途,并遵守新浪微博相關規定。代碼目錄此微博機器人的實現功能如下模擬登陸新浪微博獲取自動上傳圖片至微博圖床自動發送內容不同的圖文微博通過定時任務,實現周期性發微博任務。 僅供學習交流,請勿用于商業用途,并遵守新浪微博相關規定。 代碼目錄 showImg(https://segmentfault.com/img/bVbqe6W?w=634&h=580); 此微博...
摘要:個月后,我通過個產品達到了萬美元的月收入。其中第一個產品貢獻了收入的以上。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdow...
摘要:本篇文章就來分享一下兩款開箱即用上手容易的圖床相冊程序和在線文件管理器目錄列表程序,由好友開發并維護,非常適合個人站長用作圖床相冊和文件下載分享。雖然說現在照片還有文件存儲等都可以上傳到網盤中,但是國內的網盤與國外的網盤存儲還有點不一樣。以百度網盤與Dropbox對比為例,百度網盤頂多算是一個個人用來存放私人照片和文件的網絡硬盤,如果用來分享的話很容易被百度限制或者取消下載。很多的個人站長為...
閱讀 1988·2021-11-19 09:40
閱讀 1931·2021-09-28 09:36
閱讀 2279·2021-09-22 10:02
閱讀 2724·2019-08-30 14:00
閱讀 1948·2019-08-29 15:31
閱讀 2893·2019-08-29 15:11
閱讀 2905·2019-08-29 13:04
閱讀 1080·2019-08-27 10:55