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