摘要:今天就用來上傳圖片到微博,這也是來自的一個(gè)問題里面還提到一個(gè)版本有種方式實(shí)現(xiàn)上傳圖片如果要用這個(gè)的話參數(shù)必須是,值為經(jīng)過編碼后的字符串。使用上傳登錄微博獲取就是微博圖片,訪問即可打開圖片這里我上傳的是的廣告圖。
微博是個(gè)好圖床,上傳后就可以通過一個(gè)url來訪問了。今天就用php來上傳圖片到微博,這也是來自sf的一個(gè)問題, 里面還提到一個(gè)python版本.
有2種方式實(shí)現(xiàn)上傳圖片:
如果要用 http://picupload.service.weib... 這個(gè) URL 的話POST 參數(shù)必須是 b64_data,值為經(jīng)過 base64 編碼后的字符串。
如果要使用 pic1 參數(shù)的話,則要用 multipart 方式進(jìn)行上傳,且 URL 中必須包含 cb 參數(shù),cb 參數(shù)的值為 http://weibo.com/aj/static/up... 加(js)時(shí)間戳
以下為php實(shí)現(xiàn),感謝這個(gè)問題下@consatan 的回復(fù),這里做個(gè)總結(jié)。
使用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 方式上傳需要注意傳遞的參數(shù)是數(shù)組,不是字符串 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"}}}} */ //從結(jié)果中獲取pid即可,這里發(fā)現(xiàn)上傳同一張圖片返回的pid是相同的,看來微博有處理,也許是比較文件的md5.
這里需要注意php不同版本上傳圖片的處理,參考這個(gè)鏈接 ,傳統(tǒng)上,PHP的cURL支持通過在數(shù)組數(shù)據(jù)中,使用“@+文件全路徑”的語法附加文件,供cURL讀取上傳,但PHP從5.5開始引入了新的CURLFile類用來指向文件,所以做個(gè)處理:
if (class_exists("CURLFile")) { $field = array("fieldname" => new CURLFile(realpath($filepath))); } else { $field = array("fieldname" => "@" . realpath($filepath)); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22421.html
摘要:微博圖床對于微博圖床的理解得力于這篇文章利用微博當(dāng)圖床語言實(shí)現(xiàn)。源碼如下上傳圖片到微博圖床圖片文件圖片是否采用方式上傳返回的數(shù)據(jù)微博提交正則表達(dá)式提取返回結(jié)果中的數(shù)據(jù)微博機(jī)器人源碼列舉了所要用到的幾個(gè)重要,最后還是貼一下機(jī)器人的源碼吧。 ? 在2011年的時(shí)候,浙大的一位博士生借助微博的開放平臺(tái)為他實(shí)驗(yàn)室的一臺(tái)飲水機(jī)弄了個(gè)微博,名喚@浙大CCNT實(shí)驗(yàn)室飲水機(jī),俗稱飲水機(jī)娘。當(dāng)年這...
摘要:僅供學(xué)習(xí)交流,請勿用于商業(yè)用途,并遵守新浪微博相關(guān)規(guī)定。代碼目錄此微博機(jī)器人的實(shí)現(xiàn)功能如下模擬登陸新浪微博獲取自動(dòng)上傳圖片至微博圖床自動(dòng)發(fā)送內(nèi)容不同的圖文微博通過定時(shí)任務(wù),實(shí)現(xiàn)周期性發(fā)微博任務(wù)。 僅供學(xué)習(xí)交流,請勿用于商業(yè)用途,并遵守新浪微博相關(guān)規(guī)定。 代碼目錄 showImg(https://segmentfault.com/img/bVbqe6W?w=634&h=580); 此微博...
摘要:個(gè)月后,我通過個(gè)產(chǎn)品達(dá)到了萬美元的月收入。其中第一個(gè)產(chǎn)品貢獻(xiàn)了收入的以上。 .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...
摘要:本篇文章就來分享一下兩款開箱即用上手容易的圖床相冊程序和在線文件管理器目錄列表程序,由好友開發(fā)并維護(hù),非常適合個(gè)人站長用作圖床相冊和文件下載分享。雖然說現(xiàn)在照片還有文件存儲(chǔ)等都可以上傳到網(wǎng)盤中,但是國內(nèi)的網(wǎng)盤與國外的網(wǎng)盤存儲(chǔ)還有點(diǎn)不一樣。以百度網(wǎng)盤與Dropbox對比為例,百度網(wǎng)盤頂多算是一個(gè)個(gè)人用來存放私人照片和文件的網(wǎng)絡(luò)硬盤,如果用來分享的話很容易被百度限制或者取消下載。很多的個(gè)人站長為...
閱讀 2001·2021-11-19 09:40
閱讀 1961·2021-09-28 09:36
閱讀 2293·2021-09-22 10:02
閱讀 2735·2019-08-30 14:00
閱讀 1964·2019-08-29 15:31
閱讀 2905·2019-08-29 15:11
閱讀 2916·2019-08-29 13:04
閱讀 1089·2019-08-27 10:55