
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 49 次瀏覽 ? 2021-12-19 07:02
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子=可以實(shí)現的方法太多了,推薦嘗試這一個(gè),不到1/3的代價(jià),
本來(lái)還想對應api拿到自己的微博,現在不用這個(gè)api了,主要原因是同步太頻繁會(huì )掛掉,開(kāi)始是9天掛了一次,最近的一次掛掉是15天。
目前對我個(gè)人來(lái)說(shuō),還是比較方便的,使用自己的域名和服務(wù)器可以進(jìn)行數據同步,自動(dòng)生成二維碼,不同平臺的轉發(fā)推送都是可以實(shí)現的,反正我用同步最順手的就是新浪了,因為二維碼生成用起來(lái)相對容易。至于題主說(shuō)的7*24的話(huà)可能有點(diǎn)夸張,我所知道的,一般所有網(wǎng)站最多的同步也就2*7*24*24*24*24*24*24,兩到三次就會(huì )降到原來(lái)每天的最低限制(12/24/60),沒(méi)幾個(gè)人會(huì )整天整晚同步,這樣整體成本會(huì )提高不少。
你感覺(jué)不好用的原因我猜可能是同步受到限制了,最簡(jiǎn)單的應該是轉發(fā)的人數問(wèn)題,同步你想轉發(fā)的人多的,可以嘗試“黑名單”功能,設置一個(gè)限制,轉發(fā)的人再不轉發(fā)時(shí)域名被刪,要是想要被解封也需要一定的操作。想自動(dòng)同步多平臺的還是設置黑名單功能更靠譜。
推薦burstcom。ip地址對應的就會(huì )同步,有多種同步方式,同步到朋友圈什么的非常方便。也可以api,我用的是文檔方式,操作麻煩一點(diǎn),但是效果好。服務(wù)器的話(huà)是租用服務(wù)器,多一點(diǎn)的域名服務(wù)器費用不一樣。有問(wèn)題可以直接給他們客服,反饋非常及時(shí),人也不錯,具體服務(wù)你問(wèn)他們就好。(他們家真的是懂網(wǎng)站,會(huì )給你合理意見(jiàn)不忽悠人,非常容易推薦我去。
?。?上面這些不是正面答案,不如提供兩個(gè)建議:1.拉一個(gè)網(wǎng)站出來(lái)專(zhuān)門(mén)做分享互動(dòng)。2.做好服務(wù)器的防火墻防病毒,安全是最基本的。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子)
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子=可以實(shí)現的方法太多了,推薦嘗試這一個(gè),不到1/3的代價(jià),
本來(lái)還想對應api拿到自己的微博,現在不用這個(gè)api了,主要原因是同步太頻繁會(huì )掛掉,開(kāi)始是9天掛了一次,最近的一次掛掉是15天。
目前對我個(gè)人來(lái)說(shuō),還是比較方便的,使用自己的域名和服務(wù)器可以進(jìn)行數據同步,自動(dòng)生成二維碼,不同平臺的轉發(fā)推送都是可以實(shí)現的,反正我用同步最順手的就是新浪了,因為二維碼生成用起來(lái)相對容易。至于題主說(shuō)的7*24的話(huà)可能有點(diǎn)夸張,我所知道的,一般所有網(wǎng)站最多的同步也就2*7*24*24*24*24*24*24,兩到三次就會(huì )降到原來(lái)每天的最低限制(12/24/60),沒(méi)幾個(gè)人會(huì )整天整晚同步,這樣整體成本會(huì )提高不少。
你感覺(jué)不好用的原因我猜可能是同步受到限制了,最簡(jiǎn)單的應該是轉發(fā)的人數問(wèn)題,同步你想轉發(fā)的人多的,可以嘗試“黑名單”功能,設置一個(gè)限制,轉發(fā)的人再不轉發(fā)時(shí)域名被刪,要是想要被解封也需要一定的操作。想自動(dòng)同步多平臺的還是設置黑名單功能更靠譜。
推薦burstcom。ip地址對應的就會(huì )同步,有多種同步方式,同步到朋友圈什么的非常方便。也可以api,我用的是文檔方式,操作麻煩一點(diǎn),但是效果好。服務(wù)器的話(huà)是租用服務(wù)器,多一點(diǎn)的域名服務(wù)器費用不一樣。有問(wèn)題可以直接給他們客服,反饋非常及時(shí),人也不錯,具體服務(wù)你問(wèn)他們就好。(他們家真的是懂網(wǎng)站,會(huì )給你合理意見(jiàn)不忽悠人,非常容易推薦我去。
?。?上面這些不是正面答案,不如提供兩個(gè)建議:1.拉一個(gè)網(wǎng)站出來(lái)專(zhuān)門(mén)做分享互動(dòng)。2.做好服務(wù)器的防火墻防病毒,安全是最基本的。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(今天下午弄了個(gè)新浪微博同步應用測試好多次,終于成功了)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 78 次瀏覽 ? 2021-12-17 23:06
今天下午收到了一個(gè)新浪微博同步申請。我測試了很多次,終于成功了。說(shuō)一下我的配置過(guò)程。歡迎大家訪(fǎng)問(wèn)我的新浪微博!
首先,你必須有一個(gè)新浪微博賬號。如果您沒(méi)有,請注冊一個(gè),然后成為開(kāi)發(fā)人員。您可以點(diǎn)擊微博或直接輸入網(wǎng)址:,選擇我是開(kāi)發(fā)者,然后選擇創(chuàng )建應用,輸入并填寫(xiě)開(kāi)發(fā)用戶(hù)信息,成功后,獲取您的APP KEY和APP SECRET,復制并保存他們。
然后去下載SDK文檔,選擇PHP語(yǔ)言,查看“通過(guò)OAuth驗證”。這是我用的。點(diǎn)擊下方鏈接下載并在本地解壓。
第三步,開(kāi)始測試。將解壓后的文件中的 weobodemo 文件夾復制到 test 目錄下,也就是你的站點(diǎn)目錄。您必須提前配置虛擬域名。如果不會(huì ),可以參考我的另一篇文章文章,使用apache配置一個(gè)獨立的虛擬域名。
weibodemo文件夾下有一個(gè)配置文件config.php。打開(kāi)它后,您將知道該怎么做。在其中寫(xiě)入您的 APP KEY 和 APP SECRET。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件,就不會(huì )啰嗦了。
在這里你會(huì )發(fā)現出錯了:注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php on line 13
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,就別管了,點(diǎn)擊下面的鏈接,然后出現錯誤:對不起,那個(gè)頁(yè)面不存在!
說(shuō)到這里,估計很多人都會(huì )放棄,頓時(shí)不知如何是好。其實(shí),不要把新浪微博的應用開(kāi)發(fā)想的那么深,大多數人都能理解。仔細看index.php,你剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此,我們不難想到流程:首先在本地配置文件config.php中獲取APP KEY和APP SECRET,然后必須驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否對此進(jìn)行了授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面寫(xiě)微博,最后點(diǎn)擊發(fā)布,從官方新浪微博登錄,可以看到剛剛貼文章的留言,下面要標注“來(lái)自xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,也就是目錄的虛擬域名的地址,這樣才能返回到callback.php,這樣頁(yè)面找不到是錯誤的。比如:我本地虛擬郁悶,我知道文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那我把$_SERVER['SCRIPT_URI']改成后面的/callback.php連接沒(méi)問(wèn)題。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weobolist.php。進(jìn)去之后驚呆了:蠻粗糙的,沒(méi)有風(fēng)格,簡(jiǎn)單的html形式,哈哈,新浪微博的程序員怎么這么懶。趕緊發(fā)個(gè)微博,測試一下,激動(dòng)一下,哈哈。
總結一下,其實(shí)很簡(jiǎn)單,一共只有6個(gè)文件:config.php是配置文件,通過(guò)index.php進(jìn)入新浪微博的認證授權頁(yè)面,之后返回callback.php頁(yè)面同意授權,點(diǎn)擊進(jìn)入我的微博,進(jìn)入微博發(fā)帖列表頁(yè)面weibolist.php,發(fā)微博即可。剩下的文件 weibooauth.php 是一個(gè)類(lèi)文件,里面收錄了很多類(lèi)和函數,這些都是之前用過(guò)的。有興趣的可以研究一下,不用管它。還有一件事。DS_Stor什么都不知道,打開(kāi)就是亂碼,沒(méi)關(guān)系。估計沒(méi)啥用
另外,提醒我注意頁(yè)面的編碼格式。如有亂碼,請耐心調試。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(今天下午弄了個(gè)新浪微博同步應用測試好多次,終于成功了)
今天下午收到了一個(gè)新浪微博同步申請。我測試了很多次,終于成功了。說(shuō)一下我的配置過(guò)程。歡迎大家訪(fǎng)問(wèn)我的新浪微博!
首先,你必須有一個(gè)新浪微博賬號。如果您沒(méi)有,請注冊一個(gè),然后成為開(kāi)發(fā)人員。您可以點(diǎn)擊微博或直接輸入網(wǎng)址:,選擇我是開(kāi)發(fā)者,然后選擇創(chuàng )建應用,輸入并填寫(xiě)開(kāi)發(fā)用戶(hù)信息,成功后,獲取您的APP KEY和APP SECRET,復制并保存他們。
然后去下載SDK文檔,選擇PHP語(yǔ)言,查看“通過(guò)OAuth驗證”。這是我用的。點(diǎn)擊下方鏈接下載并在本地解壓。
第三步,開(kāi)始測試。將解壓后的文件中的 weobodemo 文件夾復制到 test 目錄下,也就是你的站點(diǎn)目錄。您必須提前配置虛擬域名。如果不會(huì ),可以參考我的另一篇文章文章,使用apache配置一個(gè)獨立的虛擬域名。
weibodemo文件夾下有一個(gè)配置文件config.php。打開(kāi)它后,您將知道該怎么做。在其中寫(xiě)入您的 APP KEY 和 APP SECRET。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件,就不會(huì )啰嗦了。
在這里你會(huì )發(fā)現出錯了:注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php on line 13
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,就別管了,點(diǎn)擊下面的鏈接,然后出現錯誤:對不起,那個(gè)頁(yè)面不存在!
說(shuō)到這里,估計很多人都會(huì )放棄,頓時(shí)不知如何是好。其實(shí),不要把新浪微博的應用開(kāi)發(fā)想的那么深,大多數人都能理解。仔細看index.php,你剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此,我們不難想到流程:首先在本地配置文件config.php中獲取APP KEY和APP SECRET,然后必須驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否對此進(jìn)行了授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面寫(xiě)微博,最后點(diǎn)擊發(fā)布,從官方新浪微博登錄,可以看到剛剛貼文章的留言,下面要標注“來(lái)自xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,也就是目錄的虛擬域名的地址,這樣才能返回到callback.php,這樣頁(yè)面找不到是錯誤的。比如:我本地虛擬郁悶,我知道文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那我把$_SERVER['SCRIPT_URI']改成后面的/callback.php連接沒(méi)問(wèn)題。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weobolist.php。進(jìn)去之后驚呆了:蠻粗糙的,沒(méi)有風(fēng)格,簡(jiǎn)單的html形式,哈哈,新浪微博的程序員怎么這么懶。趕緊發(fā)個(gè)微博,測試一下,激動(dòng)一下,哈哈。
總結一下,其實(shí)很簡(jiǎn)單,一共只有6個(gè)文件:config.php是配置文件,通過(guò)index.php進(jìn)入新浪微博的認證授權頁(yè)面,之后返回callback.php頁(yè)面同意授權,點(diǎn)擊進(jìn)入我的微博,進(jìn)入微博發(fā)帖列表頁(yè)面weibolist.php,發(fā)微博即可。剩下的文件 weibooauth.php 是一個(gè)類(lèi)文件,里面收錄了很多類(lèi)和函數,這些都是之前用過(guò)的。有興趣的可以研究一下,不用管它。還有一件事。DS_Stor什么都不知道,打開(kāi)就是亂碼,沒(méi)關(guān)系。估計沒(méi)啥用
另外,提醒我注意頁(yè)面的編碼格式。如有亂碼,請耐心調試。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的系統分為三個(gè)層次,最下層是基礎服務(wù)層)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 68 次瀏覽 ? 2021-12-17 04:03
該系統分為三個(gè)層次。底層是基礎服務(wù)層,提供數據庫、緩存、存儲、搜索等數據服務(wù)等基礎技術(shù)服務(wù)。這些服務(wù)支持新浪微博的海量數據和高并發(fā)訪(fǎng)問(wèn)。系統的技術(shù)基礎。
中間層是平臺服務(wù)和應用服務(wù)層。新浪微博的核心服務(wù)是微博、關(guān)系和用戶(hù)。這些服務(wù)被劃分為獨立的服務(wù)模塊,依靠調用和共享基礎數據,構成了新浪微博的業(yè)務(wù)基礎。
頂層是 API 和業(yè)務(wù)層。各種客戶(hù)端和第三方應用調用API并將其集成到新浪微博系統中,形成一個(gè)生態(tài)系統。
新浪微博的系統架構
這些業(yè)務(wù)模塊和基礎技術(shù)模塊經(jīng)過(guò)分層劃分后分布式部署。每個(gè)模塊部署在一組獨立的服務(wù)器集群上,通過(guò)遠程調用進(jìn)行依賴(lài)訪(fǎng)問(wèn)。新浪微博早期也采用了一種分布式集群部署方案,叫做MPSS(MultiPost Single Server,單服務(wù)器多端口)。在集群中的多臺服務(wù)器上,每臺服務(wù)器都部署了多個(gè)服務(wù),每個(gè)服務(wù)使用不同的服務(wù)。港口為外界提供服務(wù)。這樣,有限數量的服務(wù)器就可以部署更多的服務(wù)實(shí)例,提高服務(wù)的負載均衡和可用性?,F在常見(jiàn)的網(wǎng)站 應用將物理機虛擬化為多個(gè)虛擬機。在虛擬機上部署應用的方法和新浪微博的MPSS方案一樣,但是更簡(jiǎn)單,可以在不同的虛擬機上使用。相同的端口號。
在新浪微博的早期架構中,微博發(fā)布采用的是同步推送模式。用戶(hù)發(fā)布微博后,系統會(huì )立即將該微博插入到數據庫中所有粉絲的訂閱列表中。當用戶(hù)數量比較大的時(shí)候,就會(huì )造成大量的用戶(hù)。數據庫寫(xiě)操作超過(guò)數據庫負載,系統性能急劇下降,用戶(hù)響應延遲增加。后來(lái)新浪微博切換到異步推拉組合模式。用戶(hù)發(fā)布微博后,系統將微博寫(xiě)入消息隊列并立即返回。用戶(hù)反應很快。消息隊列消費者任務(wù)將微博推送到當前所有在線(xiàn)粉絲的訂閱列表。非在線(xiàn)用戶(hù)登錄后,根據關(guān)注列表拉取微博訂閱列表。
由于微博頻繁刷新,新浪微博采用了多級緩存策略。熱門(mén)微博和名人用戶(hù)緩存在所有微博服務(wù)器上,在線(xiàn)用戶(hù)的微博和近期微博緩存在分布式緩存集群中。對于微博,操作中幾乎所有最常見(jiàn)的“微博”操作都是緩存訪(fǎng)問(wèn)操作,可以達到很好的系統性能。
為了提高系統的整體可用性和性能,新浪微博激活了多個(gè)數據中心。這些數據中心不僅是區域用戶(hù)訪(fǎng)問(wèn)中心,用戶(hù)可以就近訪(fǎng)問(wèn)數據中心,加快訪(fǎng)問(wèn)速度,提升系統性能;同時(shí),它們也是數據冗余復制的災備中心。所有用戶(hù)和微博數據通過(guò)遠程消息系統位于不同的位置。在數據中心之間進(jìn)行同步以提高系統可用性。
同時(shí),新浪微博還開(kāi)發(fā)了一系列自動(dòng)化工具,包括自動(dòng)化監控、自動(dòng)化發(fā)布、自動(dòng)化故障修復等,這些自動(dòng)化工具還在不斷開(kāi)發(fā)中,以提高運維水平,提高系統可用性。
由于微博的開(kāi)放性,新浪微博也遇到了一系列的安全挑戰。垃圾郵件、僵尸粉和微博攻擊從未停止。除了使用一般的網(wǎng)站通用安全策略,新浪微博是一個(gè)開(kāi)放的平臺。關(guān)于使用多級安全審計策略來(lái)保護系統和用戶(hù)。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的系統分為三個(gè)層次,最下層是基礎服務(wù)層)
該系統分為三個(gè)層次。底層是基礎服務(wù)層,提供數據庫、緩存、存儲、搜索等數據服務(wù)等基礎技術(shù)服務(wù)。這些服務(wù)支持新浪微博的海量數據和高并發(fā)訪(fǎng)問(wèn)。系統的技術(shù)基礎。
中間層是平臺服務(wù)和應用服務(wù)層。新浪微博的核心服務(wù)是微博、關(guān)系和用戶(hù)。這些服務(wù)被劃分為獨立的服務(wù)模塊,依靠調用和共享基礎數據,構成了新浪微博的業(yè)務(wù)基礎。
頂層是 API 和業(yè)務(wù)層。各種客戶(hù)端和第三方應用調用API并將其集成到新浪微博系統中,形成一個(gè)生態(tài)系統。
新浪微博的系統架構
這些業(yè)務(wù)模塊和基礎技術(shù)模塊經(jīng)過(guò)分層劃分后分布式部署。每個(gè)模塊部署在一組獨立的服務(wù)器集群上,通過(guò)遠程調用進(jìn)行依賴(lài)訪(fǎng)問(wèn)。新浪微博早期也采用了一種分布式集群部署方案,叫做MPSS(MultiPost Single Server,單服務(wù)器多端口)。在集群中的多臺服務(wù)器上,每臺服務(wù)器都部署了多個(gè)服務(wù),每個(gè)服務(wù)使用不同的服務(wù)。港口為外界提供服務(wù)。這樣,有限數量的服務(wù)器就可以部署更多的服務(wù)實(shí)例,提高服務(wù)的負載均衡和可用性?,F在常見(jiàn)的網(wǎng)站 應用將物理機虛擬化為多個(gè)虛擬機。在虛擬機上部署應用的方法和新浪微博的MPSS方案一樣,但是更簡(jiǎn)單,可以在不同的虛擬機上使用。相同的端口號。
在新浪微博的早期架構中,微博發(fā)布采用的是同步推送模式。用戶(hù)發(fā)布微博后,系統會(huì )立即將該微博插入到數據庫中所有粉絲的訂閱列表中。當用戶(hù)數量比較大的時(shí)候,就會(huì )造成大量的用戶(hù)。數據庫寫(xiě)操作超過(guò)數據庫負載,系統性能急劇下降,用戶(hù)響應延遲增加。后來(lái)新浪微博切換到異步推拉組合模式。用戶(hù)發(fā)布微博后,系統將微博寫(xiě)入消息隊列并立即返回。用戶(hù)反應很快。消息隊列消費者任務(wù)將微博推送到當前所有在線(xiàn)粉絲的訂閱列表。非在線(xiàn)用戶(hù)登錄后,根據關(guān)注列表拉取微博訂閱列表。
由于微博頻繁刷新,新浪微博采用了多級緩存策略。熱門(mén)微博和名人用戶(hù)緩存在所有微博服務(wù)器上,在線(xiàn)用戶(hù)的微博和近期微博緩存在分布式緩存集群中。對于微博,操作中幾乎所有最常見(jiàn)的“微博”操作都是緩存訪(fǎng)問(wèn)操作,可以達到很好的系統性能。
為了提高系統的整體可用性和性能,新浪微博激活了多個(gè)數據中心。這些數據中心不僅是區域用戶(hù)訪(fǎng)問(wèn)中心,用戶(hù)可以就近訪(fǎng)問(wèn)數據中心,加快訪(fǎng)問(wèn)速度,提升系統性能;同時(shí),它們也是數據冗余復制的災備中心。所有用戶(hù)和微博數據通過(guò)遠程消息系統位于不同的位置。在數據中心之間進(jìn)行同步以提高系統可用性。
同時(shí),新浪微博還開(kāi)發(fā)了一系列自動(dòng)化工具,包括自動(dòng)化監控、自動(dòng)化發(fā)布、自動(dòng)化故障修復等,這些自動(dòng)化工具還在不斷開(kāi)發(fā)中,以提高運維水平,提高系統可用性。
由于微博的開(kāi)放性,新浪微博也遇到了一系列的安全挑戰。垃圾郵件、僵尸粉和微博攻擊從未停止。除了使用一般的網(wǎng)站通用安全策略,新浪微博是一個(gè)開(kāi)放的平臺。關(guān)于使用多級安全審計策略來(lái)保護系統和用戶(hù)。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這里有新鮮出爐的Python入門(mén),程序狗速度看過(guò)來(lái)! )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 49 次瀏覽 ? 2021-12-17 04:00
)
這里有新鮮的Python介紹,看程序狗的速度!
Python編程語(yǔ)言 Python是一種面向對象的解釋型計算機編程語(yǔ)言,由Guido van Rossum于1989年底發(fā)明,1991年首次公開(kāi)發(fā)布。Python語(yǔ)法簡(jiǎn)潔明了,具有豐富而強大的類(lèi)庫. 它通常被稱(chēng)為膠水語(yǔ)言,它可以很容易地將其他語(yǔ)言(尤其是 C/C++)制作的各種模塊連接在一起。
本文介紹了python連接新浪微博開(kāi)放平臺的方法。請有需要的同學(xué)參考。另外,官方新浪微博開(kāi)放平臺有完整的SDK和幫助文檔,有需要的同學(xué)可以自行查看。
因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。有需要的朋友可以參考以下
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這里有新鮮出爐的Python入門(mén),程序狗速度看過(guò)來(lái)!
)
這里有新鮮的Python介紹,看程序狗的速度!
Python編程語(yǔ)言 Python是一種面向對象的解釋型計算機編程語(yǔ)言,由Guido van Rossum于1989年底發(fā)明,1991年首次公開(kāi)發(fā)布。Python語(yǔ)法簡(jiǎn)潔明了,具有豐富而強大的類(lèi)庫. 它通常被稱(chēng)為膠水語(yǔ)言,它可以很容易地將其他語(yǔ)言(尤其是 C/C++)制作的各種模塊連接在一起。
本文介紹了python連接新浪微博開(kāi)放平臺的方法。請有需要的同學(xué)參考。另外,官方新浪微博開(kāi)放平臺有完整的SDK和幫助文檔,有需要的同學(xué)可以自行查看。
因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。有需要的朋友可以參考以下
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 65 次瀏覽 ? 2021-12-16 09:15
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):
結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:
新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。
然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:
完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向后, callback_url 將附加 oauth_verifier 參數。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:
點(diǎn)擊鏈接,如下圖(注意地址欄的變化):
地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:
地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:
登錄微博查看,如下圖:
查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth
使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):

結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:

新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。

然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:

完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向后, callback_url 將附加 oauth_verifier 參數。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:

點(diǎn)擊鏈接,如下圖(注意地址欄的變化):

地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:

地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:

登錄微博查看,如下圖:

查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth

使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 54 次瀏覽 ? 2021-12-15 16:04
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):
結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token,Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:
新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。
然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:
完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向之后,oauth_verifier 參數會(huì )附加到callback_url。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:
點(diǎn)擊鏈接,如下圖(注意地址欄的變化):
地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:
地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:
登錄微博查看,如下圖:
查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth
使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):

結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token,Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:

新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。

然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:

完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向之后,oauth_verifier 參數會(huì )附加到callback_url。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:

點(diǎn)擊鏈接,如下圖(注意地址欄的變化):

地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:

地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:

登錄微博查看,如下圖:

查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth

使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺注冊開(kāi)發(fā)者并獲取app和app(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 55 次瀏覽 ? 2021-12-15 13:42
前言:微博開(kāi)放平臺提供了微博數據的api接口。不僅可以通過(guò)api直接調用微博服務(wù)發(fā)布微博和查詢(xún)微博,更重要的是可以自己獲取新浪微博網(wǎng)站 api被授權調用微博的一些內容,就好像我們在網(wǎng)站看到,想分享到微博或者其他社交網(wǎng)絡(luò )網(wǎng)站,很方便。爪哇
下面就讓我們一探究竟。
1.注冊開(kāi)發(fā)者,獲取app key和app secret
百度很容易找到微博開(kāi)放平臺的入口,登錄自己的微博賬號,點(diǎn)擊賬號頭像,會(huì )提示編輯開(kāi)發(fā)者信息。
如果可以看到如下頁(yè)面,則只需根據提示填寫(xiě)即可。緊急聯(lián)系人可以自己填寫(xiě),網(wǎng)站沒(méi)關(guān)系,可以百度填寫(xiě)。
提交后,您需要在個(gè)人申請中驗證您的真實(shí)姓名。上傳圖片時(shí)請耐心等待。有點(diǎn)慢,沒(méi)有上傳進(jìn)度。上傳后,點(diǎn)擊返回跳轉到新頁(yè)面:
根據您的需要選擇,然后構建您自己的應用程序。至于里面的各個(gè)應用術(shù)語(yǔ)的含義,我不是很清楚,熟悉一下就好了。我選擇其他應用
創(chuàng )建后,您將收到一封收錄應用密鑰和應用機密的電子郵件。這是獲得權威的關(guān)鍵。
2.獲取令牌
在首頁(yè)點(diǎn)擊api接口,會(huì )跳轉到api接口描述頁(yè)面。你會(huì )發(fā)現這個(gè)api有很多功能,包括創(chuàng )建微博、刪除微博、關(guān)注/取消關(guān)注等,接口很多,但是每個(gè)接口都需要token才能訪(fǎng)問(wèn)。令牌從哪里來(lái)?
一是要拿到code,二是要有調用接口的網(wǎng)址(因為我申請的是web應用)。
設置關(guān)聯(lián)的 URL:
單擊您的應用程序名稱(chēng),然后在左側菜單中找到高級信息,然后您可以對其進(jìn)行編輯。
在api界面下點(diǎn)擊
, 進(jìn)入授權界面查看使用情況
根據示例,您需要發(fā)送收錄client_id 和redirect_uri 的get 請求??梢灾苯悠唇?。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申請的app key,redirect_uri是回調接口本身的地址,api會(huì )原樣返回??梢灾苯釉跒g覽器中輸入url,如下圖:
這個(gè)頁(yè)面是不是很熟悉?網(wǎng)頁(yè)被授權后會(huì )跳轉回redirect_uri頁(yè)面,url后面會(huì )拼出code。所以代碼有
接下來(lái)獲取授權token,第二個(gè)授權接口:
頁(yè)面上有詳細的用法。發(fā)送http post請求,我用java http-client4.5 來(lái)做,其實(shí)其他方法也行。
代碼寫(xiě)得不好,但有多少可用。5 個(gè)必需的參數值。我們已經(jīng)拿到了最后兩個(gè),前兩個(gè)在郵件里。代碼將不會(huì )發(fā)布。照顧好自己會(huì )幫助您熟悉使用,之后您將不可避免地發(fā)送各種請求。
至此,我們已經(jīng)授權成功,返回值中收錄了需要的token值。如果返回錯誤,請查看錯誤信息或百度錯誤信息。
之后,你只需要帶上token來(lái)請求各種接口。雖然有次數限制,但正常使用應該足夠了。
后記:
1. 本來(lái)想做一些爬蟲(chóng)類(lèi)的功能。我想在微博開(kāi)放界面獲取一些數據。不過(guò)從API來(lái)看,大部分都是基于web應用的微博分享功能。
就好比自己的微博,發(fā)粉絲,發(fā)微博,關(guān)注等,本身沒(méi)必要。
2. 前面說(shuō)過(guò),微博開(kāi)放api主要用于第三方網(wǎng)站或者app訪(fǎng)問(wèn)微博、登錄微博或者通過(guò)微博api分享,所以對這個(gè)有徹底的需求能夠深入研究api接口。
在3.api接口中,所有的get請求都可以通過(guò)直接連接字符串的方式獲取,但是對于剛剛請求授權的get請求,需要用戶(hù)的賬號來(lái)批準對應用的授權,所以需要登錄進(jìn)入用戶(hù)賬號,如果瀏覽器中保留了微博登錄的cookie,那么瀏覽器可以自動(dòng)登錄獲取目標碼,如果沒(méi)有會(huì )提示登錄
所以這個(gè)請求適合在瀏覽器上進(jìn)行,因為使用代碼發(fā)送請求還要模擬登錄,或者登錄后使用cookie,都非常麻煩。不過(guò)api中剩下的get請求就不會(huì )有這個(gè)問(wèn)題了,直接帶上token就可以了。模擬登錄可以使用selenium的webdriver來(lái)獲取cookies,其他模擬登錄的方法種類(lèi)繁多,非常麻煩。網(wǎng)絡(luò )
當然,如果你把它嵌入在網(wǎng)站上,那么登錄是用戶(hù)的事情。json
4.以發(fā)送微博為例:
@Test
public void test2() throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = null;
RequestConfig config =
RequestConfig.custom().setConnectTimeout(10000)
.setSocketTimeout(10000).build();
HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");
post.setConfig(config);
List pairs = new ArrayList();
BasicNameValuePair p1 = new BasicNameValuePair("access_token","");
String content = "本條微博經(jīng)過(guò)微博開(kāi)放接口發(fā)送";
BasicNameValuePair p2 = new BasicNameValuePair("status",
content);
BasicNameValuePair p3 = new BasicNameValuePair("visible","0");
pairs.add(p1);
pairs.add(p2);
pairs.add(p3);
post.setEntity(new UrlEncodedFormEntity(pairs,"utf-8"));
response = client.execute(post);
HttpEntity entities = response.getEntity();
System.out.println(EntityUtils.toString(entities,"UTF-8"));
}
5.如果把open api嵌入到自己的網(wǎng)站中,一般做法是:在分享微博按鈕(第三方登錄按鈕)上,發(fā)送微博授權認證,用戶(hù)點(diǎn)擊授權后web頁(yè)面,后臺獲取code,根據code獲取token。之后,如果需要提取微博的用戶(hù)名,可以直接在后臺發(fā)送請求。如果分享到微博,也可以通過(guò)api來(lái)完成。
如果以后在實(shí)踐中用到這些功能,那就做個(gè)記錄。本文到此結束。
來(lái)自維茲 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺注冊開(kāi)發(fā)者并獲取app和app(組圖))
前言:微博開(kāi)放平臺提供了微博數據的api接口。不僅可以通過(guò)api直接調用微博服務(wù)發(fā)布微博和查詢(xún)微博,更重要的是可以自己獲取新浪微博網(wǎng)站 api被授權調用微博的一些內容,就好像我們在網(wǎng)站看到,想分享到微博或者其他社交網(wǎng)絡(luò )網(wǎng)站,很方便。爪哇
下面就讓我們一探究竟。
1.注冊開(kāi)發(fā)者,獲取app key和app secret
百度很容易找到微博開(kāi)放平臺的入口,登錄自己的微博賬號,點(diǎn)擊賬號頭像,會(huì )提示編輯開(kāi)發(fā)者信息。

如果可以看到如下頁(yè)面,則只需根據提示填寫(xiě)即可。緊急聯(lián)系人可以自己填寫(xiě),網(wǎng)站沒(méi)關(guān)系,可以百度填寫(xiě)。

提交后,您需要在個(gè)人申請中驗證您的真實(shí)姓名。上傳圖片時(shí)請耐心等待。有點(diǎn)慢,沒(méi)有上傳進(jìn)度。上傳后,點(diǎn)擊返回跳轉到新頁(yè)面:

根據您的需要選擇,然后構建您自己的應用程序。至于里面的各個(gè)應用術(shù)語(yǔ)的含義,我不是很清楚,熟悉一下就好了。我選擇其他應用


創(chuàng )建后,您將收到一封收錄應用密鑰和應用機密的電子郵件。這是獲得權威的關(guān)鍵。
2.獲取令牌
在首頁(yè)點(diǎn)擊api接口,會(huì )跳轉到api接口描述頁(yè)面。你會(huì )發(fā)現這個(gè)api有很多功能,包括創(chuàng )建微博、刪除微博、關(guān)注/取消關(guān)注等,接口很多,但是每個(gè)接口都需要token才能訪(fǎng)問(wèn)。令牌從哪里來(lái)?
一是要拿到code,二是要有調用接口的網(wǎng)址(因為我申請的是web應用)。
設置關(guān)聯(lián)的 URL:

單擊您的應用程序名稱(chēng),然后在左側菜單中找到高級信息,然后您可以對其進(jìn)行編輯。

在api界面下點(diǎn)擊

, 進(jìn)入授權界面查看使用情況

根據示例,您需要發(fā)送收錄client_id 和redirect_uri 的get 請求??梢灾苯悠唇?。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申請的app key,redirect_uri是回調接口本身的地址,api會(huì )原樣返回??梢灾苯釉跒g覽器中輸入url,如下圖:

這個(gè)頁(yè)面是不是很熟悉?網(wǎng)頁(yè)被授權后會(huì )跳轉回redirect_uri頁(yè)面,url后面會(huì )拼出code。所以代碼有
接下來(lái)獲取授權token,第二個(gè)授權接口:

頁(yè)面上有詳細的用法。發(fā)送http post請求,我用java http-client4.5 來(lái)做,其實(shí)其他方法也行。

代碼寫(xiě)得不好,但有多少可用。5 個(gè)必需的參數值。我們已經(jīng)拿到了最后兩個(gè),前兩個(gè)在郵件里。代碼將不會(huì )發(fā)布。照顧好自己會(huì )幫助您熟悉使用,之后您將不可避免地發(fā)送各種請求。
至此,我們已經(jīng)授權成功,返回值中收錄了需要的token值。如果返回錯誤,請查看錯誤信息或百度錯誤信息。
之后,你只需要帶上token來(lái)請求各種接口。雖然有次數限制,但正常使用應該足夠了。
后記:
1. 本來(lái)想做一些爬蟲(chóng)類(lèi)的功能。我想在微博開(kāi)放界面獲取一些數據。不過(guò)從API來(lái)看,大部分都是基于web應用的微博分享功能。
就好比自己的微博,發(fā)粉絲,發(fā)微博,關(guān)注等,本身沒(méi)必要。

2. 前面說(shuō)過(guò),微博開(kāi)放api主要用于第三方網(wǎng)站或者app訪(fǎng)問(wèn)微博、登錄微博或者通過(guò)微博api分享,所以對這個(gè)有徹底的需求能夠深入研究api接口。
在3.api接口中,所有的get請求都可以通過(guò)直接連接字符串的方式獲取,但是對于剛剛請求授權的get請求,需要用戶(hù)的賬號來(lái)批準對應用的授權,所以需要登錄進(jìn)入用戶(hù)賬號,如果瀏覽器中保留了微博登錄的cookie,那么瀏覽器可以自動(dòng)登錄獲取目標碼,如果沒(méi)有會(huì )提示登錄

所以這個(gè)請求適合在瀏覽器上進(jìn)行,因為使用代碼發(fā)送請求還要模擬登錄,或者登錄后使用cookie,都非常麻煩。不過(guò)api中剩下的get請求就不會(huì )有這個(gè)問(wèn)題了,直接帶上token就可以了。模擬登錄可以使用selenium的webdriver來(lái)獲取cookies,其他模擬登錄的方法種類(lèi)繁多,非常麻煩。網(wǎng)絡(luò )
當然,如果你把它嵌入在網(wǎng)站上,那么登錄是用戶(hù)的事情。json
4.以發(fā)送微博為例:
@Test
public void test2() throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = null;
RequestConfig config =
RequestConfig.custom().setConnectTimeout(10000)
.setSocketTimeout(10000).build();
HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");
post.setConfig(config);
List pairs = new ArrayList();
BasicNameValuePair p1 = new BasicNameValuePair("access_token","");
String content = "本條微博經(jīng)過(guò)微博開(kāi)放接口發(fā)送";
BasicNameValuePair p2 = new BasicNameValuePair("status",
content);
BasicNameValuePair p3 = new BasicNameValuePair("visible","0");
pairs.add(p1);
pairs.add(p2);
pairs.add(p3);
post.setEntity(new UrlEncodedFormEntity(pairs,"utf-8"));
response = client.execute(post);
HttpEntity entities = response.getEntity();
System.out.println(EntityUtils.toString(entities,"UTF-8"));
}

5.如果把open api嵌入到自己的網(wǎng)站中,一般做法是:在分享微博按鈕(第三方登錄按鈕)上,發(fā)送微博授權認證,用戶(hù)點(diǎn)擊授權后web頁(yè)面,后臺獲取code,根據code獲取token。之后,如果需要提取微博的用戶(hù)名,可以直接在后臺發(fā)送請求。如果分享到微博,也可以通過(guò)api來(lái)完成。
如果以后在實(shí)踐中用到這些功能,那就做個(gè)記錄。本文到此結束。
來(lái)自維茲
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(草根用戶(hù)厭倦了傳統媒體上對權威的“90度仰視”)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 58 次瀏覽 ? 2021-12-15 08:23
編者按:本文由聯(lián)合創(chuàng )始人@邵寶麟提供。他是哥倫比亞大學(xué)計算機科學(xué)博士候選人。2007年獲得華中科技大學(xué)軟件工程學(xué)士學(xué)位。曾在印度Infosys SETLab和美國IBM TJ Watson研究中心進(jìn)行“下一代高性能分布式計算”研究。深圳樂(lè )建網(wǎng)絡(luò )是一家由美國名校輟學(xué)生、美國名校博士、成功企業(yè)家組成的創(chuàng )業(yè)公司。目前正在開(kāi)發(fā)Web3.0時(shí)代的高性能推薦互聯(lián)網(wǎng)產(chǎn)品。目前正在尋找人才,感興趣的朋友可以聯(lián)系@邵寶麟或@戴虎寧。
現在互聯(lián)網(wǎng)上最流行的是“社交網(wǎng)絡(luò )”。在國外,燒了投資者無(wú)數美元的SNS公司終于陸續上市;在國內,新浪、騰訊、搜狐甚至百度都調整了戰略,將微博作為重要的戰略布局。
對于這些巨頭來(lái)說(shuō),微博要么是鞏固帝國版圖的戰略防御武器,要么是追趕對手甚至反擊的絕佳機會(huì )。
對于媒體人或意見(jiàn)領(lǐng)袖來(lái)說(shuō),微博是他們的擴音器,他們希望微博成為未來(lái)社會(huì )進(jìn)步的加速器。
對于一大批草根用戶(hù)來(lái)說(shuō),在厭倦了傳統媒體權威的“90度仰視”和網(wǎng)絡(luò )上與同齡人的“0度交流”之后,微博為他們提供了獨一無(wú)二的45度視角,讓他們看到你也可以在傾聽(tīng)的同時(shí)有效地表達。
因此,微博幾乎一夜之間風(fēng)靡全中國。面對這樣的市場(chǎng),創(chuàng )業(yè)者沒(méi)有理由不興奮。問(wèn)題是,微博(SNS平臺)對創(chuàng )業(yè)者意味著(zhù)什么?Linkedin 創(chuàng )始人 Reid Hoffman 最近的觀(guān)點(diǎn)可能代表了美國資本市場(chǎng)的普遍看法:“如果 Web 1.0 涉及“去搜索,獲取數據”和一些有限的交互性;如果 Web 2.0涉及“真實(shí)身份”和“真實(shí)關(guān)系”,那么Web 3.0 將是“真實(shí)身份產(chǎn)生海量數據”。這就好像在說(shuō)現在是最好的時(shí)代,也是最壞的時(shí)代。
面對如此海量的用戶(hù)生成內容,創(chuàng )業(yè)者第一時(shí)間就有機會(huì )擁有一個(gè)上億用戶(hù)的平臺,以及在這個(gè)平臺上屬于每個(gè)用戶(hù)的唯一數據。但同時(shí),如果不分析和利用這些內容,“信息過(guò)載”將嚴重降低互聯(lián)網(wǎng)的效率。這是剛性需求。但企業(yè)家擔心的是這些社交平臺本身——它們是否開(kāi)放?他們現在有多開(kāi)放?他們未來(lái)會(huì )開(kāi)放到什么程度?我們可以從多個(gè)維度來(lái)討論這個(gè)問(wèn)題:企業(yè)戰略、社會(huì )趨勢、技術(shù)發(fā)展等等。
但創(chuàng )業(yè)者最關(guān)心的是這些平臺提供的API(應用程序接口)。畢竟內容是平臺的,API幾乎是其他人獲取這些內容的唯一合法途徑。API的種類(lèi)是否豐富,數據是否完整,使用時(shí)有多少限制,直接影響到創(chuàng )業(yè)想法的可行性。因此,我們將從以上幾個(gè)方面對中國最流行的兩個(gè)微博平臺騰訊和新浪做一個(gè)簡(jiǎn)單的比較。
API多樣性
使用開(kāi)放平臺的開(kāi)發(fā)者最關(guān)心的是“這個(gè)平臺提供了哪些API”和“這些API可以實(shí)現什么功能”。新浪已開(kāi)放近百個(gè)API接口。與騰訊相比,開(kāi)放方式更接近推特。如果我們仔細對比新浪和推特的API,會(huì )發(fā)現兩者不僅數量相當,而且從功能上來(lái)說(shuō),新浪幾乎提供了所有推特的開(kāi)放服務(wù)。相比之下,騰訊API的種類(lèi)要少得多,目前只有60個(gè)左右。仔細看,我們可以將微博平臺提供的服務(wù)大致分為:公共內容、用戶(hù)內容、用戶(hù)關(guān)系鏈、其他輔助功能(如搜索)。
1、 在公共內容上,騰訊和新浪都提供了獲取公共微博和熱點(diǎn)話(huà)題的接口。但新浪的熱門(mén)話(huà)題界面更加豐富,包括每周、每日和每小時(shí)的熱門(mén)話(huà)題。而騰訊只提供了“話(huà)題熱榜”界面,返回當前最熱門(mén)話(huà)題。
2、在“用戶(hù)內容”方面,兩個(gè)平臺的差異就更加明顯了。新浪的API接口以用戶(hù)為中心,而騰訊則更注重提供基礎數據。例如,對于微博上的轉發(fā)和評論,新浪直接提供了API來(lái)獲取用戶(hù)發(fā)送和接收的評論。但是,騰訊只提供了“獲取微博所有評論”的API。這意味著(zhù)“用戶(hù)收到的評論”可以通過(guò)新浪微博上的API請求獲得。在騰訊平臺,開(kāi)發(fā)者需要先獲取用戶(hù)發(fā)布的微博列表,然后再持有。微博再次向騰訊征求所有意見(jiàn)。不僅如此,騰訊還沒(méi)有開(kāi)放“獲取用戶(hù)評論”的界面。
3、 關(guān)于開(kāi)通“用戶(hù)關(guān)系鏈”,騰訊和新浪的差別不大,所有第三方都可以獲得用戶(hù)的粉絲和好友列表。由于騰訊微博本身提供了“專(zhuān)聽(tīng)”功能,用戶(hù)的“專(zhuān)聽(tīng)列表”也可以通過(guò)其API獲取。
4、最后,在“可訪(fǎng)問(wèn)性”上,雙方提供了“好友推薦”和比較完善的搜索服務(wù)(搜索用戶(hù),搜索微博),但新浪目前支持獲取可能對Tag感興趣的用戶(hù)” ,該API為基于微博的推薦服務(wù)提供了有效的參考信息。
API 的數量和類(lèi)型是多樣性的一方面,另一方面是每個(gè) API 的功能。與騰訊相比,新浪的API功能更加豐富。以“獲取用戶(hù)微博”界面為例,新浪接受的參數如下:
請求參數
必填類(lèi)型和范圍說(shuō)明
sourcetruestring AppKey在申請應用時(shí)分配,代表應用在調用接口時(shí)的唯一標識。(OAuth授權不需要此參數)
:idfalseint64/string 根據用戶(hù)ID(int6<??@4)或微博昵稱(chēng)(字符串)返回指定用戶(hù)的最新微博消息列表。該參數為REST風(fēng)格參數,見(jiàn)注釋
user_idfalseint64 用戶(hù)ID,主要用于區分用戶(hù)ID和微博昵稱(chēng)。當微博昵稱(chēng)與用戶(hù)ID產(chǎn)生歧義時(shí),建議使用該參數,尤其是微博昵稱(chēng)與用戶(hù)ID相同時(shí)
screen_namefalsestring 微博昵稱(chēng),主要用于區分用戶(hù)UID和微博昵稱(chēng)。當兩者相同且有歧義時(shí),建議使用該參數
since_idfalseint64 如果指定該參數,則只返回ID大于since_id(即發(fā)布時(shí)間晚于since_id)的微博消息。
max_idfalseint64 如果指定該參數,則返回ID小于等于max_id的微博消息
countfalseint,默認值為20,最大值為200。指定每頁(yè)返回的記錄數。
pagefalseint,默認值為1。頁(yè)碼。注:最多可返回 200 條分頁(yè)內容。
如果id、user_id、screen_name這三個(gè)參數都沒(méi)有指定,則返回當前登錄用戶(hù)發(fā)布的微博消息列表。
base_appfalseint 是否根據當前應用獲取數據。1表示限制本應用的微博,0表示不限制。
featurefalseint 微博類(lèi)型,0 全部,1原創(chuàng ),2 圖片,3 視頻,4 音樂(lè )。返回指定類(lèi)型微博的信息內容。
相比之下,騰訊的界面更原創(chuàng ):
請求參數
必填類(lèi)型和范圍說(shuō)明
oauthtruestringoauth 標準參數
Formatfalsestring 返回結果的格式:xml 或 json
Pageflagfalseint 頁(yè)面標志,0 表示第一頁(yè),1 表示向下,2 表示向上
pagetimefalseint 本頁(yè)開(kāi)始時(shí)間,第一頁(yè)填0,繼續翻頁(yè):填上次請求返回的最后一條記錄的時(shí)間
Reqnumfalseint 每個(gè)請求的記錄數
LastIdfalseint64 第一頁(yè)填0,繼續向下翻頁(yè),填上上次請求返回的最后一條記錄的ID,用于翻頁(yè)
Nametruestring 需要讀取的用戶(hù)的用戶(hù)名
我們可以看到騰訊的界面只提供了翻頁(yè)功能,而新浪提供了微博過(guò)濾。不僅是“獲取微博”接口,新浪的大部分API都具備一定程度的信息過(guò)濾能力,而騰訊的大部分接口只提供基礎數據。作為第三方開(kāi)發(fā)者,API接口功能的豐富不僅簡(jiǎn)化了開(kāi)發(fā),也降低了部分應用超出API請求限制的風(fēng)險。
數據的完整性
數據完整性是指開(kāi)放平臺是否限制開(kāi)發(fā)者請求某些數據時(shí)返回的數據量。最能體現一個(gè)平臺的開(kāi)放性。遺憾的是,從這個(gè)意義上說(shuō),新浪和騰訊都沒(méi)有真正開(kāi)放。以用戶(hù)的“粉絲列表”為例,可以看出新浪、騰訊和推特的區別。Twitter是一個(gè)真正開(kāi)放的平臺,開(kāi)發(fā)者可以通過(guò)API獲取任何用戶(hù)的完整粉絲列表。雖然一個(gè)請求最多返回 100 個(gè)粉絲的詳細信息,但我們可以通過(guò)在 Twitter 上發(fā)送多個(gè)請求來(lái)獲得完整的粉絲列表。再看新浪,一般授權用戶(hù)最多只能獲取5000條最新的粉絲信息,但與推特相比,新浪每個(gè)請求最多可以返回200個(gè)粉絲。然而,新浪和推特還為開(kāi)發(fā)者提供了專(zhuān)門(mén)的“社交圖譜”界面,可以一次性獲取用戶(hù)5000粉絲的id。不過(guò),新浪仍將總粉絲數設定為5000人,推特也一如既往的開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。
請求限制
很多開(kāi)發(fā)者抱怨開(kāi)放平臺,最多的不是API函數的數量,而是各個(gè)平臺對API請求的限制。但是所有的開(kāi)放平臺(無(wú)論是twitter、linkedin還是facebook)都會(huì )在一定程度上限制他們的開(kāi)發(fā)者使用自己的資源。這與“開(kāi)放”策略無(wú)關(guān),更多是基于系統安全的考慮。因此,各個(gè)平臺的API限制策略基本相同。例如,新浪給普通授權開(kāi)發(fā)者每個(gè)ip每小時(shí)最多10000個(gè)API請求,每個(gè)用戶(hù)每小時(shí)150個(gè)請求。(騰訊和新浪的詳細訪(fǎng)問(wèn)權限請參見(jiàn):和,3)。真正的問(wèn)題不是平臺授予基本授權應用多少請求配額,但是當應用程序因配額而受到限制時(shí),這些平臺如何為應用程序解決這個(gè)問(wèn)題。只有為平臺設計一個(gè)公開(kāi)、公平的規則,才能真正消除開(kāi)發(fā)者對其開(kāi)放性的疑慮。
通過(guò)以上分析,我們可以清楚地看到,新浪是目前國內最接近推特的微博平臺(無(wú)論是規模還是開(kāi)放度),這次山寨也恰到好處。與推特相比,騰訊的微博是一個(gè)完全不同的產(chǎn)品。雖然收錄了騰訊自己對微博和開(kāi)放平臺的理解和規劃,但目前只適合支持基本的“用戶(hù)驅動(dòng)”應用。對于“數據驅動(dòng)”的復雜應用,平臺的接口暫時(shí)還遠遠不能滿(mǎn)足開(kāi)發(fā)者的需求。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(草根用戶(hù)厭倦了傳統媒體上對權威的“90度仰視”)
編者按:本文由聯(lián)合創(chuàng )始人@邵寶麟提供。他是哥倫比亞大學(xué)計算機科學(xué)博士候選人。2007年獲得華中科技大學(xué)軟件工程學(xué)士學(xué)位。曾在印度Infosys SETLab和美國IBM TJ Watson研究中心進(jìn)行“下一代高性能分布式計算”研究。深圳樂(lè )建網(wǎng)絡(luò )是一家由美國名校輟學(xué)生、美國名校博士、成功企業(yè)家組成的創(chuàng )業(yè)公司。目前正在開(kāi)發(fā)Web3.0時(shí)代的高性能推薦互聯(lián)網(wǎng)產(chǎn)品。目前正在尋找人才,感興趣的朋友可以聯(lián)系@邵寶麟或@戴虎寧。
現在互聯(lián)網(wǎng)上最流行的是“社交網(wǎng)絡(luò )”。在國外,燒了投資者無(wú)數美元的SNS公司終于陸續上市;在國內,新浪、騰訊、搜狐甚至百度都調整了戰略,將微博作為重要的戰略布局。
對于這些巨頭來(lái)說(shuō),微博要么是鞏固帝國版圖的戰略防御武器,要么是追趕對手甚至反擊的絕佳機會(huì )。
對于媒體人或意見(jiàn)領(lǐng)袖來(lái)說(shuō),微博是他們的擴音器,他們希望微博成為未來(lái)社會(huì )進(jìn)步的加速器。
對于一大批草根用戶(hù)來(lái)說(shuō),在厭倦了傳統媒體權威的“90度仰視”和網(wǎng)絡(luò )上與同齡人的“0度交流”之后,微博為他們提供了獨一無(wú)二的45度視角,讓他們看到你也可以在傾聽(tīng)的同時(shí)有效地表達。
因此,微博幾乎一夜之間風(fēng)靡全中國。面對這樣的市場(chǎng),創(chuàng )業(yè)者沒(méi)有理由不興奮。問(wèn)題是,微博(SNS平臺)對創(chuàng )業(yè)者意味著(zhù)什么?Linkedin 創(chuàng )始人 Reid Hoffman 最近的觀(guān)點(diǎn)可能代表了美國資本市場(chǎng)的普遍看法:“如果 Web 1.0 涉及“去搜索,獲取數據”和一些有限的交互性;如果 Web 2.0涉及“真實(shí)身份”和“真實(shí)關(guān)系”,那么Web 3.0 將是“真實(shí)身份產(chǎn)生海量數據”。這就好像在說(shuō)現在是最好的時(shí)代,也是最壞的時(shí)代。
面對如此海量的用戶(hù)生成內容,創(chuàng )業(yè)者第一時(shí)間就有機會(huì )擁有一個(gè)上億用戶(hù)的平臺,以及在這個(gè)平臺上屬于每個(gè)用戶(hù)的唯一數據。但同時(shí),如果不分析和利用這些內容,“信息過(guò)載”將嚴重降低互聯(lián)網(wǎng)的效率。這是剛性需求。但企業(yè)家擔心的是這些社交平臺本身——它們是否開(kāi)放?他們現在有多開(kāi)放?他們未來(lái)會(huì )開(kāi)放到什么程度?我們可以從多個(gè)維度來(lái)討論這個(gè)問(wèn)題:企業(yè)戰略、社會(huì )趨勢、技術(shù)發(fā)展等等。
但創(chuàng )業(yè)者最關(guān)心的是這些平臺提供的API(應用程序接口)。畢竟內容是平臺的,API幾乎是其他人獲取這些內容的唯一合法途徑。API的種類(lèi)是否豐富,數據是否完整,使用時(shí)有多少限制,直接影響到創(chuàng )業(yè)想法的可行性。因此,我們將從以上幾個(gè)方面對中國最流行的兩個(gè)微博平臺騰訊和新浪做一個(gè)簡(jiǎn)單的比較。
API多樣性
使用開(kāi)放平臺的開(kāi)發(fā)者最關(guān)心的是“這個(gè)平臺提供了哪些API”和“這些API可以實(shí)現什么功能”。新浪已開(kāi)放近百個(gè)API接口。與騰訊相比,開(kāi)放方式更接近推特。如果我們仔細對比新浪和推特的API,會(huì )發(fā)現兩者不僅數量相當,而且從功能上來(lái)說(shuō),新浪幾乎提供了所有推特的開(kāi)放服務(wù)。相比之下,騰訊API的種類(lèi)要少得多,目前只有60個(gè)左右。仔細看,我們可以將微博平臺提供的服務(wù)大致分為:公共內容、用戶(hù)內容、用戶(hù)關(guān)系鏈、其他輔助功能(如搜索)。
1、 在公共內容上,騰訊和新浪都提供了獲取公共微博和熱點(diǎn)話(huà)題的接口。但新浪的熱門(mén)話(huà)題界面更加豐富,包括每周、每日和每小時(shí)的熱門(mén)話(huà)題。而騰訊只提供了“話(huà)題熱榜”界面,返回當前最熱門(mén)話(huà)題。
2、在“用戶(hù)內容”方面,兩個(gè)平臺的差異就更加明顯了。新浪的API接口以用戶(hù)為中心,而騰訊則更注重提供基礎數據。例如,對于微博上的轉發(fā)和評論,新浪直接提供了API來(lái)獲取用戶(hù)發(fā)送和接收的評論。但是,騰訊只提供了“獲取微博所有評論”的API。這意味著(zhù)“用戶(hù)收到的評論”可以通過(guò)新浪微博上的API請求獲得。在騰訊平臺,開(kāi)發(fā)者需要先獲取用戶(hù)發(fā)布的微博列表,然后再持有。微博再次向騰訊征求所有意見(jiàn)。不僅如此,騰訊還沒(méi)有開(kāi)放“獲取用戶(hù)評論”的界面。
3、 關(guān)于開(kāi)通“用戶(hù)關(guān)系鏈”,騰訊和新浪的差別不大,所有第三方都可以獲得用戶(hù)的粉絲和好友列表。由于騰訊微博本身提供了“專(zhuān)聽(tīng)”功能,用戶(hù)的“專(zhuān)聽(tīng)列表”也可以通過(guò)其API獲取。
4、最后,在“可訪(fǎng)問(wèn)性”上,雙方提供了“好友推薦”和比較完善的搜索服務(wù)(搜索用戶(hù),搜索微博),但新浪目前支持獲取可能對Tag感興趣的用戶(hù)” ,該API為基于微博的推薦服務(wù)提供了有效的參考信息。
API 的數量和類(lèi)型是多樣性的一方面,另一方面是每個(gè) API 的功能。與騰訊相比,新浪的API功能更加豐富。以“獲取用戶(hù)微博”界面為例,新浪接受的參數如下:
請求參數
必填類(lèi)型和范圍說(shuō)明
sourcetruestring AppKey在申請應用時(shí)分配,代表應用在調用接口時(shí)的唯一標識。(OAuth授權不需要此參數)
:idfalseint64/string 根據用戶(hù)ID(int6<??@4)或微博昵稱(chēng)(字符串)返回指定用戶(hù)的最新微博消息列表。該參數為REST風(fēng)格參數,見(jiàn)注釋
user_idfalseint64 用戶(hù)ID,主要用于區分用戶(hù)ID和微博昵稱(chēng)。當微博昵稱(chēng)與用戶(hù)ID產(chǎn)生歧義時(shí),建議使用該參數,尤其是微博昵稱(chēng)與用戶(hù)ID相同時(shí)
screen_namefalsestring 微博昵稱(chēng),主要用于區分用戶(hù)UID和微博昵稱(chēng)。當兩者相同且有歧義時(shí),建議使用該參數
since_idfalseint64 如果指定該參數,則只返回ID大于since_id(即發(fā)布時(shí)間晚于since_id)的微博消息。
max_idfalseint64 如果指定該參數,則返回ID小于等于max_id的微博消息
countfalseint,默認值為20,最大值為200。指定每頁(yè)返回的記錄數。
pagefalseint,默認值為1。頁(yè)碼。注:最多可返回 200 條分頁(yè)內容。
如果id、user_id、screen_name這三個(gè)參數都沒(méi)有指定,則返回當前登錄用戶(hù)發(fā)布的微博消息列表。
base_appfalseint 是否根據當前應用獲取數據。1表示限制本應用的微博,0表示不限制。
featurefalseint 微博類(lèi)型,0 全部,1原創(chuàng ),2 圖片,3 視頻,4 音樂(lè )。返回指定類(lèi)型微博的信息內容。
相比之下,騰訊的界面更原創(chuàng ):
請求參數
必填類(lèi)型和范圍說(shuō)明
oauthtruestringoauth 標準參數
Formatfalsestring 返回結果的格式:xml 或 json
Pageflagfalseint 頁(yè)面標志,0 表示第一頁(yè),1 表示向下,2 表示向上
pagetimefalseint 本頁(yè)開(kāi)始時(shí)間,第一頁(yè)填0,繼續翻頁(yè):填上次請求返回的最后一條記錄的時(shí)間
Reqnumfalseint 每個(gè)請求的記錄數
LastIdfalseint64 第一頁(yè)填0,繼續向下翻頁(yè),填上上次請求返回的最后一條記錄的ID,用于翻頁(yè)
Nametruestring 需要讀取的用戶(hù)的用戶(hù)名
我們可以看到騰訊的界面只提供了翻頁(yè)功能,而新浪提供了微博過(guò)濾。不僅是“獲取微博”接口,新浪的大部分API都具備一定程度的信息過(guò)濾能力,而騰訊的大部分接口只提供基礎數據。作為第三方開(kāi)發(fā)者,API接口功能的豐富不僅簡(jiǎn)化了開(kāi)發(fā),也降低了部分應用超出API請求限制的風(fēng)險。
數據的完整性
數據完整性是指開(kāi)放平臺是否限制開(kāi)發(fā)者請求某些數據時(shí)返回的數據量。最能體現一個(gè)平臺的開(kāi)放性。遺憾的是,從這個(gè)意義上說(shuō),新浪和騰訊都沒(méi)有真正開(kāi)放。以用戶(hù)的“粉絲列表”為例,可以看出新浪、騰訊和推特的區別。Twitter是一個(gè)真正開(kāi)放的平臺,開(kāi)發(fā)者可以通過(guò)API獲取任何用戶(hù)的完整粉絲列表。雖然一個(gè)請求最多返回 100 個(gè)粉絲的詳細信息,但我們可以通過(guò)在 Twitter 上發(fā)送多個(gè)請求來(lái)獲得完整的粉絲列表。再看新浪,一般授權用戶(hù)最多只能獲取5000條最新的粉絲信息,但與推特相比,新浪每個(gè)請求最多可以返回200個(gè)粉絲。然而,新浪和推特還為開(kāi)發(fā)者提供了專(zhuān)門(mén)的“社交圖譜”界面,可以一次性獲取用戶(hù)5000粉絲的id。不過(guò),新浪仍將總粉絲數設定為5000人,推特也一如既往的開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。
請求限制
很多開(kāi)發(fā)者抱怨開(kāi)放平臺,最多的不是API函數的數量,而是各個(gè)平臺對API請求的限制。但是所有的開(kāi)放平臺(無(wú)論是twitter、linkedin還是facebook)都會(huì )在一定程度上限制他們的開(kāi)發(fā)者使用自己的資源。這與“開(kāi)放”策略無(wú)關(guān),更多是基于系統安全的考慮。因此,各個(gè)平臺的API限制策略基本相同。例如,新浪給普通授權開(kāi)發(fā)者每個(gè)ip每小時(shí)最多10000個(gè)API請求,每個(gè)用戶(hù)每小時(shí)150個(gè)請求。(騰訊和新浪的詳細訪(fǎng)問(wèn)權限請參見(jiàn):和,3)。真正的問(wèn)題不是平臺授予基本授權應用多少請求配額,但是當應用程序因配額而受到限制時(shí),這些平臺如何為應用程序解決這個(gè)問(wèn)題。只有為平臺設計一個(gè)公開(kāi)、公平的規則,才能真正消除開(kāi)發(fā)者對其開(kāi)放性的疑慮。
通過(guò)以上分析,我們可以清楚地看到,新浪是目前國內最接近推特的微博平臺(無(wú)論是規模還是開(kāi)放度),這次山寨也恰到好處。與推特相比,騰訊的微博是一個(gè)完全不同的產(chǎn)品。雖然收錄了騰訊自己對微博和開(kāi)放平臺的理解和規劃,但目前只適合支持基本的“用戶(hù)驅動(dòng)”應用。對于“數據驅動(dòng)”的復雜應用,平臺的接口暫時(shí)還遠遠不能滿(mǎn)足開(kāi)發(fā)者的需求。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 李開(kāi)復:如何充分利用微博促進(jìn)技術(shù)論壇的發(fā)展?(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 64 次瀏覽 ? 2021-12-10 15:08
李開(kāi)復:如何充分利用微博促進(jìn)技術(shù)論壇的發(fā)展?(組圖))
隨著(zhù)微博的快速發(fā)展和普及,它在很多領(lǐng)域的參與和滲透也越來(lái)越廣泛,正如李開(kāi)復在《微博改變一切》一書(shū)中所說(shuō)。我們可以從以下報道中了解微博的過(guò)去、現狀和未來(lái)發(fā)展趨勢。以下為引用內容:
上海交通大學(xué)輿情研究實(shí)驗室于2010年12月28日發(fā)布了《2010中國微博年度報告》,報告預測2013年前后中國微博用戶(hù)將出現爆發(fā)式增長(cháng),2013年市場(chǎng)將進(jìn)入成熟期截止2010年10月,中國微博服務(wù)訪(fǎng)問(wèn)量已達12521.70,000人次,累計活躍注冊用戶(hù)數已超過(guò)6500萬(wàn)。
報告作者、上海交通大學(xué)一、媒體經(jīng)濟與管理研究中心主任劉耕云指出,2010年被稱(chēng)為中國微博發(fā)展元年,出現了井噴式發(fā)展。的發(fā)展。他表示,微博“發(fā)展速度快,影響力大,逐漸體現了論壇和博客的替代趨勢”。
基于以上信息,我們不僅可以預見(jiàn)微博的快速發(fā)展,還可以了解微博、論壇和博客在一定時(shí)期內并存的情況。那么如何充分利用微博來(lái)推動(dòng)技術(shù)論壇的發(fā)展呢?筆者根據最近的實(shí)踐講一些經(jīng)驗,給大家鼓勵!
首先,微博和論壇要一致
1、 一致定位:
在定位微博之前,我們先看看能否回答以下兩個(gè)問(wèn)題:
?。?)為誰(shuí)寫(xiě)微博?主要是針對目標人群,讓他們成為忠實(shí)粉絲。
?。?)寫(xiě)微博的目的是什么?每個(gè)人的目標都是多種多樣的,有的為了記錄自己的生活,有的為了社交,有的為了學(xué)習知識和技術(shù),為了分享想法和經(jīng)驗,為了休閑娛樂(lè )等等
讓我們通過(guò)對李開(kāi)復的采訪(fǎng)來(lái)加深對以上兩點(diǎn)的理解:
以下為引用內容:
問(wèn):你為什么寫(xiě)微博?
李開(kāi)復:我寫(xiě)微博的目的是記錄我的想法和有趣的事實(shí)+積極影響社會(huì )和他人。
問(wèn):給孩子的建議,微博怎么用?
李開(kāi)復:1) 不要只用微博看八卦、社交和游戲。微博是一款非常好的學(xué)習工具,點(diǎn)擊“關(guān)注”即可添加老師。2)不要沉默,不要潛水。這是沉默的公眾發(fā)出聲音的絕佳機會(huì )。甚至“轉貼”也是群眾智慧的機制之一。3)學(xué)好寫(xiě)作,積極影響他人,是一件神圣的事情。
當以上兩個(gè)問(wèn)題有了明確的答案后,微博的定位也就順理成章了。
作者的論壇是關(guān)于軟件測試的。目標受眾是大多數軟件測試工作者和對軟件測試感興趣的人。目的是學(xué)習知識和技術(shù),分享實(shí)踐經(jīng)驗。為此,我將我的微博命名為“讓試飛”,寓意通過(guò)大家的努力,這個(gè)行業(yè)會(huì )飛速發(fā)展。至此,我有了明確的定位,確定我的微博話(huà)題是關(guān)于軟件測試領(lǐng)域的,讓更多的目標人群(粉絲)了解它,關(guān)注它,通過(guò)微博找到論壇,讓論壇和微博可以達到互補的效果,進(jìn)而推動(dòng)論壇更好的發(fā)展。
2、內容是一樣的:
微博是一種互動(dòng)傳播速度極快的工具,傳播速度甚至比媒體還要快。微博的特色在于“微”字。發(fā)布一條消息只需要一句話(huà)(140字)。有人稱(chēng)之為140字的奇跡。另一個(gè)最大的特點(diǎn)是集成和開(kāi)放。您可以通過(guò)手機、IM軟件(gtalk、MSN、QQ、Skype)和外部API接口向您的微博發(fā)布消息。由于其便捷性、隨意性、低門(mén)檻(普通人與莎士比亞一樣),用戶(hù)群呈現爆發(fā)式增長(cháng)。如果利用好微博的這些特點(diǎn),結合論壇和微博內容的一致性,將有助于目標人群吸引論壇,促進(jìn)論壇的快速發(fā)展。
3、目標群體必須一致:
作者的論壇主要是討論軟件測試技術(shù),需要微博關(guān)注的目標人群是軟件測試相關(guān)的博主。只有這樣,論壇的粘性才能增加,相互促進(jìn)。從下圖可以看出,粉絲是目標人群:
二、微博與論壇互通技術(shù)的實(shí)現
筆者近期對國內三大微博(新浪、騰訊、搜狐)進(jìn)行了仔細對比。通過(guò)自己的使用和大家的口碑,相信大眾,承認新浪在微博領(lǐng)域領(lǐng)先一步;康盛DZ論壇產(chǎn)品分享第一。; 針對這兩點(diǎn),本文將以新浪微博和DZX1.5為例進(jìn)行相關(guān)舉例。
由于新浪在其微博應用上采取了一系列強有力的措施,目前它正在突飛猛進(jìn)地發(fā)展。
2010年11月16日——由新浪公司主辦的中國首屆微博開(kāi)發(fā)者大會(huì )在北京召開(kāi)。作為微博行業(yè)的首場(chǎng)科技盛宴,本次大會(huì )引起了行業(yè)專(zhuān)家、草根網(wǎng)友,尤其是各類(lèi)第三方開(kāi)發(fā)者的普遍關(guān)注。
攜手五家頂級風(fēng)險投資人,2億只專(zhuān)注于微博應用開(kāi)發(fā)的基金,推出了中國微博開(kāi)發(fā)者創(chuàng )新基金,這是國內首只專(zhuān)注于微博應用開(kāi)發(fā)的基金。為方便基于新浪微博的第三方開(kāi)發(fā),新浪微博建立了開(kāi)發(fā)者專(zhuān)屬區——新浪微博開(kāi)放平臺,并提供了強有力的措施,采取與開(kāi)發(fā)者3:7的分享。
近日,微博新域名()上線(xiàn),是計劃中的兩個(gè)域名之一。
這些都表明,新浪正在以開(kāi)放的理念在微博應用中構建一個(gè)龐大而良性的微博生態(tài)系統。
筆者在這里介紹的時(shí)候,感興趣的讀者可能已經(jīng)猜到了微博和論壇之間是否已經(jīng)有了連接工具?沒(méi)錯,就是XweiboforDiscuz!X1.5V1.1插件。為了節省空間,安裝過(guò)程等請參考官方網(wǎng)站。
為了讓讀者能夠閱讀本文,真正將其應用到自己的論壇中,達到標題中的目標,筆者將在論壇中詳細介紹一下新浪微博的使用說(shuō)明。
一、綁定微博賬號
登錄本論壇后,如果您還沒(méi)有綁定新浪微博,會(huì )出現下圖“綁定微博賬號”紅色按鈕(綁定后不會(huì )再出現)。
點(diǎn)擊這個(gè)紅色按鈕,會(huì )出現如下界面:
如果您已經(jīng)有新浪微博賬號,只需點(diǎn)擊“綁定新浪微博”按鈕;否則,點(diǎn)擊“注冊新浪微博”,您將進(jìn)入新浪微博注冊頁(yè)面,只需輸入您的電子郵件地址并創(chuàng )建密碼和驗證碼,大約一分鐘即可完成注冊。
按照以上步驟,點(diǎn)擊“綁定新浪微博”按鈕,彈出如下界面:
輸入賬號和密碼后,點(diǎn)擊“授權”按鈕,出現新浪微博設置頁(yè)面:
在這里您可以選擇需要與新浪微博同步的社區中的哪些。一共五個(gè)項目:發(fā)帖、記錄、日志、分享和傳送門(mén)文章。勾選的選項在發(fā)布時(shí)會(huì )提示是否同步到新浪微博(下面會(huì )涉及到)。
設置好后,點(diǎn)擊“保存設置”,出現一個(gè)很酷的提示,如下圖:
行!綁定完成。下面我們詳細說(shuō)一下操作。
二、如何使用
為了節省篇幅,以下僅以發(fā)布話(huà)題同步到新浪微博為例。其他的比如同步發(fā)布日志(記錄、分享)到新浪微博也類(lèi)似。
如果你想讓更多人分享你發(fā)布的話(huà)題,你可以考慮轉發(fā)到新浪微博。這很容易做到。請看下圖,勾選“同時(shí)發(fā)布到新浪微博”即可。
也可以轉發(fā)之前發(fā)表的話(huà)題,點(diǎn)擊最后一個(gè)“轉發(fā)”按鈕即可,如下圖:
轉發(fā)到新浪微博后的效果圖:
如果您想查看論壇中的原文,只需點(diǎn)擊上方紅框中的超鏈接即可。
最后,需要說(shuō)明的是圖底部的“來(lái)自天天軟件測試社區”。如果審核失敗,將顯示為“來(lái)自失敗的審核申請”。關(guān)于如何申請新浪微博Appkey,可以通過(guò)官方開(kāi)放平臺了解。網(wǎng)上有很多相關(guān)的文章。
最后說(shuō)說(shuō)如何經(jīng)營(yíng)自己的微博
微博的定位、內容和目標人群我已經(jīng)講過(guò)了?,F在我們來(lái)談?wù)劰芾硭鼈兊拇胧┖头椒?。只有做好微博,才能達到推動(dòng)社區快速發(fā)展的目標。
一要完善微博信息。包括:昵稱(chēng)設置要與網(wǎng)站的名字一致或密切相關(guān),網(wǎng)站的個(gè)人資料可以寫(xiě)在個(gè)人信息中,標簽應該寫(xiě)網(wǎng)站關(guān)鍵詞 等等。如果條件允許,還可以申請實(shí)名認證,增加一定的權限。
其次,在不偏離內容定位的前提下,堅持每天在線(xiàn)人數高峰期定期更新信息,熱情回復和解決粉絲提出的問(wèn)題;追求文字簡(jiǎn)潔,附圖片,帶#topics#,利于搜索;在社區開(kāi)展“轉發(fā)微博打賞”等活動(dòng),將更多的精華內容推送到微博;適當轉發(fā)行業(yè)或名人微博,讓專(zhuān)家的聲音能傳播得更廣更遠。
以上只是筆者使用的部分措施和方法。你可以在網(wǎng)上找到更多相關(guān)的話(huà)題,然后根據自己的網(wǎng)站做出合理的選擇。
先總結一下,不管我怎么努力讓閱讀這篇文章的讀者文章都能善用微博和論壇,我還是覺(jué)得自己做不到。比如文章中提到的微博插件(XweiboforDiscuz!X1.5V1.1,截至發(fā)稿已升級為2.0beta),不同的人可能會(huì )遇到不同的問(wèn)題,如按鈕錯位、與其他插件沖突、插件本身的bug等,本文無(wú)法解釋清楚。因此,正確的應該是一個(gè)好的開(kāi)始。如果能幫到你,就是我的追求!歡迎發(fā)表您的意見(jiàn)和批評!
歡迎轉載,轉載請注明第一個(gè)網(wǎng)址:本文來(lái)自:天天軟件測試社區(),詳細文章參考: 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
李開(kāi)復:如何充分利用微博促進(jìn)技術(shù)論壇的發(fā)展?(組圖))

隨著(zhù)微博的快速發(fā)展和普及,它在很多領(lǐng)域的參與和滲透也越來(lái)越廣泛,正如李開(kāi)復在《微博改變一切》一書(shū)中所說(shuō)。我們可以從以下報道中了解微博的過(guò)去、現狀和未來(lái)發(fā)展趨勢。以下為引用內容:
上海交通大學(xué)輿情研究實(shí)驗室于2010年12月28日發(fā)布了《2010中國微博年度報告》,報告預測2013年前后中國微博用戶(hù)將出現爆發(fā)式增長(cháng),2013年市場(chǎng)將進(jìn)入成熟期截止2010年10月,中國微博服務(wù)訪(fǎng)問(wèn)量已達12521.70,000人次,累計活躍注冊用戶(hù)數已超過(guò)6500萬(wàn)。
報告作者、上海交通大學(xué)一、媒體經(jīng)濟與管理研究中心主任劉耕云指出,2010年被稱(chēng)為中國微博發(fā)展元年,出現了井噴式發(fā)展。的發(fā)展。他表示,微博“發(fā)展速度快,影響力大,逐漸體現了論壇和博客的替代趨勢”。
基于以上信息,我們不僅可以預見(jiàn)微博的快速發(fā)展,還可以了解微博、論壇和博客在一定時(shí)期內并存的情況。那么如何充分利用微博來(lái)推動(dòng)技術(shù)論壇的發(fā)展呢?筆者根據最近的實(shí)踐講一些經(jīng)驗,給大家鼓勵!
首先,微博和論壇要一致
1、 一致定位:
在定位微博之前,我們先看看能否回答以下兩個(gè)問(wèn)題:
?。?)為誰(shuí)寫(xiě)微博?主要是針對目標人群,讓他們成為忠實(shí)粉絲。
?。?)寫(xiě)微博的目的是什么?每個(gè)人的目標都是多種多樣的,有的為了記錄自己的生活,有的為了社交,有的為了學(xué)習知識和技術(shù),為了分享想法和經(jīng)驗,為了休閑娛樂(lè )等等
讓我們通過(guò)對李開(kāi)復的采訪(fǎng)來(lái)加深對以上兩點(diǎn)的理解:
以下為引用內容:
問(wèn):你為什么寫(xiě)微博?
李開(kāi)復:我寫(xiě)微博的目的是記錄我的想法和有趣的事實(shí)+積極影響社會(huì )和他人。
問(wèn):給孩子的建議,微博怎么用?
李開(kāi)復:1) 不要只用微博看八卦、社交和游戲。微博是一款非常好的學(xué)習工具,點(diǎn)擊“關(guān)注”即可添加老師。2)不要沉默,不要潛水。這是沉默的公眾發(fā)出聲音的絕佳機會(huì )。甚至“轉貼”也是群眾智慧的機制之一。3)學(xué)好寫(xiě)作,積極影響他人,是一件神圣的事情。
當以上兩個(gè)問(wèn)題有了明確的答案后,微博的定位也就順理成章了。
作者的論壇是關(guān)于軟件測試的。目標受眾是大多數軟件測試工作者和對軟件測試感興趣的人。目的是學(xué)習知識和技術(shù),分享實(shí)踐經(jīng)驗。為此,我將我的微博命名為“讓試飛”,寓意通過(guò)大家的努力,這個(gè)行業(yè)會(huì )飛速發(fā)展。至此,我有了明確的定位,確定我的微博話(huà)題是關(guān)于軟件測試領(lǐng)域的,讓更多的目標人群(粉絲)了解它,關(guān)注它,通過(guò)微博找到論壇,讓論壇和微博可以達到互補的效果,進(jìn)而推動(dòng)論壇更好的發(fā)展。
2、內容是一樣的:
微博是一種互動(dòng)傳播速度極快的工具,傳播速度甚至比媒體還要快。微博的特色在于“微”字。發(fā)布一條消息只需要一句話(huà)(140字)。有人稱(chēng)之為140字的奇跡。另一個(gè)最大的特點(diǎn)是集成和開(kāi)放。您可以通過(guò)手機、IM軟件(gtalk、MSN、QQ、Skype)和外部API接口向您的微博發(fā)布消息。由于其便捷性、隨意性、低門(mén)檻(普通人與莎士比亞一樣),用戶(hù)群呈現爆發(fā)式增長(cháng)。如果利用好微博的這些特點(diǎn),結合論壇和微博內容的一致性,將有助于目標人群吸引論壇,促進(jìn)論壇的快速發(fā)展。
3、目標群體必須一致:
作者的論壇主要是討論軟件測試技術(shù),需要微博關(guān)注的目標人群是軟件測試相關(guān)的博主。只有這樣,論壇的粘性才能增加,相互促進(jìn)。從下圖可以看出,粉絲是目標人群:

二、微博與論壇互通技術(shù)的實(shí)現
筆者近期對國內三大微博(新浪、騰訊、搜狐)進(jìn)行了仔細對比。通過(guò)自己的使用和大家的口碑,相信大眾,承認新浪在微博領(lǐng)域領(lǐng)先一步;康盛DZ論壇產(chǎn)品分享第一。; 針對這兩點(diǎn),本文將以新浪微博和DZX1.5為例進(jìn)行相關(guān)舉例。
由于新浪在其微博應用上采取了一系列強有力的措施,目前它正在突飛猛進(jìn)地發(fā)展。
2010年11月16日——由新浪公司主辦的中國首屆微博開(kāi)發(fā)者大會(huì )在北京召開(kāi)。作為微博行業(yè)的首場(chǎng)科技盛宴,本次大會(huì )引起了行業(yè)專(zhuān)家、草根網(wǎng)友,尤其是各類(lèi)第三方開(kāi)發(fā)者的普遍關(guān)注。
攜手五家頂級風(fēng)險投資人,2億只專(zhuān)注于微博應用開(kāi)發(fā)的基金,推出了中國微博開(kāi)發(fā)者創(chuàng )新基金,這是國內首只專(zhuān)注于微博應用開(kāi)發(fā)的基金。為方便基于新浪微博的第三方開(kāi)發(fā),新浪微博建立了開(kāi)發(fā)者專(zhuān)屬區——新浪微博開(kāi)放平臺,并提供了強有力的措施,采取與開(kāi)發(fā)者3:7的分享。
近日,微博新域名()上線(xiàn),是計劃中的兩個(gè)域名之一。
這些都表明,新浪正在以開(kāi)放的理念在微博應用中構建一個(gè)龐大而良性的微博生態(tài)系統。
筆者在這里介紹的時(shí)候,感興趣的讀者可能已經(jīng)猜到了微博和論壇之間是否已經(jīng)有了連接工具?沒(méi)錯,就是XweiboforDiscuz!X1.5V1.1插件。為了節省空間,安裝過(guò)程等請參考官方網(wǎng)站。
為了讓讀者能夠閱讀本文,真正將其應用到自己的論壇中,達到標題中的目標,筆者將在論壇中詳細介紹一下新浪微博的使用說(shuō)明。
一、綁定微博賬號
登錄本論壇后,如果您還沒(méi)有綁定新浪微博,會(huì )出現下圖“綁定微博賬號”紅色按鈕(綁定后不會(huì )再出現)。

點(diǎn)擊這個(gè)紅色按鈕,會(huì )出現如下界面:

如果您已經(jīng)有新浪微博賬號,只需點(diǎn)擊“綁定新浪微博”按鈕;否則,點(diǎn)擊“注冊新浪微博”,您將進(jìn)入新浪微博注冊頁(yè)面,只需輸入您的電子郵件地址并創(chuàng )建密碼和驗證碼,大約一分鐘即可完成注冊。
按照以上步驟,點(diǎn)擊“綁定新浪微博”按鈕,彈出如下界面:

輸入賬號和密碼后,點(diǎn)擊“授權”按鈕,出現新浪微博設置頁(yè)面:

在這里您可以選擇需要與新浪微博同步的社區中的哪些。一共五個(gè)項目:發(fā)帖、記錄、日志、分享和傳送門(mén)文章。勾選的選項在發(fā)布時(shí)會(huì )提示是否同步到新浪微博(下面會(huì )涉及到)。
設置好后,點(diǎn)擊“保存設置”,出現一個(gè)很酷的提示,如下圖:

行!綁定完成。下面我們詳細說(shuō)一下操作。
二、如何使用
為了節省篇幅,以下僅以發(fā)布話(huà)題同步到新浪微博為例。其他的比如同步發(fā)布日志(記錄、分享)到新浪微博也類(lèi)似。
如果你想讓更多人分享你發(fā)布的話(huà)題,你可以考慮轉發(fā)到新浪微博。這很容易做到。請看下圖,勾選“同時(shí)發(fā)布到新浪微博”即可。

也可以轉發(fā)之前發(fā)表的話(huà)題,點(diǎn)擊最后一個(gè)“轉發(fā)”按鈕即可,如下圖:

轉發(fā)到新浪微博后的效果圖:

如果您想查看論壇中的原文,只需點(diǎn)擊上方紅框中的超鏈接即可。
最后,需要說(shuō)明的是圖底部的“來(lái)自天天軟件測試社區”。如果審核失敗,將顯示為“來(lái)自失敗的審核申請”。關(guān)于如何申請新浪微博Appkey,可以通過(guò)官方開(kāi)放平臺了解。網(wǎng)上有很多相關(guān)的文章。
最后說(shuō)說(shuō)如何經(jīng)營(yíng)自己的微博
微博的定位、內容和目標人群我已經(jīng)講過(guò)了?,F在我們來(lái)談?wù)劰芾硭鼈兊拇胧┖头椒?。只有做好微博,才能達到推動(dòng)社區快速發(fā)展的目標。
一要完善微博信息。包括:昵稱(chēng)設置要與網(wǎng)站的名字一致或密切相關(guān),網(wǎng)站的個(gè)人資料可以寫(xiě)在個(gè)人信息中,標簽應該寫(xiě)網(wǎng)站關(guān)鍵詞 等等。如果條件允許,還可以申請實(shí)名認證,增加一定的權限。
其次,在不偏離內容定位的前提下,堅持每天在線(xiàn)人數高峰期定期更新信息,熱情回復和解決粉絲提出的問(wèn)題;追求文字簡(jiǎn)潔,附圖片,帶#topics#,利于搜索;在社區開(kāi)展“轉發(fā)微博打賞”等活動(dòng),將更多的精華內容推送到微博;適當轉發(fā)行業(yè)或名人微博,讓專(zhuān)家的聲音能傳播得更廣更遠。
以上只是筆者使用的部分措施和方法。你可以在網(wǎng)上找到更多相關(guān)的話(huà)題,然后根據自己的網(wǎng)站做出合理的選擇。
先總結一下,不管我怎么努力讓閱讀這篇文章的讀者文章都能善用微博和論壇,我還是覺(jué)得自己做不到。比如文章中提到的微博插件(XweiboforDiscuz!X1.5V1.1,截至發(fā)稿已升級為2.0beta),不同的人可能會(huì )遇到不同的問(wèn)題,如按鈕錯位、與其他插件沖突、插件本身的bug等,本文無(wú)法解釋清楚。因此,正確的應該是一個(gè)好的開(kāi)始。如果能幫到你,就是我的追求!歡迎發(fā)表您的意見(jiàn)和批評!
歡迎轉載,轉載請注明第一個(gè)網(wǎng)址:本文來(lái)自:天天軟件測試社區(),詳細文章參考:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(試試用python調用微博API的SDK授權所必須的 )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 53 次瀏覽 ? 2021-12-10 10:13
)
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的app,然后你就可以得到app key和app secret,這些是app獲得OAuth2.0授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret外,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
重試.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff 0:
if rv == True or type(rv) == str: # Done on success ..
return rv
mtries -= 1 # consume an attempt
time.sleep(mdelay) # wait...
mdelay *= backoff # make future wait longer
rv = f(*args, **kwargs) # Try again
return False # Ran out of tries :-(
return f_retry # true decorator -> decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(試試用python調用微博API的SDK授權所必須的
)
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的app,然后你就可以得到app key和app secret,這些是app獲得OAuth2.0授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret外,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')


重試.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff 0:
if rv == True or type(rv) == str: # Done on success ..
return rv
mtries -= 1 # consume an attempt
time.sleep(mdelay) # wait...
mdelay *= backoff # make future wait longer
rv = f(*args, **kwargs) # Try again
return False # Ran out of tries :-(
return f_retry # true decorator -> decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator


使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博SDK及示例工程目錄結構及分析SDK(圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 56 次瀏覽 ? 2021-12-09 20:03
登出API
用于收回用戶(hù)的授權。
邀請API
提供好友邀請功能,支持登錄用戶(hù)向微博好友發(fā)送私信邀請和禮物。
注:目前我們只提供部分接口。主要原因是API太大。測試每個(gè) API 也是一項非常耗時(shí)的任務(wù)。因此,我們在使用時(shí)優(yōu)先開(kāi)放第三方最關(guān)心的少數幾個(gè)API(如上表所示),其他API繼續放在com.sina.weibo.sdk.openapi.legacy下。其實(shí)這些API我們并沒(méi)有全部發(fā)布,也希望第三方開(kāi)發(fā)者可以和我們一起維護這些API,并將修改后的代碼推送到Github。
另外,網(wǎng)絡(luò )模塊重構了一個(gè)簡(jiǎn)單易用的框架,第三方開(kāi)發(fā)者可以通過(guò)Http請求直接調用OpenAPI接口,見(jiàn):。
API 文檔
運行示例代碼
為了方便第三方應用更快地集成微博SDK,更清晰地了解當前微博SDK提供的功能,我們在GitHub上提供了一個(gè)簡(jiǎn)單的示例工程和相應的APK安裝包。
方法一:直接通過(guò)adb install命令安裝WeiboSDKDemo.apk
方法二:在Eclipse中導入并運行WeiboSDKDemo工程(詳見(jiàn)微博Android平臺SDK文檔3.1.1.pdf:運行示例代碼)
注意:通過(guò)第二種方式運行項目時(shí),一定要替換默認的debug.keystore文件,否則授權不會(huì )成功。另外,debug.keysotre 是新浪官方的。除編譯運行官方DEMO外,請勿直接使用。出于安全原因,您應該為您的應用程序提供一個(gè)密鑰。
在 C:\Users\XXXXX\.android 目錄中,將 Android 默認的 debug.keystore 替換為 GitHub 上提供的官方 debug.keystore。
微博SDK和DEMO項目目錄結構及分析
微博SDK目前以部分開(kāi)源的形式提供給第三方開(kāi)發(fā)者。簡(jiǎn)而言之,可以分為以下三個(gè)部分:
集成前準備1. 申請應用的APP_KEY
這一步需要在微博開(kāi)放平臺注冊您的應用,獲取APP_KEY,并添加應用的授權回調頁(yè)面(Redirect URI)。詳情請仔細閱讀:手機客戶(hù)端訪(fǎng)問(wèn)()
2. 注冊應用的包名和簽名
您需要在微博開(kāi)放平臺注冊應用的包名和簽名,才能正確進(jìn)行授權。
請注意:未注冊包名及簽名,或簽名注冊不正確將導致授權失敗。
應用包名:指AndroidManifest.xml文件中包標簽所代表的內容。
應用簽名:簽名是官方簽名工具生成的MD5值。
詳情請看:微博Android平臺SDK文檔V3.1.1.pdf:如何使用簽名工具獲取你的應用簽名?
3. 選擇你想要的集成方式
在集成微博 SDK 之前,您有兩種可選的方式來(lái)集成微博 SDK:
詳情請看:微博Android平臺SDK文檔3.1.1.pdf 中:選擇你要集成的方式
4. 在你的應用中添加SDK需要的權限
5. 在你的應用中注冊SDK需要的Activity和Service
第三方如何使用(認證和授權)1.,替換為自己應用的APP_KEY等參數
鑒于很多第三方開(kāi)發(fā)者直接復制使用Demo中的Constants類(lèi),需要說(shuō)明的是,第三方開(kāi)發(fā)者需要將Constants類(lèi)中的各種參數替換為自己的應用參數。請仔細閱讀代碼注釋。
public interface Constants {
/** 當前 DEMO 應用的 APP_KEY,第三方應用應該使用自己的 APP_KEY 替換該 APP_KEY */
public static final String APP_KEY = "2045436852";
/**
* 當前 DEMO 應用的回調頁(yè),第三方應用可以使用自己的回調頁(yè)。
* 建議使用默認回調頁(yè):https://api.weibo.com/oauth2/default.html
*/
public static final String REDIRECT_URL = "http://www.sina.com";
/**
* WeiboSDKDemo 應用對應的權限,第三方開(kāi)發(fā)者一般不需要這么多,可直接設置成空即可。
* 詳情請查看 Demo 中對應的注釋。
*/
public static final String SCOPE =
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}
2. 創(chuàng )建微博API接口類(lèi)對象
mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
其中:APP_KEY、REDIRECT_URL、SCOPE需要替換為第三方應用申請的內容。
3. 實(shí)現 WeiboAuthListener 接口
class AuthListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
// 從 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// 保存 Token 到 SharedPreferences
AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken);
.........
} else {
// 當您注冊的應用程序簽名不正確時(shí),就會(huì )收到 Code,請確保簽名正確
String code = values.getString("code", "");
.........
}
}
@Override
public void onCancel() {
}
@Override
public void onWeiboException(WeiboException e) {
}
}
4. 調用方法、認證和授權
以上三個(gè)授權需要在A(yíng)ctivity的onActivityResult函數中調用以下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
網(wǎng)絡(luò )請求框架的使用
在V2.5.0以后的版本中,我們重構了網(wǎng)絡(luò )模塊,提供了同步和異步網(wǎng)絡(luò )請求接口。
異步接口:AsyncWeiboRunner#requestAsync(String, WeiboParameters, String, RequestListener)
同步接口:AsyncWeiboRunner#request(String, WeiboParameters, String)
其中,同步接口用于開(kāi)發(fā)者有自己的異步請求機制。
示例:使用異步接口發(fā)送帶有圖片的微博
// 1. 獲取要發(fā)送的圖片
Drawable drawable = getResources().getDrawable(R.drawable.ic_com_sina_weibo_sdk_logo);
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// 2. 調用接口發(fā)送微博
WeiboParameters params = new WeiboParameters();
params.put("access_token", mAccessToken.getToken());
params.put("status", "通過(guò)API發(fā)送微博-upload");
params.put("visible", "0");
params.put("list_id", "");
params.put("pic", bitmap);
params.put("lat", "14.5");
params.put("long", "23.0");
params.put("annotations", "");
AsyncWeiboRunner.requestAsync(
"https://api.weibo.com/2/statuses/upload.json",
params,
"POST",
mListener);
以上代碼中,請開(kāi)發(fā)者自行補充mAccessToken和mListener
其他功能
其他功能請參考文檔:微博Android平臺SDK文檔V3.1.1.pdf 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博SDK及示例工程目錄結構及分析SDK(圖))
登出API
用于收回用戶(hù)的授權。
邀請API
提供好友邀請功能,支持登錄用戶(hù)向微博好友發(fā)送私信邀請和禮物。
注:目前我們只提供部分接口。主要原因是API太大。測試每個(gè) API 也是一項非常耗時(shí)的任務(wù)。因此,我們在使用時(shí)優(yōu)先開(kāi)放第三方最關(guān)心的少數幾個(gè)API(如上表所示),其他API繼續放在com.sina.weibo.sdk.openapi.legacy下。其實(shí)這些API我們并沒(méi)有全部發(fā)布,也希望第三方開(kāi)發(fā)者可以和我們一起維護這些API,并將修改后的代碼推送到Github。
另外,網(wǎng)絡(luò )模塊重構了一個(gè)簡(jiǎn)單易用的框架,第三方開(kāi)發(fā)者可以通過(guò)Http請求直接調用OpenAPI接口,見(jiàn):。
API 文檔
運行示例代碼
為了方便第三方應用更快地集成微博SDK,更清晰地了解當前微博SDK提供的功能,我們在GitHub上提供了一個(gè)簡(jiǎn)單的示例工程和相應的APK安裝包。
方法一:直接通過(guò)adb install命令安裝WeiboSDKDemo.apk
方法二:在Eclipse中導入并運行WeiboSDKDemo工程(詳見(jiàn)微博Android平臺SDK文檔3.1.1.pdf:運行示例代碼)
注意:通過(guò)第二種方式運行項目時(shí),一定要替換默認的debug.keystore文件,否則授權不會(huì )成功。另外,debug.keysotre 是新浪官方的。除編譯運行官方DEMO外,請勿直接使用。出于安全原因,您應該為您的應用程序提供一個(gè)密鑰。
在 C:\Users\XXXXX\.android 目錄中,將 Android 默認的 debug.keystore 替換為 GitHub 上提供的官方 debug.keystore。
微博SDK和DEMO項目目錄結構及分析
微博SDK目前以部分開(kāi)源的形式提供給第三方開(kāi)發(fā)者。簡(jiǎn)而言之,可以分為以下三個(gè)部分:
集成前準備1. 申請應用的APP_KEY
這一步需要在微博開(kāi)放平臺注冊您的應用,獲取APP_KEY,并添加應用的授權回調頁(yè)面(Redirect URI)。詳情請仔細閱讀:手機客戶(hù)端訪(fǎng)問(wèn)()
2. 注冊應用的包名和簽名
您需要在微博開(kāi)放平臺注冊應用的包名和簽名,才能正確進(jìn)行授權。
請注意:未注冊包名及簽名,或簽名注冊不正確將導致授權失敗。
應用包名:指AndroidManifest.xml文件中包標簽所代表的內容。
應用簽名:簽名是官方簽名工具生成的MD5值。
詳情請看:微博Android平臺SDK文檔V3.1.1.pdf:如何使用簽名工具獲取你的應用簽名?
3. 選擇你想要的集成方式
在集成微博 SDK 之前,您有兩種可選的方式來(lái)集成微博 SDK:
詳情請看:微博Android平臺SDK文檔3.1.1.pdf 中:選擇你要集成的方式
4. 在你的應用中添加SDK需要的權限
5. 在你的應用中注冊SDK需要的Activity和Service
第三方如何使用(認證和授權)1.,替換為自己應用的APP_KEY等參數
鑒于很多第三方開(kāi)發(fā)者直接復制使用Demo中的Constants類(lèi),需要說(shuō)明的是,第三方開(kāi)發(fā)者需要將Constants類(lèi)中的各種參數替換為自己的應用參數。請仔細閱讀代碼注釋。
public interface Constants {
/** 當前 DEMO 應用的 APP_KEY,第三方應用應該使用自己的 APP_KEY 替換該 APP_KEY */
public static final String APP_KEY = "2045436852";
/**
* 當前 DEMO 應用的回調頁(yè),第三方應用可以使用自己的回調頁(yè)。
* 建議使用默認回調頁(yè):https://api.weibo.com/oauth2/default.html
*/
public static final String REDIRECT_URL = "http://www.sina.com";
/**
* WeiboSDKDemo 應用對應的權限,第三方開(kāi)發(fā)者一般不需要這么多,可直接設置成空即可。
* 詳情請查看 Demo 中對應的注釋。
*/
public static final String SCOPE =
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}
2. 創(chuàng )建微博API接口類(lèi)對象
mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
其中:APP_KEY、REDIRECT_URL、SCOPE需要替換為第三方應用申請的內容。
3. 實(shí)現 WeiboAuthListener 接口
class AuthListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
// 從 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// 保存 Token 到 SharedPreferences
AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken);
.........
} else {
// 當您注冊的應用程序簽名不正確時(shí),就會(huì )收到 Code,請確保簽名正確
String code = values.getString("code", "");
.........
}
}
@Override
public void onCancel() {
}
@Override
public void onWeiboException(WeiboException e) {
}
}
4. 調用方法、認證和授權
以上三個(gè)授權需要在A(yíng)ctivity的onActivityResult函數中調用以下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
網(wǎng)絡(luò )請求框架的使用
在V2.5.0以后的版本中,我們重構了網(wǎng)絡(luò )模塊,提供了同步和異步網(wǎng)絡(luò )請求接口。
異步接口:AsyncWeiboRunner#requestAsync(String, WeiboParameters, String, RequestListener)
同步接口:AsyncWeiboRunner#request(String, WeiboParameters, String)
其中,同步接口用于開(kāi)發(fā)者有自己的異步請求機制。
示例:使用異步接口發(fā)送帶有圖片的微博
// 1. 獲取要發(fā)送的圖片
Drawable drawable = getResources().getDrawable(R.drawable.ic_com_sina_weibo_sdk_logo);
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// 2. 調用接口發(fā)送微博
WeiboParameters params = new WeiboParameters();
params.put("access_token", mAccessToken.getToken());
params.put("status", "通過(guò)API發(fā)送微博-upload");
params.put("visible", "0");
params.put("list_id", "");
params.put("pic", bitmap);
params.put("lat", "14.5");
params.put("long", "23.0");
params.put("annotations", "");
AsyncWeiboRunner.requestAsync(
"https://api.weibo.com/2/statuses/upload.json",
params,
"POST",
mListener);
以上代碼中,請開(kāi)發(fā)者自行補充mAccessToken和mListener
其他功能
其他功能請參考文檔:微博Android平臺SDK文檔V3.1.1.pdf
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用python調用微博API的授權機制是什么?如何使用)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 50 次瀏覽 ? 2021-12-09 00:04
不用稻草做磚。
數據采集??是數據分析的前提。許多網(wǎng)站會(huì )通過(guò)API接口向第三方開(kāi)放網(wǎng)站的部分數據。新浪微博也不例外。您可以查看微博API列表。
本文將初步介紹如何使用微博API獲取基本概念和理解,方便后面深入理解。
step1:使用python調用微博API,首先下載python SDK,即sinaweibopy
Sinaweibopy是一款Python專(zhuān)用的OAuth 2客戶(hù)端,支持微博API,無(wú)依賴(lài),100%純Py,單文件,代碼簡(jiǎn)單,運行可靠,也是新浪微博的Python SDK。
可以直接通過(guò)pip安裝:
pip install sinaweibopy
什么是SDK?SDK的英文全稱(chēng)是軟件開(kāi)發(fā)工具包(software development kit)。簡(jiǎn)而言之,它是一個(gè)代碼庫,其中收錄用于開(kāi)發(fā)應用程序的可重用代碼。為應用編寫(xiě)代碼時(shí),無(wú)需重復編寫(xiě)在實(shí)際屏幕上繪制文本等代碼。SDK 可以幫助您做到這一點(diǎn)。簡(jiǎn)而言之,所有這些代碼庫和一些其他工具構成了我們所說(shuō)的 SDK。
step2:了解新浪微博的授權機制,即OAuth 2
API 調用需要獲取用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權過(guò)程請參考如下流程圖,其中Client指的是第三方應用(也就是我們自己在第三步創(chuàng )建的應用),Resource Owner指的是一個(gè)user,Authorization Server 是我們的授權 Server,Resource Server 是一個(gè) API server。
從流程圖中可以看出,為了調用API服務(wù)器內容,需要將訪(fǎng)問(wèn)令牌告知API服務(wù)器;用戶(hù)獲得授權后,將訪(fǎng)問(wèn)令牌返回給新浪(授權服務(wù)器)創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們應用程序首先要給用戶(hù)授權頁(yè)面(授權請求)。
微博API的授權機制(來(lái)自微博開(kāi)放平臺開(kāi)發(fā)文檔)
用戶(hù)授權后,瀏覽器的URL如下所示:
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)得到用戶(hù)的授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,從API服務(wù)器獲取微博數據。
了解了上面的機制后,我們就知道如何編寫(xiě)代碼來(lái)調用API了。
step3:在微博開(kāi)放平臺上創(chuàng )建自己的應用
現在讓我們創(chuàng )建我們自己的應用程序。創(chuàng )建應用程序的目的是獲取應用程序密鑰和應用程序機密。
我們通過(guò)微連接創(chuàng )建移動(dòng)應用程序。您還可以創(chuàng )建其他類(lèi)型的應用程序。創(chuàng )建應用程序后,將分配唯一的應用程序密鑰和應用程序機密。您可以在“我的申請-申請信息-基本信息”中查看,用于授權。注意:無(wú)需提交審核,只需提供應用密鑰和應用密鑰即可。
如果是異地web應用或者手機客戶(hù)端應用,出于安全考慮,需要填寫(xiě)平臺的redirect_url(授權回調頁(yè)面)網(wǎng)站使用OAuth2.0。填寫(xiě)地址為“我的申請>申請信息>高級信息”。這里,我們將授權回調頁(yè)面和取消授權回調頁(yè)面都設置為默認回調頁(yè)面:
我的申請-申請信息-高級信息
step4:python代碼實(shí)現
首先,導入所需的模塊:
from weibo import APIClient
import webbrowser #python內置的包,支持對瀏覽器進(jìn)行操作
使用微博 SDK 創(chuàng )建我們的應用程序:
APP_KEY = '123456'
APP_SECRET = 'abc123xyz456'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' #回調授權頁(yè)面,用戶(hù)完成授權后返回的頁(yè)面
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
授權頁(yè)面的url(%3A//oauth2/default.html&response_type=code&client_id=729983294)。用webbrowser打開(kāi)這個(gè)url,會(huì )喚醒瀏覽器打開(kāi)
url=client.get_authorize_url() #得到授權頁(yè)面的url
webbrowser.open_new(url) #打開(kāi)這個(gè)url
打開(kāi)授權頁(yè)面的url
用戶(hù)完成授權后,URL 如下所示:。我們需要code=后面的內容。
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
使用代碼獲取訪(fǎng)問(wèn)令牌:
r = client.request_access_token(code)
access_token = r.access_token # 新浪(授權服務(wù)器)返回的token
expires_in = r.expires_in
您可以打印 r 以查看里面的內容:
print(r)
{'access_token': u'abcqwe123', 'expires': 1662109746, 'expires_in': 1662109746, 'uid': u'2164581421'}
設置access_token后,可以直接調用API:
client.set_access_token(access_token, expires_in)
輸出最新的公眾微博:
print(client.statuses__public_timeline)
返回的具體內容可以在微博API文檔中找到。
例如,我們可以輸出用戶(hù)的昵稱(chēng)、個(gè)人資料、位置和微博:
for i in range(0,length):
print(u'昵稱(chēng):'+statuses[i]['user']['screen_name'])
print(u'簡(jiǎn)介:'+statuses[i]['user']['description'])
print(u'位置:'+statuses[i]['user']['location'])
print(u'微博:'+statuses[i]['text'])
最新公開(kāi)微博
參考資料:
Python調用微博API
如何通過(guò)python調用新浪微博的API 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用python調用微博API的授權機制是什么?如何使用)
不用稻草做磚。
數據采集??是數據分析的前提。許多網(wǎng)站會(huì )通過(guò)API接口向第三方開(kāi)放網(wǎng)站的部分數據。新浪微博也不例外。您可以查看微博API列表。
本文將初步介紹如何使用微博API獲取基本概念和理解,方便后面深入理解。
step1:使用python調用微博API,首先下載python SDK,即sinaweibopy
Sinaweibopy是一款Python專(zhuān)用的OAuth 2客戶(hù)端,支持微博API,無(wú)依賴(lài),100%純Py,單文件,代碼簡(jiǎn)單,運行可靠,也是新浪微博的Python SDK。
可以直接通過(guò)pip安裝:
pip install sinaweibopy
什么是SDK?SDK的英文全稱(chēng)是軟件開(kāi)發(fā)工具包(software development kit)。簡(jiǎn)而言之,它是一個(gè)代碼庫,其中收錄用于開(kāi)發(fā)應用程序的可重用代碼。為應用編寫(xiě)代碼時(shí),無(wú)需重復編寫(xiě)在實(shí)際屏幕上繪制文本等代碼。SDK 可以幫助您做到這一點(diǎn)。簡(jiǎn)而言之,所有這些代碼庫和一些其他工具構成了我們所說(shuō)的 SDK。
step2:了解新浪微博的授權機制,即OAuth 2
API 調用需要獲取用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權過(guò)程請參考如下流程圖,其中Client指的是第三方應用(也就是我們自己在第三步創(chuàng )建的應用),Resource Owner指的是一個(gè)user,Authorization Server 是我們的授權 Server,Resource Server 是一個(gè) API server。
從流程圖中可以看出,為了調用API服務(wù)器內容,需要將訪(fǎng)問(wèn)令牌告知API服務(wù)器;用戶(hù)獲得授權后,將訪(fǎng)問(wèn)令牌返回給新浪(授權服務(wù)器)創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們應用程序首先要給用戶(hù)授權頁(yè)面(授權請求)。
微博API的授權機制(來(lái)自微博開(kāi)放平臺開(kāi)發(fā)文檔)
用戶(hù)授權后,瀏覽器的URL如下所示:
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)得到用戶(hù)的授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,從API服務(wù)器獲取微博數據。
了解了上面的機制后,我們就知道如何編寫(xiě)代碼來(lái)調用API了。
step3:在微博開(kāi)放平臺上創(chuàng )建自己的應用
現在讓我們創(chuàng )建我們自己的應用程序。創(chuàng )建應用程序的目的是獲取應用程序密鑰和應用程序機密。
我們通過(guò)微連接創(chuàng )建移動(dòng)應用程序。您還可以創(chuàng )建其他類(lèi)型的應用程序。創(chuàng )建應用程序后,將分配唯一的應用程序密鑰和應用程序機密。您可以在“我的申請-申請信息-基本信息”中查看,用于授權。注意:無(wú)需提交審核,只需提供應用密鑰和應用密鑰即可。
如果是異地web應用或者手機客戶(hù)端應用,出于安全考慮,需要填寫(xiě)平臺的redirect_url(授權回調頁(yè)面)網(wǎng)站使用OAuth2.0。填寫(xiě)地址為“我的申請>申請信息>高級信息”。這里,我們將授權回調頁(yè)面和取消授權回調頁(yè)面都設置為默認回調頁(yè)面:
我的申請-申請信息-高級信息
step4:python代碼實(shí)現
首先,導入所需的模塊:
from weibo import APIClient
import webbrowser #python內置的包,支持對瀏覽器進(jìn)行操作
使用微博 SDK 創(chuàng )建我們的應用程序:
APP_KEY = '123456'
APP_SECRET = 'abc123xyz456'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' #回調授權頁(yè)面,用戶(hù)完成授權后返回的頁(yè)面
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
授權頁(yè)面的url(%3A//oauth2/default.html&response_type=code&client_id=729983294)。用webbrowser打開(kāi)這個(gè)url,會(huì )喚醒瀏覽器打開(kāi)
url=client.get_authorize_url() #得到授權頁(yè)面的url
webbrowser.open_new(url) #打開(kāi)這個(gè)url
打開(kāi)授權頁(yè)面的url
用戶(hù)完成授權后,URL 如下所示:。我們需要code=后面的內容。
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
使用代碼獲取訪(fǎng)問(wèn)令牌:
r = client.request_access_token(code)
access_token = r.access_token # 新浪(授權服務(wù)器)返回的token
expires_in = r.expires_in
您可以打印 r 以查看里面的內容:
print(r)
{'access_token': u'abcqwe123', 'expires': 1662109746, 'expires_in': 1662109746, 'uid': u'2164581421'}
設置access_token后,可以直接調用API:
client.set_access_token(access_token, expires_in)
輸出最新的公眾微博:
print(client.statuses__public_timeline)
返回的具體內容可以在微博API文檔中找到。
例如,我們可以輸出用戶(hù)的昵稱(chēng)、個(gè)人資料、位置和微博:
for i in range(0,length):
print(u'昵稱(chēng):'+statuses[i]['user']['screen_name'])
print(u'簡(jiǎn)介:'+statuses[i]['user']['description'])
print(u'位置:'+statuses[i]['user']['location'])
print(u'微博:'+statuses[i]['text'])
最新公開(kāi)微博
參考資料:
Python調用微博API
如何通過(guò)python調用新浪微博的API
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(我要開(kāi)發(fā)自己的微博應用(App),(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 47 次瀏覽 ? 2021-12-08 22:02
OAuth和新浪微博開(kāi)放平臺介紹我之前在新浪微博上創(chuàng )建了一個(gè)應用,并獲得了App key和Secret key,以便調用新浪微博開(kāi)放平臺API來(lái)了解它的全部?jì)热?。前幾天,連續4天沒(méi)課,于是我就耐心的摸索API的使用方法。新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言的開(kāi)發(fā)SDK下載,但也有一些基礎接口調用的demo和接口說(shuō)明文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我沒(méi)有 不要放棄試圖理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程****。如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。
因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。剛接觸OAuth的時(shí)候,完全沒(méi)有概念,覺(jué)得沒(méi)辦法學(xué)。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下: OAUTH協(xié)議介紹 基于OAuth安全協(xié)議的Java應用編程 在***應用中使用OAuth OAuth有3個(gè)參與者,分別是User、Service Provider、Consumer。假設我想為其他新浪微博用戶(hù)開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App)。它們的對應關(guān)系如下: User => 新浪微博用戶(hù)想要使用這個(gè)App Provider => 新浪微博開(kāi)放平臺Consumer => App 其實(shí)我們的App就相當于User和Provider(新浪微博平臺)的一個(gè)第三方應用。作為第三方App,如果要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。下面是根據我對整個(gè)OAuth認證授權流程的理解畫(huà)的圖(可以跳過(guò),對下面的一些概念有一定了解的時(shí)候再看這個(gè)流程圖): 結合上面的流程圖,下面這是我對這些術(shù)語(yǔ)和每個(gè)過(guò)程的描述的理解:Consumer key和Consumer Secret:
消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。對應上圖中的流程1和流程2。Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer并希望獲得其特殊服務(wù)時(shí),該服務(wù)會(huì )在整合了Provider中存儲的用戶(hù)自己的資源后由Consumer返回。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。對應上圖中的流程3、4、5。處理6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。Access Token,Access Secret:如果流程10中的Provider返回一個(gè)未經(jīng)User授權的Access Token,用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后消費者可以開(kāi)始使用 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(我要開(kāi)發(fā)自己的微博應用(App),(組圖))
OAuth和新浪微博開(kāi)放平臺介紹我之前在新浪微博上創(chuàng )建了一個(gè)應用,并獲得了App key和Secret key,以便調用新浪微博開(kāi)放平臺API來(lái)了解它的全部?jì)热?。前幾天,連續4天沒(méi)課,于是我就耐心的摸索API的使用方法。新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言的開(kāi)發(fā)SDK下載,但也有一些基礎接口調用的demo和接口說(shuō)明文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我沒(méi)有 不要放棄試圖理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程****。如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。
因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。剛接觸OAuth的時(shí)候,完全沒(méi)有概念,覺(jué)得沒(méi)辦法學(xué)。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下: OAUTH協(xié)議介紹 基于OAuth安全協(xié)議的Java應用編程 在***應用中使用OAuth OAuth有3個(gè)參與者,分別是User、Service Provider、Consumer。假設我想為其他新浪微博用戶(hù)開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App)。它們的對應關(guān)系如下: User => 新浪微博用戶(hù)想要使用這個(gè)App Provider => 新浪微博開(kāi)放平臺Consumer => App 其實(shí)我們的App就相當于User和Provider(新浪微博平臺)的一個(gè)第三方應用。作為第三方App,如果要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。下面是根據我對整個(gè)OAuth認證授權流程的理解畫(huà)的圖(可以跳過(guò),對下面的一些概念有一定了解的時(shí)候再看這個(gè)流程圖): 結合上面的流程圖,下面這是我對這些術(shù)語(yǔ)和每個(gè)過(guò)程的描述的理解:Consumer key和Consumer Secret:
消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。對應上圖中的流程1和流程2。Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer并希望獲得其特殊服務(wù)時(shí),該服務(wù)會(huì )在整合了Provider中存儲的用戶(hù)自己的資源后由Consumer返回。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。對應上圖中的流程3、4、5。處理6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。Access Token,Access Secret:如果流程10中的Provider返回一個(gè)未經(jīng)User授權的Access Token,用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后消費者可以開(kāi)始使用
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 騰訊微博開(kāi)放平臺合作方式介紹2011-01-26目錄(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 56 次瀏覽 ? 2021-12-06 03:04
騰訊微博開(kāi)放平臺合作方式介紹2011-01-26目錄(組圖))
騰訊微博開(kāi)放平臺合作方式介紹 2011-01-26 目錄 什么是騰訊微博開(kāi)放平臺 騰訊微博開(kāi)放API介紹 典型應用類(lèi)型 i微博系統介紹 開(kāi)放平臺數據服務(wù) 什么是騰訊微博開(kāi)放平臺 廣大開(kāi)發(fā)者提供開(kāi)放接口構建豐富多樣的應用開(kāi)放平臺,為用戶(hù)提供多種典型應用輔助開(kāi)發(fā)。三方迅速搭建了自己的微博系統,并與騰訊微博平臺進(jìn)行溝通,充分利用騰訊用戶(hù)和信息資源。第三方應用可以從微博獲取海量信息或向千萬(wàn)用戶(hù)傳播信息,獲得營(yíng)銷(xiāo)推廣機會(huì )。開(kāi)放的數據共享和傳播服務(wù)加上你的智慧,將創(chuàng )造無(wú)窮的功能和樂(lè )趣。騰訊微博開(kāi)放API提供以下功能接口。第三方可以使用這些 API 來(lái)開(kāi)發(fā)自己的微博應用程序。用戶(hù)授權微博閱讀、寫(xiě)作、收聽(tīng)和搜索用戶(hù)。微博話(huà)題乘法口算100題七年級有理數混合計算100題計算機一級題庫二元線(xiàn)性方程應用題真話(huà)大冒險刺激題私信采集詳細API說(shuō)明,請看httpopentqqcomresourcephpi11騰訊微博開(kāi)放API介紹 典型應用介紹 使用騰訊微博開(kāi)放API可以實(shí)現豐富的微博應用形式,包括賬號連接,
典型應用介紹 4 用戶(hù)互動(dòng) 一鍵轉播至騰訊微博網(wǎng)頁(yè)圖片、視頻從本站微博新聞評論返回網(wǎng)站作為內容,促進(jìn)用戶(hù)交流。典型應用介紹 5 小工具、小游戲 使用微博API還可以為第三方實(shí)現各種小工具、小游戲。為了更豐富的內容和樂(lè )趣,比如在微博上給朋友點(diǎn)歌,用戶(hù)信息統計工具,比如分析發(fā)微博的習慣,你平時(shí)什么時(shí)候睡覺(jué)等。上傳文件到微博,在微博、美圖秀秀上發(fā)布下載鏈接,卡通身份證微博投票九宮格日記iweibo系統什么是iweiboiweibo是基于騰訊微博API開(kāi)發(fā)的免費開(kāi)源微博系統合作伙伴合作伙伴iweiboiweiboi微博系統具備騰訊微博的所有功能基于騰訊微博開(kāi)放平臺API開(kāi)發(fā)即可在任何第三方服務(wù)器中設置為第三方網(wǎng)站提供微博功能。用戶(hù)可以獲取和修改源代碼。添加特殊功能。賬號資料系統與騰訊微博平臺全對接騰訊微博平臺提供穩定的后臺服務(wù)和信息審核保障施工計劃示例,結構施工計劃,
博客全功能運營(yíng)管理后臺接入騰訊微博賬號。同步用戶(hù)信息收聽(tīng)關(guān)系。操作和前端顯示定制。管理后端可以輕松定制。面向用戶(hù)的操作推薦元素頁(yè)面代碼完全開(kāi)源,可定制。平臺審核管理 無(wú)審核風(fēng)險 自動(dòng)安裝 按照安裝向導提示,自動(dòng)完成iweibo系統的部署。高兼容性 品牌營(yíng)銷(xiāo)機遇 強大的平臺支持8000萬(wàn)微博用戶(hù)資源,從騰訊微博獲取優(yōu)質(zhì)內容,通過(guò)騰訊微博平臺的審核管理,降低網(wǎng)民互動(dòng)障礙,增加網(wǎng)民參與度。提供管理后臺快速定制前端操作元素 i微博能給你帶來(lái)什么樣的強大平臺來(lái)支持擁有8000萬(wàn)注冊用戶(hù)的騰訊微博。這些用戶(hù)可能會(huì )成為新華網(wǎng)的忠實(shí)粉絲,并從騰訊微博獲取優(yōu)質(zhì)內容。1 微博內容自然豐富,可以通過(guò)列表話(huà)題等方式進(jìn)行搜索,騰訊微博的信息輸出到i微博,獲取最即時(shí)、最豐富、最活躍、最火的微博消息 2 緊急突發(fā)事件通過(guò)騰訊微博審核提供現場(chǎng)最新鮮的信息內容 1 所有i微博內容通過(guò)騰訊微博審核合作伙伴 無(wú)審核壓力 2 專(zhuān)業(yè)審核團隊24小時(shí)待命,刪除不良內容iweibo 隨時(shí) 3 提供微博評論關(guān)鍵詞屏蔽刪除功能,降低網(wǎng)民參與門(mén)檻,提高網(wǎng)民參與度 1 微博內容短發(fā)布門(mén)檻低,自然有利于用戶(hù)加入 2 微博更有利于增加網(wǎng)民的活動(dòng)超過(guò)了傳統的論壇、博客等形式。3 微博轉播、評論、對話(huà)、私信等功能有利于網(wǎng)友互動(dòng),提供管理后臺,快速定制前端操作元素,全面管理后臺。方便i微博管理前端內容展示,方便賬號話(huà)題推廣等,在騰訊微博上獲得品牌營(yíng)銷(xiāo)機會(huì )。1 合作伙伴官方微信
博已獲得騰訊認證和推薦,并在顯要位置獲得曝光。粉絲增加了。2 微博來(lái)源顯示合作伙伴網(wǎng)址和網(wǎng)站名稱(chēng)。微博曝光機會(huì ) 自動(dòng)化部署能給你帶來(lái)什么?微博功能齊全嗎?運營(yíng)管理后臺系統 完全開(kāi)源,支持定制開(kāi)發(fā)。從騰訊微博獲取最大量的用戶(hù)資源或向千萬(wàn)級用戶(hù)傳播信息,在高端用戶(hù)平臺獲取營(yíng)銷(xiāo)推廣機會(huì )。使用開(kāi)放的數據檢索和傳播服務(wù),獲取最實(shí)時(shí)的信息。海量數據下的穩定后端。超大規模用戶(hù)在線(xiàn)承載用戶(hù)信息和數據安全。評論,采集,搜索,對應iweibo功能,用戶(hù)推薦話(huà)題推薦、熱點(diǎn)話(huà)題管理、屏蔽功能、i微博基本功能,以證券時(shí)報為例,i微博首頁(yè)滿(mǎn)足微博用戶(hù)的基本需求,輸入方式更快,支持話(huà)題輸入和上傳圖片 瀏覽看看每個(gè)人都在談?wù)?。搜索框提供最快的支持查找你感興趣的人列表、微博話(huà)題等。我的首頁(yè)時(shí)時(shí)提醒你各種動(dòng)態(tài)評論、廣播、采集、私信等。在證券時(shí)報。示例詳情展示合作伙伴品牌定制logo i微博可以自定義專(zhuān)屬合作伙伴logo,重點(diǎn)突出合作伙伴展示適合合作伙伴的話(huà)題。合作伙伴可以根據自己的媒體領(lǐng)域自定義自己領(lǐng)域的話(huà)題。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。
從證券微博點(diǎn)擊可直接跳轉到證券微博首頁(yè)。微博和騰訊微博開(kāi)放,增加合作伙伴在騰訊微博的曝光度。同時(shí),通過(guò)來(lái)源點(diǎn)擊還可以給合作伙伴帶來(lái)點(diǎn)擊 iweibo iweibo 定制功能 iweibo 定制功能更加多樣化??梢愿鶕襟w屬性定制適合合作伙伴定位的話(huà)題媒體類(lèi)別,例如《證券時(shí)報》的證券話(huà)題推薦。用戶(hù)自定義 可以自定義 一定數量的用戶(hù)推送到iweibo 用戶(hù)數量可以在后臺設置熱點(diǎn)話(huà)題。定制化可基于合作方定位進(jìn)行熱點(diǎn)話(huà)題管理,基于iweibo API功能向網(wǎng)友展示不同內容,使用iweibo的合作網(wǎng)站您可以使用基于騰訊微博的API接口自定義更多功能。如何實(shí)現排行榜話(huà)題分類(lèi)iweibo功能的基本功能 1、按照安裝向導的提示,自動(dòng)完成iweibo系統的部署。它方便快捷。2 兼容多種服務(wù)器配置定制功能。話(huà)題管理推薦話(huà)題定制等功能2i微博頁(yè)面代碼完全開(kāi)源,可定制和個(gè)性化的前端展示 i微博管理后臺介紹 i微博管理后臺主要功能 推薦管理 推薦話(huà)題定制 推薦用戶(hù)定制 熱門(mén)話(huà)題設置 模塊啟用設置等四模塊顯示設置 包括自定義logo頁(yè)頁(yè)腳設置等二模塊屏蔽設置,包括關(guān)鍵詞屏蔽、微博屏蔽、評論屏蔽等模塊。帳戶(hù)系統設置包括帳戶(hù)管理和更改密碼。兩個(gè)模塊合作伙伴網(wǎng)站
根據評論內容或評論微博ID屏蔽評論。黑名單管理。將敏感內容垃圾郵件的id拉入黑名單。他們播放的內容不會(huì )出現在iweibo騰訊微博上。博客平臺實(shí)時(shí)數據、用戶(hù)關(guān)系、騰訊微博審核、后臺審核團隊i微博展示內容、i微博管理后臺相關(guān)屏蔽功能、活躍社區氛圍促進(jìn)用戶(hù)交流。成功安裝iweibo后,用戶(hù)可以從網(wǎng)站觸發(fā)iweibo使用完整的微博功能iweibo的使用場(chǎng)景用戶(hù)可以通過(guò)簡(jiǎn)單的點(diǎn)擊從網(wǎng)站觸發(fā)微博功能,使用授權賬號進(jìn)入iweibo微博釋放區。微博信息展示,在iweibo中發(fā)送微博信息,并同步到騰訊微博數千萬(wàn)用戶(hù)平臺獲得營(yíng)銷(xiāo)機會(huì )。i微博的使用場(chǎng)景為開(kāi)放平臺數據服務(wù)數據服務(wù)1開(kāi)放平臺提供騰訊微博平臺管理的所有數據,有效規避第三方實(shí)時(shí)數據審計風(fēng)險2開(kāi)放平臺可以為第三方應用提供消息讀寫(xiě)數據用戶(hù)授權 登錄數據通過(guò)一鍵播報功能,生成騰訊微博每日發(fā)帖數等數據,協(xié)助第三方了解自身運營(yíng)情況,并根據數據完善自身產(chǎn)品 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
騰訊微博開(kāi)放平臺合作方式介紹2011-01-26目錄(組圖))

騰訊微博開(kāi)放平臺合作方式介紹 2011-01-26 目錄 什么是騰訊微博開(kāi)放平臺 騰訊微博開(kāi)放API介紹 典型應用類(lèi)型 i微博系統介紹 開(kāi)放平臺數據服務(wù) 什么是騰訊微博開(kāi)放平臺 廣大開(kāi)發(fā)者提供開(kāi)放接口構建豐富多樣的應用開(kāi)放平臺,為用戶(hù)提供多種典型應用輔助開(kāi)發(fā)。三方迅速搭建了自己的微博系統,并與騰訊微博平臺進(jìn)行溝通,充分利用騰訊用戶(hù)和信息資源。第三方應用可以從微博獲取海量信息或向千萬(wàn)用戶(hù)傳播信息,獲得營(yíng)銷(xiāo)推廣機會(huì )。開(kāi)放的數據共享和傳播服務(wù)加上你的智慧,將創(chuàng )造無(wú)窮的功能和樂(lè )趣。騰訊微博開(kāi)放API提供以下功能接口。第三方可以使用這些 API 來(lái)開(kāi)發(fā)自己的微博應用程序。用戶(hù)授權微博閱讀、寫(xiě)作、收聽(tīng)和搜索用戶(hù)。微博話(huà)題乘法口算100題七年級有理數混合計算100題計算機一級題庫二元線(xiàn)性方程應用題真話(huà)大冒險刺激題私信采集詳細API說(shuō)明,請看httpopentqqcomresourcephpi11騰訊微博開(kāi)放API介紹 典型應用介紹 使用騰訊微博開(kāi)放API可以實(shí)現豐富的微博應用形式,包括賬號連接,

典型應用介紹 4 用戶(hù)互動(dòng) 一鍵轉播至騰訊微博網(wǎng)頁(yè)圖片、視頻從本站微博新聞評論返回網(wǎng)站作為內容,促進(jìn)用戶(hù)交流。典型應用介紹 5 小工具、小游戲 使用微博API還可以為第三方實(shí)現各種小工具、小游戲。為了更豐富的內容和樂(lè )趣,比如在微博上給朋友點(diǎn)歌,用戶(hù)信息統計工具,比如分析發(fā)微博的習慣,你平時(shí)什么時(shí)候睡覺(jué)等。上傳文件到微博,在微博、美圖秀秀上發(fā)布下載鏈接,卡通身份證微博投票九宮格日記iweibo系統什么是iweiboiweibo是基于騰訊微博API開(kāi)發(fā)的免費開(kāi)源微博系統合作伙伴合作伙伴iweiboiweiboi微博系統具備騰訊微博的所有功能基于騰訊微博開(kāi)放平臺API開(kāi)發(fā)即可在任何第三方服務(wù)器中設置為第三方網(wǎng)站提供微博功能。用戶(hù)可以獲取和修改源代碼。添加特殊功能。賬號資料系統與騰訊微博平臺全對接騰訊微博平臺提供穩定的后臺服務(wù)和信息審核保障施工計劃示例,結構施工計劃,

博客全功能運營(yíng)管理后臺接入騰訊微博賬號。同步用戶(hù)信息收聽(tīng)關(guān)系。操作和前端顯示定制。管理后端可以輕松定制。面向用戶(hù)的操作推薦元素頁(yè)面代碼完全開(kāi)源,可定制。平臺審核管理 無(wú)審核風(fēng)險 自動(dòng)安裝 按照安裝向導提示,自動(dòng)完成iweibo系統的部署。高兼容性 品牌營(yíng)銷(xiāo)機遇 強大的平臺支持8000萬(wàn)微博用戶(hù)資源,從騰訊微博獲取優(yōu)質(zhì)內容,通過(guò)騰訊微博平臺的審核管理,降低網(wǎng)民互動(dòng)障礙,增加網(wǎng)民參與度。提供管理后臺快速定制前端操作元素 i微博能給你帶來(lái)什么樣的強大平臺來(lái)支持擁有8000萬(wàn)注冊用戶(hù)的騰訊微博。這些用戶(hù)可能會(huì )成為新華網(wǎng)的忠實(shí)粉絲,并從騰訊微博獲取優(yōu)質(zhì)內容。1 微博內容自然豐富,可以通過(guò)列表話(huà)題等方式進(jìn)行搜索,騰訊微博的信息輸出到i微博,獲取最即時(shí)、最豐富、最活躍、最火的微博消息 2 緊急突發(fā)事件通過(guò)騰訊微博審核提供現場(chǎng)最新鮮的信息內容 1 所有i微博內容通過(guò)騰訊微博審核合作伙伴 無(wú)審核壓力 2 專(zhuān)業(yè)審核團隊24小時(shí)待命,刪除不良內容iweibo 隨時(shí) 3 提供微博評論關(guān)鍵詞屏蔽刪除功能,降低網(wǎng)民參與門(mén)檻,提高網(wǎng)民參與度 1 微博內容短發(fā)布門(mén)檻低,自然有利于用戶(hù)加入 2 微博更有利于增加網(wǎng)民的活動(dòng)超過(guò)了傳統的論壇、博客等形式。3 微博轉播、評論、對話(huà)、私信等功能有利于網(wǎng)友互動(dòng),提供管理后臺,快速定制前端操作元素,全面管理后臺。方便i微博管理前端內容展示,方便賬號話(huà)題推廣等,在騰訊微博上獲得品牌營(yíng)銷(xiāo)機會(huì )。1 合作伙伴官方微信

博已獲得騰訊認證和推薦,并在顯要位置獲得曝光。粉絲增加了。2 微博來(lái)源顯示合作伙伴網(wǎng)址和網(wǎng)站名稱(chēng)。微博曝光機會(huì ) 自動(dòng)化部署能給你帶來(lái)什么?微博功能齊全嗎?運營(yíng)管理后臺系統 完全開(kāi)源,支持定制開(kāi)發(fā)。從騰訊微博獲取最大量的用戶(hù)資源或向千萬(wàn)級用戶(hù)傳播信息,在高端用戶(hù)平臺獲取營(yíng)銷(xiāo)推廣機會(huì )。使用開(kāi)放的數據檢索和傳播服務(wù),獲取最實(shí)時(shí)的信息。海量數據下的穩定后端。超大規模用戶(hù)在線(xiàn)承載用戶(hù)信息和數據安全。評論,采集,搜索,對應iweibo功能,用戶(hù)推薦話(huà)題推薦、熱點(diǎn)話(huà)題管理、屏蔽功能、i微博基本功能,以證券時(shí)報為例,i微博首頁(yè)滿(mǎn)足微博用戶(hù)的基本需求,輸入方式更快,支持話(huà)題輸入和上傳圖片 瀏覽看看每個(gè)人都在談?wù)?。搜索框提供最快的支持查找你感興趣的人列表、微博話(huà)題等。我的首頁(yè)時(shí)時(shí)提醒你各種動(dòng)態(tài)評論、廣播、采集、私信等。在證券時(shí)報。示例詳情展示合作伙伴品牌定制logo i微博可以自定義專(zhuān)屬合作伙伴logo,重點(diǎn)突出合作伙伴展示適合合作伙伴的話(huà)題。合作伙伴可以根據自己的媒體領(lǐng)域自定義自己領(lǐng)域的話(huà)題。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。

從證券微博點(diǎn)擊可直接跳轉到證券微博首頁(yè)。微博和騰訊微博開(kāi)放,增加合作伙伴在騰訊微博的曝光度。同時(shí),通過(guò)來(lái)源點(diǎn)擊還可以給合作伙伴帶來(lái)點(diǎn)擊 iweibo iweibo 定制功能 iweibo 定制功能更加多樣化??梢愿鶕襟w屬性定制適合合作伙伴定位的話(huà)題媒體類(lèi)別,例如《證券時(shí)報》的證券話(huà)題推薦。用戶(hù)自定義 可以自定義 一定數量的用戶(hù)推送到iweibo 用戶(hù)數量可以在后臺設置熱點(diǎn)話(huà)題。定制化可基于合作方定位進(jìn)行熱點(diǎn)話(huà)題管理,基于iweibo API功能向網(wǎng)友展示不同內容,使用iweibo的合作網(wǎng)站您可以使用基于騰訊微博的API接口自定義更多功能。如何實(shí)現排行榜話(huà)題分類(lèi)iweibo功能的基本功能 1、按照安裝向導的提示,自動(dòng)完成iweibo系統的部署。它方便快捷。2 兼容多種服務(wù)器配置定制功能。話(huà)題管理推薦話(huà)題定制等功能2i微博頁(yè)面代碼完全開(kāi)源,可定制和個(gè)性化的前端展示 i微博管理后臺介紹 i微博管理后臺主要功能 推薦管理 推薦話(huà)題定制 推薦用戶(hù)定制 熱門(mén)話(huà)題設置 模塊啟用設置等四模塊顯示設置 包括自定義logo頁(yè)頁(yè)腳設置等二模塊屏蔽設置,包括關(guān)鍵詞屏蔽、微博屏蔽、評論屏蔽等模塊。帳戶(hù)系統設置包括帳戶(hù)管理和更改密碼。兩個(gè)模塊合作伙伴網(wǎng)站

根據評論內容或評論微博ID屏蔽評論。黑名單管理。將敏感內容垃圾郵件的id拉入黑名單。他們播放的內容不會(huì )出現在iweibo騰訊微博上。博客平臺實(shí)時(shí)數據、用戶(hù)關(guān)系、騰訊微博審核、后臺審核團隊i微博展示內容、i微博管理后臺相關(guān)屏蔽功能、活躍社區氛圍促進(jìn)用戶(hù)交流。成功安裝iweibo后,用戶(hù)可以從網(wǎng)站觸發(fā)iweibo使用完整的微博功能iweibo的使用場(chǎng)景用戶(hù)可以通過(guò)簡(jiǎn)單的點(diǎn)擊從網(wǎng)站觸發(fā)微博功能,使用授權賬號進(jìn)入iweibo微博釋放區。微博信息展示,在iweibo中發(fā)送微博信息,并同步到騰訊微博數千萬(wàn)用戶(hù)平臺獲得營(yíng)銷(xiāo)機會(huì )。i微博的使用場(chǎng)景為開(kāi)放平臺數據服務(wù)數據服務(wù)1開(kāi)放平臺提供騰訊微博平臺管理的所有數據,有效規避第三方實(shí)時(shí)數據審計風(fēng)險2開(kāi)放平臺可以為第三方應用提供消息讀寫(xiě)數據用戶(hù)授權 登錄數據通過(guò)一鍵播報功能,生成騰訊微博每日發(fā)帖數等數據,協(xié)助第三方了解自身運營(yíng)情況,并根據數據完善自身產(chǎn)品
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(開(kāi)發(fā)總流程圖讓你的應用在新浪微博開(kāi)放平臺上運營(yíng) )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2021-12-04 07:10
)
飯子原創(chuàng ),歡迎轉載,請注明出處:
ps 本文項目使用java語(yǔ)言eclipse平臺開(kāi)發(fā),配置過(guò)程也是以此為基礎。
開(kāi)發(fā)流程圖
讓您的應用程序在新浪微博開(kāi)放平臺上運行,您只需要通過(guò)六個(gè)簡(jiǎn)單的步驟:
成為開(kāi)發(fā)者
1.創(chuàng )建微博賬號
在開(kāi)發(fā)者頁(yè)面點(diǎn)擊“登錄”或“創(chuàng )建應用”,通過(guò)賬號登錄成為開(kāi)發(fā)者。一個(gè)新浪微博賬號可以管理10個(gè)不同的應用程序。建議開(kāi)發(fā)者使用官方微博進(jìn)行統一管理。
2.選擇應用類(lèi)型
單擊“創(chuàng )建應用程序”,進(jìn)入目標應用程序的類(lèi)型選擇鏈接。根據應用類(lèi)型的提示,選擇對應的應用創(chuàng )建流程。創(chuàng )建應用程序時(shí),我選擇的類(lèi)型是“其他”,因為我想開(kāi)發(fā)一個(gè)java客戶(hù)端軟件。(里面的信息可以隨意填寫(xiě),等開(kāi)發(fā)完應用回來(lái)修改。)創(chuàng )建完成后,系統會(huì )分配一個(gè)App Key和App Secret來(lái)驗證開(kāi)發(fā)者的身份,寫(xiě)下來(lái),使用以后吧。
3.開(kāi)發(fā)者信息設置
在開(kāi)發(fā)者信息設置頁(yè)面填寫(xiě)信息。成為新浪微博認證開(kāi)發(fā)者,需要通過(guò)郵箱驗證和手機驗證。
注意:開(kāi)發(fā)者類(lèi)型一經(jīng)填寫(xiě),不可修改。個(gè)人開(kāi)發(fā)者不得接入微博支付服務(wù),請謹慎選擇。
應用開(kāi)發(fā)
1. 下載SDK源碼
進(jìn)入下載sdk,下載后解壓,作為項目導入eclipse。
2. 解決授權錯誤
解決填寫(xiě)回調地址導致的error:redirect_uri_mismatch導致獲取用戶(hù)授權的問(wèn)題。
登錄新浪微博開(kāi)放平臺→選擇管理中心→點(diǎn)擊所需應用名稱(chēng)進(jìn)入對應應用→左側應用信息→高級信息→OAuth2.0授權設置點(diǎn)擊編輯→站點(diǎn)應用redirect_uri等于將申請信息中的“in site”改為“申請地址”,而不是“申請實(shí)際地址”;其他應用:redirect_uri需要改為
*****/info/advanced(用您的應用程序的 AppKey 替換 30871*****)。
如果你是異地web應用或者客戶(hù)端應用,填寫(xiě)redirect_uri地址:
應用APPKEY/權限/oauth
注意:修改應用回調頁(yè)面或綁定域名后,大約需要半小時(shí)才能生效。
3. 填寫(xiě)相關(guān)配置
在eclipse項目中,填寫(xiě)相關(guān)配置:在Config.properties中
客戶(hù)端 ID:應用密鑰
client_SERCRET: app_secret
redirect_URI:回調地址(這個(gè)需要和步驟3的redirect_uri一致)
4. 修改項目代碼
在eclipse項目中,修改weibo4j.examples.oauth2.OAuth4Code.java文件,注釋第14、15行,然后插入如下代碼:
BareBonesBrowserLaunch.openURL(oauth.authorize("code","",""));
修改后的結果如圖:
5. 授權
首先運行新修改的weibo4j.examples.oauth2.OAuth4Code.java文件,引導需要授權的用戶(hù)進(jìn)入授權頁(yè)面。如果用戶(hù)同意授權,點(diǎn)擊“授權”。系統回調應用,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE 換取AccessToken。
記錄回調應用后網(wǎng)頁(yè)地址欄中“代碼”后面的AccessToken:
授權級別與OAuth2.0access_token有效期對應表:
授權級別測試普通中級高級
授權期限為1天、7天、30天、90天
筆記:
只有沒(méi)有經(jīng)過(guò)文案審查的應用程序才處于測試級別。
當應用屬于授權應用的開(kāi)發(fā)者時(shí),有效期為5年。
access_token 自動(dòng)延續方案
如果用戶(hù)在授權有效期內重新打開(kāi)授權頁(yè)面授權(如果用戶(hù)此時(shí)有微博登錄狀態(tài),此頁(yè)面會(huì )閃過(guò)),那么新浪會(huì )自動(dòng)為開(kāi)發(fā)者延長(cháng)access_token的生命周期,并且需要開(kāi)發(fā)者維護一個(gè)新的授權然后獲取access_token值。
如何查詢(xún)當前應用的授權級別
可以在應用APPKEY/privilege/oauth上查詢(xún)當前應用的授權級別。
6. 測試
如果你想獲取某個(gè)用戶(hù)的信息,你可以運行
weibo4j.examples.user.ShowUser文件需要在RunConfigurations中配置兩個(gè)參數,被查看用戶(hù)的用戶(hù)id和剛才的“code”代碼。
運行結果顯示在命令行中:
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(開(kāi)發(fā)總流程圖讓你的應用在新浪微博開(kāi)放平臺上運營(yíng)
)
飯子原創(chuàng ),歡迎轉載,請注明出處:
ps 本文項目使用java語(yǔ)言eclipse平臺開(kāi)發(fā),配置過(guò)程也是以此為基礎。
開(kāi)發(fā)流程圖
讓您的應用程序在新浪微博開(kāi)放平臺上運行,您只需要通過(guò)六個(gè)簡(jiǎn)單的步驟:
成為開(kāi)發(fā)者
1.創(chuàng )建微博賬號
在開(kāi)發(fā)者頁(yè)面點(diǎn)擊“登錄”或“創(chuàng )建應用”,通過(guò)賬號登錄成為開(kāi)發(fā)者。一個(gè)新浪微博賬號可以管理10個(gè)不同的應用程序。建議開(kāi)發(fā)者使用官方微博進(jìn)行統一管理。
2.選擇應用類(lèi)型
單擊“創(chuàng )建應用程序”,進(jìn)入目標應用程序的類(lèi)型選擇鏈接。根據應用類(lèi)型的提示,選擇對應的應用創(chuàng )建流程。創(chuàng )建應用程序時(shí),我選擇的類(lèi)型是“其他”,因為我想開(kāi)發(fā)一個(gè)java客戶(hù)端軟件。(里面的信息可以隨意填寫(xiě),等開(kāi)發(fā)完應用回來(lái)修改。)創(chuàng )建完成后,系統會(huì )分配一個(gè)App Key和App Secret來(lái)驗證開(kāi)發(fā)者的身份,寫(xiě)下來(lái),使用以后吧。
3.開(kāi)發(fā)者信息設置
在開(kāi)發(fā)者信息設置頁(yè)面填寫(xiě)信息。成為新浪微博認證開(kāi)發(fā)者,需要通過(guò)郵箱驗證和手機驗證。
注意:開(kāi)發(fā)者類(lèi)型一經(jīng)填寫(xiě),不可修改。個(gè)人開(kāi)發(fā)者不得接入微博支付服務(wù),請謹慎選擇。
應用開(kāi)發(fā)
1. 下載SDK源碼
進(jìn)入下載sdk,下載后解壓,作為項目導入eclipse。
2. 解決授權錯誤
解決填寫(xiě)回調地址導致的error:redirect_uri_mismatch導致獲取用戶(hù)授權的問(wèn)題。
登錄新浪微博開(kāi)放平臺→選擇管理中心→點(diǎn)擊所需應用名稱(chēng)進(jìn)入對應應用→左側應用信息→高級信息→OAuth2.0授權設置點(diǎn)擊編輯→站點(diǎn)應用redirect_uri等于將申請信息中的“in site”改為“申請地址”,而不是“申請實(shí)際地址”;其他應用:redirect_uri需要改為
*****/info/advanced(用您的應用程序的 AppKey 替換 30871*****)。
如果你是異地web應用或者客戶(hù)端應用,填寫(xiě)redirect_uri地址:
應用APPKEY/權限/oauth
注意:修改應用回調頁(yè)面或綁定域名后,大約需要半小時(shí)才能生效。
3. 填寫(xiě)相關(guān)配置
在eclipse項目中,填寫(xiě)相關(guān)配置:在Config.properties中
客戶(hù)端 ID:應用密鑰
client_SERCRET: app_secret
redirect_URI:回調地址(這個(gè)需要和步驟3的redirect_uri一致)
4. 修改項目代碼
在eclipse項目中,修改weibo4j.examples.oauth2.OAuth4Code.java文件,注釋第14、15行,然后插入如下代碼:
BareBonesBrowserLaunch.openURL(oauth.authorize("code","",""));
修改后的結果如圖:
5. 授權
首先運行新修改的weibo4j.examples.oauth2.OAuth4Code.java文件,引導需要授權的用戶(hù)進(jìn)入授權頁(yè)面。如果用戶(hù)同意授權,點(diǎn)擊“授權”。系統回調應用,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE 換取AccessToken。
記錄回調應用后網(wǎng)頁(yè)地址欄中“代碼”后面的AccessToken:
授權級別與OAuth2.0access_token有效期對應表:
授權級別測試普通中級高級
授權期限為1天、7天、30天、90天
筆記:
只有沒(méi)有經(jīng)過(guò)文案審查的應用程序才處于測試級別。
當應用屬于授權應用的開(kāi)發(fā)者時(shí),有效期為5年。
access_token 自動(dòng)延續方案
如果用戶(hù)在授權有效期內重新打開(kāi)授權頁(yè)面授權(如果用戶(hù)此時(shí)有微博登錄狀態(tài),此頁(yè)面會(huì )閃過(guò)),那么新浪會(huì )自動(dòng)為開(kāi)發(fā)者延長(cháng)access_token的生命周期,并且需要開(kāi)發(fā)者維護一個(gè)新的授權然后獲取access_token值。
如何查詢(xún)當前應用的授權級別
可以在應用APPKEY/privilege/oauth上查詢(xún)當前應用的授權級別。
6. 測試
如果你想獲取某個(gè)用戶(hù)的信息,你可以運行
weibo4j.examples.user.ShowUser文件需要在RunConfigurations中配置兩個(gè)參數,被查看用戶(hù)的用戶(hù)id和剛才的“code”代碼。
運行結果顯示在命令行中:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 62 次瀏覽 ? 2021-12-04 06:22
最近在做一些利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號與本地賬號的綁定。你可以放心,到代碼級別就可以了。
第 1 部分:三方登錄:
1.去新浪微博開(kāi)放平臺做的事情:
請耐心閱讀,一步一步操作,如圖:
?、龠M(jìn)入
?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
?、圻x擇立即連接:
請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊即可通過(guò)驗證(身份驗證)
?、芴顚?xiě)網(wǎng)站信息,然后添加標簽到您的網(wǎng)站首頁(yè)。本地添加后(在eclipse等開(kāi)發(fā)ide的項目主頁(yè)添加這個(gè)),然后重新發(fā)布到自己的服務(wù)器上,(可以重新打包成war包發(fā)布到網(wǎng)上。比如我用騰訊的阿里云托管)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站 appKey,(appkey)是你的網(wǎng)站的唯一標識。
查找您自己的 appkey,如下所示:
點(diǎn)擊我的申請:
這時(shí)候會(huì )有appkey的值,你一定會(huì )看到
完成這些步驟后,請設置您的授權回調頁(yè)面:
解釋
1.授權回調頁(yè)面是用戶(hù)登錄您使用微博賬號訪(fǎng)問(wèn)的網(wǎng)站(您的網(wǎng)站首頁(yè)或其他頁(yè)面)
2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
設置如下
點(diǎn)擊上圖中的界面管理:
然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
點(diǎn)擊編輯,修改為自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
此時(shí),網(wǎng)站的應用訪(fǎng)問(wèn)已經(jīng)完成。騷年,開(kāi)始寫(xiě)代碼。
在首頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試目的,實(shí)際開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,在此界面有新浪微博的登錄按鈕)注意微博有登錄組件,這里我們使用自定義按鈕:
進(jìn)行如下操作:
?、? 在 weibo.js 中引入
appkey=寫(xiě)你的應用密鑰網(wǎng)站。
?、? 設置您的登錄按鈕
?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
隱藏表單如下所示:
Spring 安全框架用于用戶(hù)認證和授權。
基本上就是這種情況。相信想做這個(gè)的人也懂a(chǎn)jax。由于后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
一切平安。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
最近在做一些利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號與本地賬號的綁定。你可以放心,到代碼級別就可以了。
第 1 部分:三方登錄:
1.去新浪微博開(kāi)放平臺做的事情:
請耐心閱讀,一步一步操作,如圖:
?、龠M(jìn)入
?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
?、圻x擇立即連接:
請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊即可通過(guò)驗證(身份驗證)
?、芴顚?xiě)網(wǎng)站信息,然后添加標簽到您的網(wǎng)站首頁(yè)。本地添加后(在eclipse等開(kāi)發(fā)ide的項目主頁(yè)添加這個(gè)),然后重新發(fā)布到自己的服務(wù)器上,(可以重新打包成war包發(fā)布到網(wǎng)上。比如我用騰訊的阿里云托管)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站 appKey,(appkey)是你的網(wǎng)站的唯一標識。
查找您自己的 appkey,如下所示:
點(diǎn)擊我的申請:
這時(shí)候會(huì )有appkey的值,你一定會(huì )看到
完成這些步驟后,請設置您的授權回調頁(yè)面:
解釋
1.授權回調頁(yè)面是用戶(hù)登錄您使用微博賬號訪(fǎng)問(wèn)的網(wǎng)站(您的網(wǎng)站首頁(yè)或其他頁(yè)面)
2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
設置如下
點(diǎn)擊上圖中的界面管理:
然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
點(diǎn)擊編輯,修改為自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
此時(shí),網(wǎng)站的應用訪(fǎng)問(wèn)已經(jīng)完成。騷年,開(kāi)始寫(xiě)代碼。
在首頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試目的,實(shí)際開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,在此界面有新浪微博的登錄按鈕)注意微博有登錄組件,這里我們使用自定義按鈕:
進(jìn)行如下操作:
?、? 在 weibo.js 中引入
appkey=寫(xiě)你的應用密鑰網(wǎng)站。
?、? 設置您的登錄按鈕
?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
隱藏表單如下所示:
Spring 安全框架用于用戶(hù)認證和授權。
基本上就是這種情況。相信想做這個(gè)的人也懂a(chǎn)jax。由于后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
一切平安。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的開(kāi)發(fā)api,公示如下公示)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 51 次瀏覽 ? 2021-12-04 06:22
注:本文代碼無(wú)效,請勿模仿,其他方法請參考scribe方法
最近在研究新浪微博的開(kāi)發(fā)api,嘗試在一些客戶(hù)端應用中調用相應的api來(lái)發(fā)送新浪微博。經(jīng)過(guò)一番嘗試,終于成功了。幾個(gè)重點(diǎn)和對應的demo公布如下,供大家了解。
在本文中,我主要演示如何通過(guò)用戶(hù)名/密碼連接到新浪微博,然后讀取最新的微博信息,最后演示如何發(fā)送一個(gè)簡(jiǎn)單的微博,其他可以通過(guò)相應的微博api進(jìn)行處理,有這里沒(méi)有仔細深入。
首先要申請開(kāi)發(fā)者授權,也就是要在新浪上申請。直接通過(guò)地址:用微博登錄后,創(chuàng )建一個(gè)應用程序即可。創(chuàng )建應用的目的是獲取對應的app Key和app Secret。app key會(huì )用到后面的主要API中,方便新浪追蹤請求的來(lái)源。具體流程請自行g(shù)oogle。
應用完成后,我們將開(kāi)始我們的api之旅。在本文中,我們沒(méi)有使用官方的java sdk,因為主要目的是一個(gè)簡(jiǎn)單的演示。如果是應用開(kāi)發(fā),還是可以下載對應的java sdk應用。查看示例以了解如何撥打電話(huà)。
本文使用httpclient。如果使用maven,可以使用groupId作為commons-httpclient,使用artifactId作為commons-httpclient,將其導入到項目中。其次,為了方便對返回數據的分析,使用了一個(gè)JSON組件(fastjson)來(lái)解析json字符串。
獲取應用授權,即允許應用訪(fǎng)問(wèn)用戶(hù)的相應信息(用戶(hù)名、密碼除外)
由于新浪使用的是auth2.0,所以整個(gè)登錄過(guò)程分為兩部分。一部分是登錄授權,它允許我們的應用訪(fǎng)問(wèn)指定用戶(hù)的相應信息。這里的信息不包括用戶(hù)名和密碼。. 在類(lèi)網(wǎng)頁(yè)應用中,即通過(guò)彈出新浪登錄框,用戶(hù)輸入用戶(hù)名和密碼,授權應用使用。新浪通過(guò)驗證后,會(huì )返回到我們的應用所在的主界面。第二部分是獲取對應的token,相當于用戶(hù)會(huì )話(huà),以便在后續操作中可以使用這個(gè)token進(jìn)行數據訪(fǎng)問(wèn)。
申請授權地址為:,完整代碼如下:
獲取 access_token
API參考接口:
整個(gè)代碼如下:
獲取最新微博信息列表
API參考接口:
代碼顯示如下:
發(fā)送微博消息
api參考:
代碼顯示如下:
綜上所述
其實(shí)整個(gè)過(guò)程還是很簡(jiǎn)單的。最重要的是前兩步登錄和獲取授??權。這兩步就完成了,后面都是json請求,然后傳參數,拿到結果,再處理結果的問(wèn)題。.
值得注意的是,在獲取access_token的第二步中,官方文檔中寫(xiě)到可以通過(guò)grant_type=password獲取token信息,即輸入用戶(hù)名和密碼。但是這種方式需要特殊的申請,具體的申請步驟比較復雜,必須經(jīng)過(guò)官方審核,非一般開(kāi)發(fā)者也能做好。所以這里就不用這個(gè)了(當然,如果你用這個(gè)方法,可以把第一步和第二步合并成一)。
相關(guān)文章: 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的開(kāi)發(fā)api,公示如下公示)
注:本文代碼無(wú)效,請勿模仿,其他方法請參考scribe方法
最近在研究新浪微博的開(kāi)發(fā)api,嘗試在一些客戶(hù)端應用中調用相應的api來(lái)發(fā)送新浪微博。經(jīng)過(guò)一番嘗試,終于成功了。幾個(gè)重點(diǎn)和對應的demo公布如下,供大家了解。
在本文中,我主要演示如何通過(guò)用戶(hù)名/密碼連接到新浪微博,然后讀取最新的微博信息,最后演示如何發(fā)送一個(gè)簡(jiǎn)單的微博,其他可以通過(guò)相應的微博api進(jìn)行處理,有這里沒(méi)有仔細深入。
首先要申請開(kāi)發(fā)者授權,也就是要在新浪上申請。直接通過(guò)地址:用微博登錄后,創(chuàng )建一個(gè)應用程序即可。創(chuàng )建應用的目的是獲取對應的app Key和app Secret。app key會(huì )用到后面的主要API中,方便新浪追蹤請求的來(lái)源。具體流程請自行g(shù)oogle。
應用完成后,我們將開(kāi)始我們的api之旅。在本文中,我們沒(méi)有使用官方的java sdk,因為主要目的是一個(gè)簡(jiǎn)單的演示。如果是應用開(kāi)發(fā),還是可以下載對應的java sdk應用。查看示例以了解如何撥打電話(huà)。
本文使用httpclient。如果使用maven,可以使用groupId作為commons-httpclient,使用artifactId作為commons-httpclient,將其導入到項目中。其次,為了方便對返回數據的分析,使用了一個(gè)JSON組件(fastjson)來(lái)解析json字符串。
獲取應用授權,即允許應用訪(fǎng)問(wèn)用戶(hù)的相應信息(用戶(hù)名、密碼除外)
由于新浪使用的是auth2.0,所以整個(gè)登錄過(guò)程分為兩部分。一部分是登錄授權,它允許我們的應用訪(fǎng)問(wèn)指定用戶(hù)的相應信息。這里的信息不包括用戶(hù)名和密碼。. 在類(lèi)網(wǎng)頁(yè)應用中,即通過(guò)彈出新浪登錄框,用戶(hù)輸入用戶(hù)名和密碼,授權應用使用。新浪通過(guò)驗證后,會(huì )返回到我們的應用所在的主界面。第二部分是獲取對應的token,相當于用戶(hù)會(huì )話(huà),以便在后續操作中可以使用這個(gè)token進(jìn)行數據訪(fǎng)問(wèn)。
申請授權地址為:,完整代碼如下:
獲取 access_token
API參考接口:
整個(gè)代碼如下:
獲取最新微博信息列表
API參考接口:
代碼顯示如下:
發(fā)送微博消息
api參考:
代碼顯示如下:
綜上所述
其實(shí)整個(gè)過(guò)程還是很簡(jiǎn)單的。最重要的是前兩步登錄和獲取授??權。這兩步就完成了,后面都是json請求,然后傳參數,拿到結果,再處理結果的問(wèn)題。.
值得注意的是,在獲取access_token的第二步中,官方文檔中寫(xiě)到可以通過(guò)grant_type=password獲取token信息,即輸入用戶(hù)名和密碼。但是這種方式需要特殊的申請,具體的申請步驟比較復雜,必須經(jīng)過(guò)官方審核,非一般開(kāi)發(fā)者也能做好。所以這里就不用這個(gè)了(當然,如果你用這個(gè)方法,可以把第一步和第二步合并成一)。
相關(guān)文章:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 不用插件實(shí)現Wordpress文章同步微博代碼貼到你主題的function.文件)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2021-12-04 06:18
不用插件實(shí)現Wordpress文章同步微博代碼貼到你主題的function.文件)
新浪微博的人氣非常高。幾乎每個(gè)人每天都會(huì )閱讀微博。如果你能將你的wordpress文章同步到新浪微博,你可以獲得大量的社交媒體流量。還有可以實(shí)現同步更新功能的插件,比如評論框。但是今天,我想在這篇文章中介紹的是,無(wú)需插件即可實(shí)現Wordpress文章 同步更新到新浪微博。
1、申請新浪微博應用接入
要實(shí)現微博同步功能,首先需要在新浪微博開(kāi)發(fā)者中心申請權限,然后創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)應用。使用您的新浪微博賬號登錄微博開(kāi)放平臺:。點(diǎn)擊頁(yè)面導航中的【編輯開(kāi)發(fā)者信息】或訪(fǎng)問(wèn):,根據頁(yè)面表單內容填寫(xiě)信息,提交后等待審核。新浪評論一般需要1個(gè)左右的工作。審核通過(guò)后,即可創(chuàng )建應用。然后在微博開(kāi)放平臺首頁(yè)點(diǎn)擊橙色【立即創(chuàng )建微鏈接】->【網(wǎng)站訪(fǎng)問(wèn)】或直接訪(fǎng)問(wèn)填寫(xiě)好的申請信息,提交審核。應用審核時(shí)間會(huì )稍長(cháng)。這段時(shí)間可以使用新浪的開(kāi)放端口進(jìn)行開(kāi)發(fā),
2、Wordpress 同步新浪微博代碼
新浪微博有很多接口供開(kāi)發(fā)者調用,根據需要,我們只需要了解更新發(fā)布接口即可。相關(guān)開(kāi)發(fā)文檔:. 根據開(kāi)發(fā)文檔,我們可以得到如下接口信息:
接口URL:https://api.weibo.com/2/statuses/repost.json
數據格式:JSON
請求方式:POST
請求參數:status(微博內容)、source(AppKey,從開(kāi)發(fā)者中心我的應用中獲?。?br /> 是否需要登陸:是
根據以上微博界面信息,我們可以編寫(xiě)wordpress代碼如下(appkey、用戶(hù)名、用戶(hù)密碼需要自己替換):
/*
文章同步到新浪微博
代碼來(lái)源: www.wpzhinan.com
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修訂版本(更新)不發(fā)微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
$appkey='3838258703';
$username='微博用戶(hù)名';
$userpassword='微博密碼';
$request = new WP_Http;
$status = '【' . strip_tags($get_post_title) . '】 ' . mb_strimwidth(strip_tags(apply_filters('the_content', $get_post_centent)) , 0, 132, '...') . ' 全文地址:' . get_permalink($post_ID);
$api_url = 'https://api.weibo.com/2/statuses/update.json';
$body = array('status' => $status,'source' => $appkey);
$headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array('body' => $body,'headers' => $headers));
}
}
add_action('publish_post', 'post_to_sina_weibo', 0);//給發(fā)布文章增加一個(gè)分享微博的動(dòng)作
將上面的wordpress文章同步微博代碼粘貼到你主題的function.php文件中。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
不用插件實(shí)現Wordpress文章同步微博代碼貼到你主題的function.文件)

新浪微博的人氣非常高。幾乎每個(gè)人每天都會(huì )閱讀微博。如果你能將你的wordpress文章同步到新浪微博,你可以獲得大量的社交媒體流量。還有可以實(shí)現同步更新功能的插件,比如評論框。但是今天,我想在這篇文章中介紹的是,無(wú)需插件即可實(shí)現Wordpress文章 同步更新到新浪微博。
1、申請新浪微博應用接入
要實(shí)現微博同步功能,首先需要在新浪微博開(kāi)發(fā)者中心申請權限,然后創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)應用。使用您的新浪微博賬號登錄微博開(kāi)放平臺:。點(diǎn)擊頁(yè)面導航中的【編輯開(kāi)發(fā)者信息】或訪(fǎng)問(wèn):,根據頁(yè)面表單內容填寫(xiě)信息,提交后等待審核。新浪評論一般需要1個(gè)左右的工作。審核通過(guò)后,即可創(chuàng )建應用。然后在微博開(kāi)放平臺首頁(yè)點(diǎn)擊橙色【立即創(chuàng )建微鏈接】->【網(wǎng)站訪(fǎng)問(wèn)】或直接訪(fǎng)問(wèn)填寫(xiě)好的申請信息,提交審核。應用審核時(shí)間會(huì )稍長(cháng)。這段時(shí)間可以使用新浪的開(kāi)放端口進(jìn)行開(kāi)發(fā),
2、Wordpress 同步新浪微博代碼
新浪微博有很多接口供開(kāi)發(fā)者調用,根據需要,我們只需要了解更新發(fā)布接口即可。相關(guān)開(kāi)發(fā)文檔:. 根據開(kāi)發(fā)文檔,我們可以得到如下接口信息:
接口URL:https://api.weibo.com/2/statuses/repost.json
數據格式:JSON
請求方式:POST
請求參數:status(微博內容)、source(AppKey,從開(kāi)發(fā)者中心我的應用中獲?。?br /> 是否需要登陸:是
根據以上微博界面信息,我們可以編寫(xiě)wordpress代碼如下(appkey、用戶(hù)名、用戶(hù)密碼需要自己替換):
/*
文章同步到新浪微博
代碼來(lái)源: www.wpzhinan.com
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修訂版本(更新)不發(fā)微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
$appkey='3838258703';
$username='微博用戶(hù)名';
$userpassword='微博密碼';
$request = new WP_Http;
$status = '【' . strip_tags($get_post_title) . '】 ' . mb_strimwidth(strip_tags(apply_filters('the_content', $get_post_centent)) , 0, 132, '...') . ' 全文地址:' . get_permalink($post_ID);
$api_url = 'https://api.weibo.com/2/statuses/update.json';
$body = array('status' => $status,'source' => $appkey);
$headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array('body' => $body,'headers' => $headers));
}
}
add_action('publish_post', 'post_to_sina_weibo', 0);//給發(fā)布文章增加一個(gè)分享微博的動(dòng)作
將上面的wordpress文章同步微博代碼粘貼到你主題的function.php文件中。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Java使用新浪微博API開(kāi)發(fā)微博應用的相關(guān)知識和一些)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 82 次瀏覽 ? 2021-12-03 16:01
想了解Java使用新浪微博API開(kāi)發(fā)微博應用的基本方法嗎?在本文中,劉先安將仔細講解Java使用微博API開(kāi)發(fā)應用的相關(guān)知識以及一些代碼示例。歡迎閱讀和糾正我們。先劃重點(diǎn):Java、微博、API,大家一起學(xué)習。
新浪微博API現已廣泛使用,制作完整的開(kāi)發(fā)流程Demo
1、 第一步就是注冊,就不多說(shuō)了。注冊賬號,成為開(kāi)發(fā)者賬號。如果做不到,請立即砸電腦,拔掉網(wǎng)線(xiàn),回家種田。
2、第二步是創(chuàng )建一個(gè)應用程序。創(chuàng )建開(kāi)發(fā)者賬號后,打開(kāi)新浪微博開(kāi)發(fā)平臺:
點(diǎn)擊上方菜單欄中的最后一個(gè)管理中心
如果是web應用,選擇創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)的應用,然后根據新浪微博的要求,balabalabala自己做
應用程序已創(chuàng )建。點(diǎn)擊應用跳轉到頁(yè)面,點(diǎn)擊查看應用參數,可以看到應用的相關(guān)參數,這些參數會(huì )在第四步用到。
3、第三步下載SDK,回到頂部菜單欄,點(diǎn)擊Documents,然后點(diǎn)擊左側菜單欄SDK,選擇java sdk,下載balabala。如果您在這一步有任何問(wèn)題,請回家種田。
所謂sdk并不是sdk(個(gè)人覺(jué)得這個(gè)名字有點(diǎn)誤導),而是一個(gè)可運行的項目。下載后解壓,導入eclipse,可以看到src和example兩個(gè)目錄
src是新浪微博的一部分
example 是一個(gè)例子,一個(gè)界面的演示
4、第四步配置參數,在src目錄找到config.properties
前三個(gè)參數需要配置為第二步中提到的應用參數中的參數。
后者是默認的,不需要更改
前三個(gè)參數配置如下
client_ID 是應用程序密鑰
client_SERCRET 是 App Secret
redirect_URI 就是OAuth2.0 授權回調URL 申請信息>高級信息>OAuth2.0 授權設置 下面這個(gè)授權回調頁(yè)面就是你填寫(xiě)的一個(gè)URL,指向自己的服務(wù)器,當然下開(kāi)發(fā) 在這個(gè)階段,我們可以使用任何 URL,只要它能讓我們了解 OAuth 授權過(guò)程。這里我們進(jìn)入一個(gè)取消授權回調頁(yè)面。也是如此。注意這里的 URL 字符串必須一致。
5、第五步獲取AccessToken。一般情況下,AccessToken必須通過(guò)OAuth2.0認證來(lái)獲取,但是為了簡(jiǎn)單起見(jiàn),我來(lái)說(shuō)一個(gè)簡(jiǎn)單的方法。以后再說(shuō)OAuth2.0
仍然選擇頂部菜單欄Document>API>API Test Tool
選擇創(chuàng )建的應用,點(diǎn)擊獲取AccessToken。下面的文本框就是我們想要的AccessToken
6、 第六步做一個(gè)界面示例
直接去微博API找一個(gè)已有權限的接口,
隨機找了一個(gè)用戶(hù)發(fā)的微博status/user_timeline 用于測試
點(diǎn)擊該界面可以查看該界面的詳細信息,可以查看該界面的各個(gè)傳入參數和返回參數,不再贅述。
不使用任何SDK實(shí)現Oauth授權,實(shí)現簡(jiǎn)單的微博發(fā)布功能:
創(chuàng )建一個(gè)Java項目,編寫(xiě)如下代碼。具體的流程代碼已經(jīng)寫(xiě)的很清楚了,這里就不解釋了:
請注意先將應用ID、應用密碼和回調頁(yè)面修改為您自己的!訪(fǎng)問(wèn)授權頁(yè)面:
package com;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Scanner;
import javax.net.ssl.X509TrustManager;
/**
* @author 劉顯安
* 不使用任何SDK實(shí)現新浪微博Oauth授權并實(shí)現發(fā)微薄小Demo
* 日期:2012年11月11日
*/
public class Test
{
static String clientId="2355065950";//你的應用ID
static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的應用密碼
static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在應用管理中心設置的回調頁(yè)面
public static void main(String[] args) throws Exception
{
testHttps();//測試
//第一步:訪(fǎng)問(wèn)授權頁(yè)面獲取授權
System.out.println("請打開(kāi)你的瀏覽器,訪(fǎng)問(wèn)以下頁(yè)面,登錄你的微博賬號并授權:");
System.out.println("https://api.weibo.com/oauth2/a ... 6quot;);
//第二步:獲取AccessToken
System.out.println("請將授權成功后的頁(yè)面地址欄中的參數code:");
String code=new Scanner(System.in).next();
getAccessToken(code);
//第三步:發(fā)布一條微博
System.out.println("請輸入上面返回的值中accessToken的值:");
String accessToken=new Scanner(System.in).next();
updateStatus("發(fā)布微博測試!來(lái)自WeiboDemo!", accessToken);
}
/**
* 測試能否正常訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站,
*/
public static void testHttps()
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URL url=new URL("https://api.weibo.com/oauth2/default.html");
URLConnection con=url.openConnection();
con.getInputStream();
System.out.println("恭喜,訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站正常!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 以Post方式訪(fǎng)問(wèn)一個(gè)URL
* @param url 要訪(fǎng)問(wèn)的URL
* @param parameters URL后面“?”后面跟著(zhù)的參數
*/
public static void postUrl(String url,String parameters)
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URLConnection conn = new URL(url).openConnection();
conn.setDoOutput(true);// 這里是關(guān)鍵,表示我們要向鏈接里注入的參數
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 獲得連接輸出流
out.write(parameters);
out.flush();
out.close();
// 到這里已經(jīng)完成了,開(kāi)始打印返回的HTML代碼
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 獲取AccessToken
* @param code 在授權頁(yè)面返回的Code
*/
public static void getAccessToken(String code)
{
String url="https://api.weibo.com/oauth2/access_token";
String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+
"&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;
postUrl(url, parameters);
}
/**
* 利用剛獲取的AccessToken發(fā)布一條微博
* @param text 要發(fā)布的微博內容
* @param accessToken 剛獲取的AccessToken
*/
public static void updateStatus(String text,String accessToken)
{
String url="https://api.weibo.com/2/status ... 3B%3B
String parameters="status="+text+"&access_token="+accessToken;
postUrl(url, parameters);
System.out.println("發(fā)布微博成功!");
}
/**
* 設置信任所有的http證書(shū)(正常情況下訪(fǎng)問(wèn)https打頭的網(wǎng)站會(huì )出現證書(shū)不信任相關(guān)錯誤,所以必須在訪(fǎng)問(wèn)前調用此方法)
* @throws Exception
*/
private static void trustAllHttpsCertificates() throws Exception
{
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
trustAllCerts[0] = new X509TrustManager()
{
@Override
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
};
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
}
訪(fǎng)問(wèn)授權頁(yè)面:
授權成功:
成功發(fā)布微博:
控制臺輸出:
相關(guān)文章 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Java使用新浪微博API開(kāi)發(fā)微博應用的相關(guān)知識和一些)
想了解Java使用新浪微博API開(kāi)發(fā)微博應用的基本方法嗎?在本文中,劉先安將仔細講解Java使用微博API開(kāi)發(fā)應用的相關(guān)知識以及一些代碼示例。歡迎閱讀和糾正我們。先劃重點(diǎn):Java、微博、API,大家一起學(xué)習。
新浪微博API現已廣泛使用,制作完整的開(kāi)發(fā)流程Demo
1、 第一步就是注冊,就不多說(shuō)了。注冊賬號,成為開(kāi)發(fā)者賬號。如果做不到,請立即砸電腦,拔掉網(wǎng)線(xiàn),回家種田。
2、第二步是創(chuàng )建一個(gè)應用程序。創(chuàng )建開(kāi)發(fā)者賬號后,打開(kāi)新浪微博開(kāi)發(fā)平臺:
點(diǎn)擊上方菜單欄中的最后一個(gè)管理中心

如果是web應用,選擇創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)的應用,然后根據新浪微博的要求,balabalabala自己做
應用程序已創(chuàng )建。點(diǎn)擊應用跳轉到頁(yè)面,點(diǎn)擊查看應用參數,可以看到應用的相關(guān)參數,這些參數會(huì )在第四步用到。
3、第三步下載SDK,回到頂部菜單欄,點(diǎn)擊Documents,然后點(diǎn)擊左側菜單欄SDK,選擇java sdk,下載balabala。如果您在這一步有任何問(wèn)題,請回家種田。

所謂sdk并不是sdk(個(gè)人覺(jué)得這個(gè)名字有點(diǎn)誤導),而是一個(gè)可運行的項目。下載后解壓,導入eclipse,可以看到src和example兩個(gè)目錄
src是新浪微博的一部分
example 是一個(gè)例子,一個(gè)界面的演示
4、第四步配置參數,在src目錄找到config.properties
前三個(gè)參數需要配置為第二步中提到的應用參數中的參數。
后者是默認的,不需要更改
前三個(gè)參數配置如下
client_ID 是應用程序密鑰
client_SERCRET 是 App Secret
redirect_URI 就是OAuth2.0 授權回調URL 申請信息>高級信息>OAuth2.0 授權設置 下面這個(gè)授權回調頁(yè)面就是你填寫(xiě)的一個(gè)URL,指向自己的服務(wù)器,當然下開(kāi)發(fā) 在這個(gè)階段,我們可以使用任何 URL,只要它能讓我們了解 OAuth 授權過(guò)程。這里我們進(jìn)入一個(gè)取消授權回調頁(yè)面。也是如此。注意這里的 URL 字符串必須一致。
5、第五步獲取AccessToken。一般情況下,AccessToken必須通過(guò)OAuth2.0認證來(lái)獲取,但是為了簡(jiǎn)單起見(jiàn),我來(lái)說(shuō)一個(gè)簡(jiǎn)單的方法。以后再說(shuō)OAuth2.0
仍然選擇頂部菜單欄Document>API>API Test Tool
選擇創(chuàng )建的應用,點(diǎn)擊獲取AccessToken。下面的文本框就是我們想要的AccessToken

6、 第六步做一個(gè)界面示例
直接去微博API找一個(gè)已有權限的接口,
隨機找了一個(gè)用戶(hù)發(fā)的微博status/user_timeline 用于測試

點(diǎn)擊該界面可以查看該界面的詳細信息,可以查看該界面的各個(gè)傳入參數和返回參數,不再贅述。
不使用任何SDK實(shí)現Oauth授權,實(shí)現簡(jiǎn)單的微博發(fā)布功能:
創(chuàng )建一個(gè)Java項目,編寫(xiě)如下代碼。具體的流程代碼已經(jīng)寫(xiě)的很清楚了,這里就不解釋了:
請注意先將應用ID、應用密碼和回調頁(yè)面修改為您自己的!訪(fǎng)問(wèn)授權頁(yè)面:
package com;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Scanner;
import javax.net.ssl.X509TrustManager;
/**
* @author 劉顯安
* 不使用任何SDK實(shí)現新浪微博Oauth授權并實(shí)現發(fā)微薄小Demo
* 日期:2012年11月11日
*/
public class Test
{
static String clientId="2355065950";//你的應用ID
static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的應用密碼
static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在應用管理中心設置的回調頁(yè)面
public static void main(String[] args) throws Exception
{
testHttps();//測試
//第一步:訪(fǎng)問(wèn)授權頁(yè)面獲取授權
System.out.println("請打開(kāi)你的瀏覽器,訪(fǎng)問(wèn)以下頁(yè)面,登錄你的微博賬號并授權:");
System.out.println("https://api.weibo.com/oauth2/a ... 6quot;);
//第二步:獲取AccessToken
System.out.println("請將授權成功后的頁(yè)面地址欄中的參數code:");
String code=new Scanner(System.in).next();
getAccessToken(code);
//第三步:發(fā)布一條微博
System.out.println("請輸入上面返回的值中accessToken的值:");
String accessToken=new Scanner(System.in).next();
updateStatus("發(fā)布微博測試!來(lái)自WeiboDemo!", accessToken);
}
/**
* 測試能否正常訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站,
*/
public static void testHttps()
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URL url=new URL("https://api.weibo.com/oauth2/default.html");
URLConnection con=url.openConnection();
con.getInputStream();
System.out.println("恭喜,訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站正常!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 以Post方式訪(fǎng)問(wèn)一個(gè)URL
* @param url 要訪(fǎng)問(wèn)的URL
* @param parameters URL后面“?”后面跟著(zhù)的參數
*/
public static void postUrl(String url,String parameters)
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URLConnection conn = new URL(url).openConnection();
conn.setDoOutput(true);// 這里是關(guān)鍵,表示我們要向鏈接里注入的參數
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 獲得連接輸出流
out.write(parameters);
out.flush();
out.close();
// 到這里已經(jīng)完成了,開(kāi)始打印返回的HTML代碼
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 獲取AccessToken
* @param code 在授權頁(yè)面返回的Code
*/
public static void getAccessToken(String code)
{
String url="https://api.weibo.com/oauth2/access_token";
String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+
"&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;
postUrl(url, parameters);
}
/**
* 利用剛獲取的AccessToken發(fā)布一條微博
* @param text 要發(fā)布的微博內容
* @param accessToken 剛獲取的AccessToken
*/
public static void updateStatus(String text,String accessToken)
{
String url="https://api.weibo.com/2/status ... 3B%3B
String parameters="status="+text+"&access_token="+accessToken;
postUrl(url, parameters);
System.out.println("發(fā)布微博成功!");
}
/**
* 設置信任所有的http證書(shū)(正常情況下訪(fǎng)問(wèn)https打頭的網(wǎng)站會(huì )出現證書(shū)不信任相關(guān)錯誤,所以必須在訪(fǎng)問(wèn)前調用此方法)
* @throws Exception
*/
private static void trustAllHttpsCertificates() throws Exception
{
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
trustAllCerts[0] = new X509TrustManager()
{
@Override
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
};
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
}
訪(fǎng)問(wèn)授權頁(yè)面:

授權成功:

成功發(fā)布微博:

控制臺輸出:

相關(guān)文章
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( Wave():返回條數限制更新)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 50 次瀏覽 ? 2021-12-03 12:16
Wave():返回條數限制更新)
而且退貨數量沒(méi)有限制!
代碼示例是:
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
CALLBACK_URL = client.get_authorize_url()
print CALLBACK_URL
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 此為我自己寫(xiě)的接口,自動(dòng)獲取code的值
code = API.get_code_Security()
requests = client.request_access_token(code)
access_token = requests.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = requests.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
statuses = client.statuses__home_timeline() # 獲取數據
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 這是我自己寫(xiě)的接口,自動(dòng)獲取code值。下載地址為:(@The_Third_Wave) Python:利用新浪微博API和安全模擬登錄自動(dòng)獲取代碼值:
有新的方法會(huì )不時(shí)更新。
打印信息:
<p>str_sta = json.dumps(statuses)
text_list = re.findall(r"(? 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
Wave():返回條數限制更新)
而且退貨數量沒(méi)有限制!
代碼示例是:
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
CALLBACK_URL = client.get_authorize_url()
print CALLBACK_URL
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 此為我自己寫(xiě)的接口,自動(dòng)獲取code的值
code = API.get_code_Security()
requests = client.request_access_token(code)
access_token = requests.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = requests.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
statuses = client.statuses__home_timeline() # 獲取數據
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 這是我自己寫(xiě)的接口,自動(dòng)獲取code值。下載地址為:(@The_Third_Wave) Python:利用新浪微博API和安全模擬登錄自動(dòng)獲取代碼值:
有新的方法會(huì )不時(shí)更新。
打印信息:
<p>str_sta = json.dumps(statuses)
text_list = re.findall(r"(?
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 49 次瀏覽 ? 2021-12-19 07:02
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子=可以實(shí)現的方法太多了,推薦嘗試這一個(gè),不到1/3的代價(jià),
本來(lái)還想對應api拿到自己的微博,現在不用這個(gè)api了,主要原因是同步太頻繁會(huì )掛掉,開(kāi)始是9天掛了一次,最近的一次掛掉是15天。
目前對我個(gè)人來(lái)說(shuō),還是比較方便的,使用自己的域名和服務(wù)器可以進(jìn)行數據同步,自動(dòng)生成二維碼,不同平臺的轉發(fā)推送都是可以實(shí)現的,反正我用同步最順手的就是新浪了,因為二維碼生成用起來(lái)相對容易。至于題主說(shuō)的7*24的話(huà)可能有點(diǎn)夸張,我所知道的,一般所有網(wǎng)站最多的同步也就2*7*24*24*24*24*24*24,兩到三次就會(huì )降到原來(lái)每天的最低限制(12/24/60),沒(méi)幾個(gè)人會(huì )整天整晚同步,這樣整體成本會(huì )提高不少。
你感覺(jué)不好用的原因我猜可能是同步受到限制了,最簡(jiǎn)單的應該是轉發(fā)的人數問(wèn)題,同步你想轉發(fā)的人多的,可以嘗試“黑名單”功能,設置一個(gè)限制,轉發(fā)的人再不轉發(fā)時(shí)域名被刪,要是想要被解封也需要一定的操作。想自動(dòng)同步多平臺的還是設置黑名單功能更靠譜。
推薦burstcom。ip地址對應的就會(huì )同步,有多種同步方式,同步到朋友圈什么的非常方便。也可以api,我用的是文檔方式,操作麻煩一點(diǎn),但是效果好。服務(wù)器的話(huà)是租用服務(wù)器,多一點(diǎn)的域名服務(wù)器費用不一樣。有問(wèn)題可以直接給他們客服,反饋非常及時(shí),人也不錯,具體服務(wù)你問(wèn)他們就好。(他們家真的是懂網(wǎng)站,會(huì )給你合理意見(jiàn)不忽悠人,非常容易推薦我去。
?。?上面這些不是正面答案,不如提供兩個(gè)建議:1.拉一個(gè)網(wǎng)站出來(lái)專(zhuān)門(mén)做分享互動(dòng)。2.做好服務(wù)器的防火墻防病毒,安全是最基本的。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子)
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站+社交圈子=可以實(shí)現的方法太多了,推薦嘗試這一個(gè),不到1/3的代價(jià),
本來(lái)還想對應api拿到自己的微博,現在不用這個(gè)api了,主要原因是同步太頻繁會(huì )掛掉,開(kāi)始是9天掛了一次,最近的一次掛掉是15天。
目前對我個(gè)人來(lái)說(shuō),還是比較方便的,使用自己的域名和服務(wù)器可以進(jìn)行數據同步,自動(dòng)生成二維碼,不同平臺的轉發(fā)推送都是可以實(shí)現的,反正我用同步最順手的就是新浪了,因為二維碼生成用起來(lái)相對容易。至于題主說(shuō)的7*24的話(huà)可能有點(diǎn)夸張,我所知道的,一般所有網(wǎng)站最多的同步也就2*7*24*24*24*24*24*24,兩到三次就會(huì )降到原來(lái)每天的最低限制(12/24/60),沒(méi)幾個(gè)人會(huì )整天整晚同步,這樣整體成本會(huì )提高不少。
你感覺(jué)不好用的原因我猜可能是同步受到限制了,最簡(jiǎn)單的應該是轉發(fā)的人數問(wèn)題,同步你想轉發(fā)的人多的,可以嘗試“黑名單”功能,設置一個(gè)限制,轉發(fā)的人再不轉發(fā)時(shí)域名被刪,要是想要被解封也需要一定的操作。想自動(dòng)同步多平臺的還是設置黑名單功能更靠譜。
推薦burstcom。ip地址對應的就會(huì )同步,有多種同步方式,同步到朋友圈什么的非常方便。也可以api,我用的是文檔方式,操作麻煩一點(diǎn),但是效果好。服務(wù)器的話(huà)是租用服務(wù)器,多一點(diǎn)的域名服務(wù)器費用不一樣。有問(wèn)題可以直接給他們客服,反饋非常及時(shí),人也不錯,具體服務(wù)你問(wèn)他們就好。(他們家真的是懂網(wǎng)站,會(huì )給你合理意見(jiàn)不忽悠人,非常容易推薦我去。
?。?上面這些不是正面答案,不如提供兩個(gè)建議:1.拉一個(gè)網(wǎng)站出來(lái)專(zhuān)門(mén)做分享互動(dòng)。2.做好服務(wù)器的防火墻防病毒,安全是最基本的。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(今天下午弄了個(gè)新浪微博同步應用測試好多次,終于成功了)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 78 次瀏覽 ? 2021-12-17 23:06
今天下午收到了一個(gè)新浪微博同步申請。我測試了很多次,終于成功了。說(shuō)一下我的配置過(guò)程。歡迎大家訪(fǎng)問(wèn)我的新浪微博!
首先,你必須有一個(gè)新浪微博賬號。如果您沒(méi)有,請注冊一個(gè),然后成為開(kāi)發(fā)人員。您可以點(diǎn)擊微博或直接輸入網(wǎng)址:,選擇我是開(kāi)發(fā)者,然后選擇創(chuàng )建應用,輸入并填寫(xiě)開(kāi)發(fā)用戶(hù)信息,成功后,獲取您的APP KEY和APP SECRET,復制并保存他們。
然后去下載SDK文檔,選擇PHP語(yǔ)言,查看“通過(guò)OAuth驗證”。這是我用的。點(diǎn)擊下方鏈接下載并在本地解壓。
第三步,開(kāi)始測試。將解壓后的文件中的 weobodemo 文件夾復制到 test 目錄下,也就是你的站點(diǎn)目錄。您必須提前配置虛擬域名。如果不會(huì ),可以參考我的另一篇文章文章,使用apache配置一個(gè)獨立的虛擬域名。
weibodemo文件夾下有一個(gè)配置文件config.php。打開(kāi)它后,您將知道該怎么做。在其中寫(xiě)入您的 APP KEY 和 APP SECRET。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件,就不會(huì )啰嗦了。
在這里你會(huì )發(fā)現出錯了:注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php on line 13
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,就別管了,點(diǎn)擊下面的鏈接,然后出現錯誤:對不起,那個(gè)頁(yè)面不存在!
說(shuō)到這里,估計很多人都會(huì )放棄,頓時(shí)不知如何是好。其實(shí),不要把新浪微博的應用開(kāi)發(fā)想的那么深,大多數人都能理解。仔細看index.php,你剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此,我們不難想到流程:首先在本地配置文件config.php中獲取APP KEY和APP SECRET,然后必須驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否對此進(jìn)行了授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面寫(xiě)微博,最后點(diǎn)擊發(fā)布,從官方新浪微博登錄,可以看到剛剛貼文章的留言,下面要標注“來(lái)自xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,也就是目錄的虛擬域名的地址,這樣才能返回到callback.php,這樣頁(yè)面找不到是錯誤的。比如:我本地虛擬郁悶,我知道文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那我把$_SERVER['SCRIPT_URI']改成后面的/callback.php連接沒(méi)問(wèn)題。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weobolist.php。進(jìn)去之后驚呆了:蠻粗糙的,沒(méi)有風(fēng)格,簡(jiǎn)單的html形式,哈哈,新浪微博的程序員怎么這么懶。趕緊發(fā)個(gè)微博,測試一下,激動(dòng)一下,哈哈。
總結一下,其實(shí)很簡(jiǎn)單,一共只有6個(gè)文件:config.php是配置文件,通過(guò)index.php進(jìn)入新浪微博的認證授權頁(yè)面,之后返回callback.php頁(yè)面同意授權,點(diǎn)擊進(jìn)入我的微博,進(jìn)入微博發(fā)帖列表頁(yè)面weibolist.php,發(fā)微博即可。剩下的文件 weibooauth.php 是一個(gè)類(lèi)文件,里面收錄了很多類(lèi)和函數,這些都是之前用過(guò)的。有興趣的可以研究一下,不用管它。還有一件事。DS_Stor什么都不知道,打開(kāi)就是亂碼,沒(méi)關(guān)系。估計沒(méi)啥用
另外,提醒我注意頁(yè)面的編碼格式。如有亂碼,請耐心調試。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(今天下午弄了個(gè)新浪微博同步應用測試好多次,終于成功了)
今天下午收到了一個(gè)新浪微博同步申請。我測試了很多次,終于成功了。說(shuō)一下我的配置過(guò)程。歡迎大家訪(fǎng)問(wèn)我的新浪微博!
首先,你必須有一個(gè)新浪微博賬號。如果您沒(méi)有,請注冊一個(gè),然后成為開(kāi)發(fā)人員。您可以點(diǎn)擊微博或直接輸入網(wǎng)址:,選擇我是開(kāi)發(fā)者,然后選擇創(chuàng )建應用,輸入并填寫(xiě)開(kāi)發(fā)用戶(hù)信息,成功后,獲取您的APP KEY和APP SECRET,復制并保存他們。
然后去下載SDK文檔,選擇PHP語(yǔ)言,查看“通過(guò)OAuth驗證”。這是我用的。點(diǎn)擊下方鏈接下載并在本地解壓。
第三步,開(kāi)始測試。將解壓后的文件中的 weobodemo 文件夾復制到 test 目錄下,也就是你的站點(diǎn)目錄。您必須提前配置虛擬域名。如果不會(huì ),可以參考我的另一篇文章文章,使用apache配置一個(gè)獨立的虛擬域名。
weibodemo文件夾下有一個(gè)配置文件config.php。打開(kāi)它后,您將知道該怎么做。在其中寫(xiě)入您的 APP KEY 和 APP SECRET。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件,就不會(huì )啰嗦了。
在這里你會(huì )發(fā)現出錯了:注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php on line 13
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,就別管了,點(diǎn)擊下面的鏈接,然后出現錯誤:對不起,那個(gè)頁(yè)面不存在!
說(shuō)到這里,估計很多人都會(huì )放棄,頓時(shí)不知如何是好。其實(shí),不要把新浪微博的應用開(kāi)發(fā)想的那么深,大多數人都能理解。仔細看index.php,你剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此,我們不難想到流程:首先在本地配置文件config.php中獲取APP KEY和APP SECRET,然后必須驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否對此進(jìn)行了授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面寫(xiě)微博,最后點(diǎn)擊發(fā)布,從官方新浪微博登錄,可以看到剛剛貼文章的留言,下面要標注“來(lái)自xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,也就是目錄的虛擬域名的地址,這樣才能返回到callback.php,這樣頁(yè)面找不到是錯誤的。比如:我本地虛擬郁悶,我知道文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那我把$_SERVER['SCRIPT_URI']改成后面的/callback.php連接沒(méi)問(wèn)題。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weobolist.php。進(jìn)去之后驚呆了:蠻粗糙的,沒(méi)有風(fēng)格,簡(jiǎn)單的html形式,哈哈,新浪微博的程序員怎么這么懶。趕緊發(fā)個(gè)微博,測試一下,激動(dòng)一下,哈哈。
總結一下,其實(shí)很簡(jiǎn)單,一共只有6個(gè)文件:config.php是配置文件,通過(guò)index.php進(jìn)入新浪微博的認證授權頁(yè)面,之后返回callback.php頁(yè)面同意授權,點(diǎn)擊進(jìn)入我的微博,進(jìn)入微博發(fā)帖列表頁(yè)面weibolist.php,發(fā)微博即可。剩下的文件 weibooauth.php 是一個(gè)類(lèi)文件,里面收錄了很多類(lèi)和函數,這些都是之前用過(guò)的。有興趣的可以研究一下,不用管它。還有一件事。DS_Stor什么都不知道,打開(kāi)就是亂碼,沒(méi)關(guān)系。估計沒(méi)啥用
另外,提醒我注意頁(yè)面的編碼格式。如有亂碼,請耐心調試。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的系統分為三個(gè)層次,最下層是基礎服務(wù)層)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 68 次瀏覽 ? 2021-12-17 04:03
該系統分為三個(gè)層次。底層是基礎服務(wù)層,提供數據庫、緩存、存儲、搜索等數據服務(wù)等基礎技術(shù)服務(wù)。這些服務(wù)支持新浪微博的海量數據和高并發(fā)訪(fǎng)問(wèn)。系統的技術(shù)基礎。
中間層是平臺服務(wù)和應用服務(wù)層。新浪微博的核心服務(wù)是微博、關(guān)系和用戶(hù)。這些服務(wù)被劃分為獨立的服務(wù)模塊,依靠調用和共享基礎數據,構成了新浪微博的業(yè)務(wù)基礎。
頂層是 API 和業(yè)務(wù)層。各種客戶(hù)端和第三方應用調用API并將其集成到新浪微博系統中,形成一個(gè)生態(tài)系統。
新浪微博的系統架構
這些業(yè)務(wù)模塊和基礎技術(shù)模塊經(jīng)過(guò)分層劃分后分布式部署。每個(gè)模塊部署在一組獨立的服務(wù)器集群上,通過(guò)遠程調用進(jìn)行依賴(lài)訪(fǎng)問(wèn)。新浪微博早期也采用了一種分布式集群部署方案,叫做MPSS(MultiPost Single Server,單服務(wù)器多端口)。在集群中的多臺服務(wù)器上,每臺服務(wù)器都部署了多個(gè)服務(wù),每個(gè)服務(wù)使用不同的服務(wù)。港口為外界提供服務(wù)。這樣,有限數量的服務(wù)器就可以部署更多的服務(wù)實(shí)例,提高服務(wù)的負載均衡和可用性?,F在常見(jiàn)的網(wǎng)站 應用將物理機虛擬化為多個(gè)虛擬機。在虛擬機上部署應用的方法和新浪微博的MPSS方案一樣,但是更簡(jiǎn)單,可以在不同的虛擬機上使用。相同的端口號。
在新浪微博的早期架構中,微博發(fā)布采用的是同步推送模式。用戶(hù)發(fā)布微博后,系統會(huì )立即將該微博插入到數據庫中所有粉絲的訂閱列表中。當用戶(hù)數量比較大的時(shí)候,就會(huì )造成大量的用戶(hù)。數據庫寫(xiě)操作超過(guò)數據庫負載,系統性能急劇下降,用戶(hù)響應延遲增加。后來(lái)新浪微博切換到異步推拉組合模式。用戶(hù)發(fā)布微博后,系統將微博寫(xiě)入消息隊列并立即返回。用戶(hù)反應很快。消息隊列消費者任務(wù)將微博推送到當前所有在線(xiàn)粉絲的訂閱列表。非在線(xiàn)用戶(hù)登錄后,根據關(guān)注列表拉取微博訂閱列表。
由于微博頻繁刷新,新浪微博采用了多級緩存策略。熱門(mén)微博和名人用戶(hù)緩存在所有微博服務(wù)器上,在線(xiàn)用戶(hù)的微博和近期微博緩存在分布式緩存集群中。對于微博,操作中幾乎所有最常見(jiàn)的“微博”操作都是緩存訪(fǎng)問(wèn)操作,可以達到很好的系統性能。
為了提高系統的整體可用性和性能,新浪微博激活了多個(gè)數據中心。這些數據中心不僅是區域用戶(hù)訪(fǎng)問(wèn)中心,用戶(hù)可以就近訪(fǎng)問(wèn)數據中心,加快訪(fǎng)問(wèn)速度,提升系統性能;同時(shí),它們也是數據冗余復制的災備中心。所有用戶(hù)和微博數據通過(guò)遠程消息系統位于不同的位置。在數據中心之間進(jìn)行同步以提高系統可用性。
同時(shí),新浪微博還開(kāi)發(fā)了一系列自動(dòng)化工具,包括自動(dòng)化監控、自動(dòng)化發(fā)布、自動(dòng)化故障修復等,這些自動(dòng)化工具還在不斷開(kāi)發(fā)中,以提高運維水平,提高系統可用性。
由于微博的開(kāi)放性,新浪微博也遇到了一系列的安全挑戰。垃圾郵件、僵尸粉和微博攻擊從未停止。除了使用一般的網(wǎng)站通用安全策略,新浪微博是一個(gè)開(kāi)放的平臺。關(guān)于使用多級安全審計策略來(lái)保護系統和用戶(hù)。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的系統分為三個(gè)層次,最下層是基礎服務(wù)層)
該系統分為三個(gè)層次。底層是基礎服務(wù)層,提供數據庫、緩存、存儲、搜索等數據服務(wù)等基礎技術(shù)服務(wù)。這些服務(wù)支持新浪微博的海量數據和高并發(fā)訪(fǎng)問(wèn)。系統的技術(shù)基礎。
中間層是平臺服務(wù)和應用服務(wù)層。新浪微博的核心服務(wù)是微博、關(guān)系和用戶(hù)。這些服務(wù)被劃分為獨立的服務(wù)模塊,依靠調用和共享基礎數據,構成了新浪微博的業(yè)務(wù)基礎。
頂層是 API 和業(yè)務(wù)層。各種客戶(hù)端和第三方應用調用API并將其集成到新浪微博系統中,形成一個(gè)生態(tài)系統。
新浪微博的系統架構
這些業(yè)務(wù)模塊和基礎技術(shù)模塊經(jīng)過(guò)分層劃分后分布式部署。每個(gè)模塊部署在一組獨立的服務(wù)器集群上,通過(guò)遠程調用進(jìn)行依賴(lài)訪(fǎng)問(wèn)。新浪微博早期也采用了一種分布式集群部署方案,叫做MPSS(MultiPost Single Server,單服務(wù)器多端口)。在集群中的多臺服務(wù)器上,每臺服務(wù)器都部署了多個(gè)服務(wù),每個(gè)服務(wù)使用不同的服務(wù)。港口為外界提供服務(wù)。這樣,有限數量的服務(wù)器就可以部署更多的服務(wù)實(shí)例,提高服務(wù)的負載均衡和可用性?,F在常見(jiàn)的網(wǎng)站 應用將物理機虛擬化為多個(gè)虛擬機。在虛擬機上部署應用的方法和新浪微博的MPSS方案一樣,但是更簡(jiǎn)單,可以在不同的虛擬機上使用。相同的端口號。
在新浪微博的早期架構中,微博發(fā)布采用的是同步推送模式。用戶(hù)發(fā)布微博后,系統會(huì )立即將該微博插入到數據庫中所有粉絲的訂閱列表中。當用戶(hù)數量比較大的時(shí)候,就會(huì )造成大量的用戶(hù)。數據庫寫(xiě)操作超過(guò)數據庫負載,系統性能急劇下降,用戶(hù)響應延遲增加。后來(lái)新浪微博切換到異步推拉組合模式。用戶(hù)發(fā)布微博后,系統將微博寫(xiě)入消息隊列并立即返回。用戶(hù)反應很快。消息隊列消費者任務(wù)將微博推送到當前所有在線(xiàn)粉絲的訂閱列表。非在線(xiàn)用戶(hù)登錄后,根據關(guān)注列表拉取微博訂閱列表。
由于微博頻繁刷新,新浪微博采用了多級緩存策略。熱門(mén)微博和名人用戶(hù)緩存在所有微博服務(wù)器上,在線(xiàn)用戶(hù)的微博和近期微博緩存在分布式緩存集群中。對于微博,操作中幾乎所有最常見(jiàn)的“微博”操作都是緩存訪(fǎng)問(wèn)操作,可以達到很好的系統性能。
為了提高系統的整體可用性和性能,新浪微博激活了多個(gè)數據中心。這些數據中心不僅是區域用戶(hù)訪(fǎng)問(wèn)中心,用戶(hù)可以就近訪(fǎng)問(wèn)數據中心,加快訪(fǎng)問(wèn)速度,提升系統性能;同時(shí),它們也是數據冗余復制的災備中心。所有用戶(hù)和微博數據通過(guò)遠程消息系統位于不同的位置。在數據中心之間進(jìn)行同步以提高系統可用性。
同時(shí),新浪微博還開(kāi)發(fā)了一系列自動(dòng)化工具,包括自動(dòng)化監控、自動(dòng)化發(fā)布、自動(dòng)化故障修復等,這些自動(dòng)化工具還在不斷開(kāi)發(fā)中,以提高運維水平,提高系統可用性。
由于微博的開(kāi)放性,新浪微博也遇到了一系列的安全挑戰。垃圾郵件、僵尸粉和微博攻擊從未停止。除了使用一般的網(wǎng)站通用安全策略,新浪微博是一個(gè)開(kāi)放的平臺。關(guān)于使用多級安全審計策略來(lái)保護系統和用戶(hù)。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這里有新鮮出爐的Python入門(mén),程序狗速度看過(guò)來(lái)! )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 49 次瀏覽 ? 2021-12-17 04:00
)
這里有新鮮的Python介紹,看程序狗的速度!
Python編程語(yǔ)言 Python是一種面向對象的解釋型計算機編程語(yǔ)言,由Guido van Rossum于1989年底發(fā)明,1991年首次公開(kāi)發(fā)布。Python語(yǔ)法簡(jiǎn)潔明了,具有豐富而強大的類(lèi)庫. 它通常被稱(chēng)為膠水語(yǔ)言,它可以很容易地將其他語(yǔ)言(尤其是 C/C++)制作的各種模塊連接在一起。
本文介紹了python連接新浪微博開(kāi)放平臺的方法。請有需要的同學(xué)參考。另外,官方新浪微博開(kāi)放平臺有完整的SDK和幫助文檔,有需要的同學(xué)可以自行查看。
因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。有需要的朋友可以參考以下
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這里有新鮮出爐的Python入門(mén),程序狗速度看過(guò)來(lái)!
)
這里有新鮮的Python介紹,看程序狗的速度!
Python編程語(yǔ)言 Python是一種面向對象的解釋型計算機編程語(yǔ)言,由Guido van Rossum于1989年底發(fā)明,1991年首次公開(kāi)發(fā)布。Python語(yǔ)法簡(jiǎn)潔明了,具有豐富而強大的類(lèi)庫. 它通常被稱(chēng)為膠水語(yǔ)言,它可以很容易地將其他語(yǔ)言(尤其是 C/C++)制作的各種模塊連接在一起。
本文介紹了python連接新浪微博開(kāi)放平臺的方法。請有需要的同學(xué)參考。另外,官方新浪微博開(kāi)放平臺有完整的SDK和幫助文檔,有需要的同學(xué)可以自行查看。
因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。有需要的朋友可以參考以下
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 65 次瀏覽 ? 2021-12-16 09:15
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):
結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:
新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。
然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:
完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向后, callback_url 將附加 oauth_verifier 參數。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:
點(diǎn)擊鏈接,如下圖(注意地址欄的變化):
地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:
地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:
登錄微博查看,如下圖:
查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth
使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):

結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:

新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。

然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:

完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向后, callback_url 將附加 oauth_verifier 參數。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:

點(diǎn)擊鏈接,如下圖(注意地址欄的變化):

地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:

地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:

登錄微博查看,如下圖:

查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth

使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 54 次瀏覽 ? 2021-12-15 16:04
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):
結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token,Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:
新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。
然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:
完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向之后,oauth_verifier 參數會(huì )附加到callback_url。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:
點(diǎn)擊鏈接,如下圖(注意地址欄的變化):
地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:
地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:
登錄微博查看,如下圖:
查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth
使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用(App))
新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言版本的開(kāi)發(fā)SDK下載,但也附帶了一些基本接口調用的demo和接口描述文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我并沒(méi)有放棄嘗試去理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程。
如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。App key和Secret key有什么用?
其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。
當我第一次遇到完全沒(méi)有概念的 OAuth 時(shí),我認為它是不可能學(xué)習的。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下:
OAuth 有 3 個(gè)參與者,分別是 User、Service Provider 和 Consumer。假設我想開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App),供其他新浪微博用戶(hù)使用。它們的對應關(guān)系如下:
實(shí)際上,我們的App相當于User和Provider(新浪微博平臺)的第三方應用。由于第三方App想要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。
下面是根據我對整個(gè)OAuth認證授權流程的理解繪制的圖(可以跳過(guò),對以下一些概念有一定了解后再看流程圖):

結合上面的流程圖,下面是我對這些術(shù)語(yǔ)的理解以及對每個(gè)過(guò)程的描述:
消費者秘鑰和消費者秘鑰:在新浪微博開(kāi)放平臺上分別稱(chēng)為App秘鑰和秘鑰。消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。
對應上圖中的流程1和流程2。
Request Token,Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer,希望獲得其特殊服務(wù)時(shí),在用戶(hù)整合Provider中存儲的資源后,由Consumer返回該服務(wù)。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。
對應上圖中的過(guò)程3、4、5。
要處理 6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。
接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。
Access Token,Access Secret:如果Provider在流程10中返回一個(gè)未經(jīng)User授權的Access Token,則用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后Consumer就可以開(kāi)始使用獲取到的Access Token和Access Secret來(lái)訪(fǎng)問(wèn)Provider中對應User存儲的資源了。
在流程11中對用戶(hù)信息進(jìn)行整合操作后,即可將具體的服務(wù)結果返回給用戶(hù)。
通過(guò)以上對OAuth流程的理解,我們知道,實(shí)際上User并沒(méi)有向第三方Consumer透露登錄Provider所需的賬號和密碼。同時(shí),用戶(hù)可以使用消費者的特殊服務(wù)。多么巧妙而安全的操作過(guò)程!
另外,在上圖中,Consumer 向 Provider 提出了 3 個(gè)不同的請求。實(shí)際上,Provider 提供了 3 個(gè)不同功能的 URL 供 Consumer 訪(fǎng)問(wèn)。這3個(gè)網(wǎng)址在新浪微博開(kāi)放平臺的截圖如下:

新浪微博開(kāi)放平臺使用OAuth驗證并發(fā)布微博
使用新浪微博開(kāi)放平臺的API,首先需要獲取新浪分配的App key和App Secret。以下是我創(chuàng )建應用后新浪分配的App key和App Secret(這個(gè)要保密)。

然后下載微博SDK,我用的是Java的weibo4j。
將SDK包中的weibo.java類(lèi)的App Key和App Secret修改為剛剛獲取的App Key和App Secret,如下圖使用說(shuō)明所示:

完成這些之后,就可以根據提供的Demo開(kāi)始編寫(xiě)代碼了。如下:
WebOAuth.java用于初始化Weibo.java類(lèi)所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法來(lái)獲取Request Token和Access Token。所需參數如代碼所示。此外,還提供了發(fā)布文本微博的update()方法。
package weibo4j.examples;
import weibo4j.Status;
import weibo4j.Weibo;
import weibo4j.WeiboException;
import weibo4j.http.AccessToken;
import weibo4j.http.RequestToken;
import java.io.UnsupportedEncodingException;
// Web 方式認證
public class WebOAuth {
private Weibo weibo;
public WebOAuth(){
// 準備好Consumer Key、Consumer Secret
// 對應于新浪微博應用就是申請到的 App key 和 Secret key
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 根據傳入的 callback_url 獲取 request token
public RequestToken getRequestToken(String backUrl) {
try {
// 指定 callback_url 并獲得 request token
RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);
System.out.println("Request token: " + requestToken.getToken());
System.out.println("Request token secret: " + requestToken.getTokenSecret());
return requestToken;
} catch (Exception e) {
System.out.println("獲取Request token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 request token 和 verifier 獲取 access token
public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {
try {
AccessToken accessToken = weibo.getOAuthAccessToken(requestToken
.getToken(), requestToken.getTokenSecret(), verifier);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("Access token secret: " + accessToken.getTokenSecret());
return accessToken;
} catch (Exception e) {
System.out.println("獲取Access token發(fā)生異常!");
e.printStackTrace();
return null;
}
}
// 根據傳入的 Access Token 和內容發(fā)表微博
public void update(AccessToken access, String content) {
try {
weibo.setToken(access.getToken(), access.getTokenSecret());
content = new String(content.getBytes("GBK"), "UTF-8");
Status status = weibo.updateStatus(content);
System.out.println("成功發(fā)表微博:" + status.getText() + ".");
} catch (UnsupportedEncodingException e) {
System.out.println("微博內容轉編碼發(fā)生異常!");
e.printStackTrace();
} catch (WeiboException e) {
System.out.println("發(fā)表微博發(fā)生異常!");
e.printStackTrace();
}
}
}
request.jsp,用于提供 callback_url(這里我們自定義為下文中的callback.jsp),當獲取得到RequestToken之后,保存該RequestToken到Session中,并將頁(yè)面重定向到callback.jsp進(jìn)行驗證、授權。
請點(diǎn)擊進(jìn)行Web方式的OAuth認證!
callback.jsp,在上一步重定向之后,oauth_verifier 參數會(huì )附加到callback_url。這時(shí)候我們根據Session中存儲的RequestToken和獲取到的oauth_verifier參數來(lái)申請AccessToken。獲取到AccessToken后,我們將頁(yè)面重定向到writeWeibo.html頁(yè)面,用于寫(xiě)微博。
writeWeibo.html,很簡(jiǎn)單的HTML文件。
發(fā)布sina微博
請在這里寫(xiě)上140字符以?xún)鹊奈谋荆?lt;/br>
測試新浪微博!</br>
</br>
updateWeibo.jsp,用于發(fā)表文本微博,即調用WebOAuth.java 中的update方法。
在運行之前,我們要準備好Tomcat,把上面的源文件放到正確的目錄下。另外,SDK包中收錄的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目錄下,weibo4j.jar(里面是具體的Java在新浪微博開(kāi)放平臺實(shí)施)。
運行Tomcat,在瀏覽器中訪(fǎng)問(wèn)request.jsp頁(yè)面,如下圖:

點(diǎn)擊鏈接,如下圖(注意地址欄的變化):

地址欄的網(wǎng)址如下:
://localhost:8080/sinaweibo/callback.jsp
填寫(xiě)具體有效的新浪微博賬號、密碼和授權。以下是我用于測試授權的微博賬號的填寫(xiě)結果:

地址欄的網(wǎng)址如下:
:8080/sinaweibo/writeWeibo.html
點(diǎn)擊“發(fā)布”,如下圖:

登錄微博查看,如下圖:

查看賬戶(hù)授權的應用列表:
到目前為止,關(guān)于 OAuth

使用新浪微博開(kāi)放平臺發(fā)布微博的方式大概就是這個(gè)過(guò)程。
概括:
1、 其實(shí)還有很多細節沒(méi)說(shuō)到。我嘗試了很多次,才發(fā)現問(wèn)題,理解問(wèn)題,然后解決問(wèn)題。
2、 如果我們登錄新浪微博的賬號信息的cookies已經(jīng)保存在瀏覽器中,那么授權時(shí)就不需要輸入賬號信息了,當然不用當前賬號也可以修改授權;
3、 控制臺中也有一些輸入的信息,如Token、URL、服務(wù)器返回信息等,截圖中沒(méi)有顯示。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺注冊開(kāi)發(fā)者并獲取app和app(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 55 次瀏覽 ? 2021-12-15 13:42
前言:微博開(kāi)放平臺提供了微博數據的api接口。不僅可以通過(guò)api直接調用微博服務(wù)發(fā)布微博和查詢(xún)微博,更重要的是可以自己獲取新浪微博網(wǎng)站 api被授權調用微博的一些內容,就好像我們在網(wǎng)站看到,想分享到微博或者其他社交網(wǎng)絡(luò )網(wǎng)站,很方便。爪哇
下面就讓我們一探究竟。
1.注冊開(kāi)發(fā)者,獲取app key和app secret
百度很容易找到微博開(kāi)放平臺的入口,登錄自己的微博賬號,點(diǎn)擊賬號頭像,會(huì )提示編輯開(kāi)發(fā)者信息。
如果可以看到如下頁(yè)面,則只需根據提示填寫(xiě)即可。緊急聯(lián)系人可以自己填寫(xiě),網(wǎng)站沒(méi)關(guān)系,可以百度填寫(xiě)。
提交后,您需要在個(gè)人申請中驗證您的真實(shí)姓名。上傳圖片時(shí)請耐心等待。有點(diǎn)慢,沒(méi)有上傳進(jìn)度。上傳后,點(diǎn)擊返回跳轉到新頁(yè)面:
根據您的需要選擇,然后構建您自己的應用程序。至于里面的各個(gè)應用術(shù)語(yǔ)的含義,我不是很清楚,熟悉一下就好了。我選擇其他應用
創(chuàng )建后,您將收到一封收錄應用密鑰和應用機密的電子郵件。這是獲得權威的關(guān)鍵。
2.獲取令牌
在首頁(yè)點(diǎn)擊api接口,會(huì )跳轉到api接口描述頁(yè)面。你會(huì )發(fā)現這個(gè)api有很多功能,包括創(chuàng )建微博、刪除微博、關(guān)注/取消關(guān)注等,接口很多,但是每個(gè)接口都需要token才能訪(fǎng)問(wèn)。令牌從哪里來(lái)?
一是要拿到code,二是要有調用接口的網(wǎng)址(因為我申請的是web應用)。
設置關(guān)聯(lián)的 URL:
單擊您的應用程序名稱(chēng),然后在左側菜單中找到高級信息,然后您可以對其進(jìn)行編輯。
在api界面下點(diǎn)擊
, 進(jìn)入授權界面查看使用情況
根據示例,您需要發(fā)送收錄client_id 和redirect_uri 的get 請求??梢灾苯悠唇?。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申請的app key,redirect_uri是回調接口本身的地址,api會(huì )原樣返回??梢灾苯釉跒g覽器中輸入url,如下圖:
這個(gè)頁(yè)面是不是很熟悉?網(wǎng)頁(yè)被授權后會(huì )跳轉回redirect_uri頁(yè)面,url后面會(huì )拼出code。所以代碼有
接下來(lái)獲取授權token,第二個(gè)授權接口:
頁(yè)面上有詳細的用法。發(fā)送http post請求,我用java http-client4.5 來(lái)做,其實(shí)其他方法也行。
代碼寫(xiě)得不好,但有多少可用。5 個(gè)必需的參數值。我們已經(jīng)拿到了最后兩個(gè),前兩個(gè)在郵件里。代碼將不會(huì )發(fā)布。照顧好自己會(huì )幫助您熟悉使用,之后您將不可避免地發(fā)送各種請求。
至此,我們已經(jīng)授權成功,返回值中收錄了需要的token值。如果返回錯誤,請查看錯誤信息或百度錯誤信息。
之后,你只需要帶上token來(lái)請求各種接口。雖然有次數限制,但正常使用應該足夠了。
后記:
1. 本來(lái)想做一些爬蟲(chóng)類(lèi)的功能。我想在微博開(kāi)放界面獲取一些數據。不過(guò)從API來(lái)看,大部分都是基于web應用的微博分享功能。
就好比自己的微博,發(fā)粉絲,發(fā)微博,關(guān)注等,本身沒(méi)必要。
2. 前面說(shuō)過(guò),微博開(kāi)放api主要用于第三方網(wǎng)站或者app訪(fǎng)問(wèn)微博、登錄微博或者通過(guò)微博api分享,所以對這個(gè)有徹底的需求能夠深入研究api接口。
在3.api接口中,所有的get請求都可以通過(guò)直接連接字符串的方式獲取,但是對于剛剛請求授權的get請求,需要用戶(hù)的賬號來(lái)批準對應用的授權,所以需要登錄進(jìn)入用戶(hù)賬號,如果瀏覽器中保留了微博登錄的cookie,那么瀏覽器可以自動(dòng)登錄獲取目標碼,如果沒(méi)有會(huì )提示登錄
所以這個(gè)請求適合在瀏覽器上進(jìn)行,因為使用代碼發(fā)送請求還要模擬登錄,或者登錄后使用cookie,都非常麻煩。不過(guò)api中剩下的get請求就不會(huì )有這個(gè)問(wèn)題了,直接帶上token就可以了。模擬登錄可以使用selenium的webdriver來(lái)獲取cookies,其他模擬登錄的方法種類(lèi)繁多,非常麻煩。網(wǎng)絡(luò )
當然,如果你把它嵌入在網(wǎng)站上,那么登錄是用戶(hù)的事情。json
4.以發(fā)送微博為例:
@Test
public void test2() throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = null;
RequestConfig config =
RequestConfig.custom().setConnectTimeout(10000)
.setSocketTimeout(10000).build();
HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");
post.setConfig(config);
List pairs = new ArrayList();
BasicNameValuePair p1 = new BasicNameValuePair("access_token","");
String content = "本條微博經(jīng)過(guò)微博開(kāi)放接口發(fā)送";
BasicNameValuePair p2 = new BasicNameValuePair("status",
content);
BasicNameValuePair p3 = new BasicNameValuePair("visible","0");
pairs.add(p1);
pairs.add(p2);
pairs.add(p3);
post.setEntity(new UrlEncodedFormEntity(pairs,"utf-8"));
response = client.execute(post);
HttpEntity entities = response.getEntity();
System.out.println(EntityUtils.toString(entities,"UTF-8"));
}
5.如果把open api嵌入到自己的網(wǎng)站中,一般做法是:在分享微博按鈕(第三方登錄按鈕)上,發(fā)送微博授權認證,用戶(hù)點(diǎn)擊授權后web頁(yè)面,后臺獲取code,根據code獲取token。之后,如果需要提取微博的用戶(hù)名,可以直接在后臺發(fā)送請求。如果分享到微博,也可以通過(guò)api來(lái)完成。
如果以后在實(shí)踐中用到這些功能,那就做個(gè)記錄。本文到此結束。
來(lái)自維茲 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺注冊開(kāi)發(fā)者并獲取app和app(組圖))
前言:微博開(kāi)放平臺提供了微博數據的api接口。不僅可以通過(guò)api直接調用微博服務(wù)發(fā)布微博和查詢(xún)微博,更重要的是可以自己獲取新浪微博網(wǎng)站 api被授權調用微博的一些內容,就好像我們在網(wǎng)站看到,想分享到微博或者其他社交網(wǎng)絡(luò )網(wǎng)站,很方便。爪哇
下面就讓我們一探究竟。
1.注冊開(kāi)發(fā)者,獲取app key和app secret
百度很容易找到微博開(kāi)放平臺的入口,登錄自己的微博賬號,點(diǎn)擊賬號頭像,會(huì )提示編輯開(kāi)發(fā)者信息。

如果可以看到如下頁(yè)面,則只需根據提示填寫(xiě)即可。緊急聯(lián)系人可以自己填寫(xiě),網(wǎng)站沒(méi)關(guān)系,可以百度填寫(xiě)。

提交后,您需要在個(gè)人申請中驗證您的真實(shí)姓名。上傳圖片時(shí)請耐心等待。有點(diǎn)慢,沒(méi)有上傳進(jìn)度。上傳后,點(diǎn)擊返回跳轉到新頁(yè)面:

根據您的需要選擇,然后構建您自己的應用程序。至于里面的各個(gè)應用術(shù)語(yǔ)的含義,我不是很清楚,熟悉一下就好了。我選擇其他應用


創(chuàng )建后,您將收到一封收錄應用密鑰和應用機密的電子郵件。這是獲得權威的關(guān)鍵。
2.獲取令牌
在首頁(yè)點(diǎn)擊api接口,會(huì )跳轉到api接口描述頁(yè)面。你會(huì )發(fā)現這個(gè)api有很多功能,包括創(chuàng )建微博、刪除微博、關(guān)注/取消關(guān)注等,接口很多,但是每個(gè)接口都需要token才能訪(fǎng)問(wèn)。令牌從哪里來(lái)?
一是要拿到code,二是要有調用接口的網(wǎng)址(因為我申請的是web應用)。
設置關(guān)聯(lián)的 URL:

單擊您的應用程序名稱(chēng),然后在左側菜單中找到高級信息,然后您可以對其進(jìn)行編輯。

在api界面下點(diǎn)擊

, 進(jìn)入授權界面查看使用情況

根據示例,您需要發(fā)送收錄client_id 和redirect_uri 的get 請求??梢灾苯悠唇?。
https://api.weibo.com/oauth2/a ... Dcode
其中client_id是你申請的app key,redirect_uri是回調接口本身的地址,api會(huì )原樣返回??梢灾苯釉跒g覽器中輸入url,如下圖:

這個(gè)頁(yè)面是不是很熟悉?網(wǎng)頁(yè)被授權后會(huì )跳轉回redirect_uri頁(yè)面,url后面會(huì )拼出code。所以代碼有
接下來(lái)獲取授權token,第二個(gè)授權接口:

頁(yè)面上有詳細的用法。發(fā)送http post請求,我用java http-client4.5 來(lái)做,其實(shí)其他方法也行。

代碼寫(xiě)得不好,但有多少可用。5 個(gè)必需的參數值。我們已經(jīng)拿到了最后兩個(gè),前兩個(gè)在郵件里。代碼將不會(huì )發(fā)布。照顧好自己會(huì )幫助您熟悉使用,之后您將不可避免地發(fā)送各種請求。
至此,我們已經(jīng)授權成功,返回值中收錄了需要的token值。如果返回錯誤,請查看錯誤信息或百度錯誤信息。
之后,你只需要帶上token來(lái)請求各種接口。雖然有次數限制,但正常使用應該足夠了。
后記:
1. 本來(lái)想做一些爬蟲(chóng)類(lèi)的功能。我想在微博開(kāi)放界面獲取一些數據。不過(guò)從API來(lái)看,大部分都是基于web應用的微博分享功能。
就好比自己的微博,發(fā)粉絲,發(fā)微博,關(guān)注等,本身沒(méi)必要。

2. 前面說(shuō)過(guò),微博開(kāi)放api主要用于第三方網(wǎng)站或者app訪(fǎng)問(wèn)微博、登錄微博或者通過(guò)微博api分享,所以對這個(gè)有徹底的需求能夠深入研究api接口。
在3.api接口中,所有的get請求都可以通過(guò)直接連接字符串的方式獲取,但是對于剛剛請求授權的get請求,需要用戶(hù)的賬號來(lái)批準對應用的授權,所以需要登錄進(jìn)入用戶(hù)賬號,如果瀏覽器中保留了微博登錄的cookie,那么瀏覽器可以自動(dòng)登錄獲取目標碼,如果沒(méi)有會(huì )提示登錄

所以這個(gè)請求適合在瀏覽器上進(jìn)行,因為使用代碼發(fā)送請求還要模擬登錄,或者登錄后使用cookie,都非常麻煩。不過(guò)api中剩下的get請求就不會(huì )有這個(gè)問(wèn)題了,直接帶上token就可以了。模擬登錄可以使用selenium的webdriver來(lái)獲取cookies,其他模擬登錄的方法種類(lèi)繁多,非常麻煩。網(wǎng)絡(luò )
當然,如果你把它嵌入在網(wǎng)站上,那么登錄是用戶(hù)的事情。json
4.以發(fā)送微博為例:
@Test
public void test2() throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = null;
RequestConfig config =
RequestConfig.custom().setConnectTimeout(10000)
.setSocketTimeout(10000).build();
HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");
post.setConfig(config);
List pairs = new ArrayList();
BasicNameValuePair p1 = new BasicNameValuePair("access_token","");
String content = "本條微博經(jīng)過(guò)微博開(kāi)放接口發(fā)送";
BasicNameValuePair p2 = new BasicNameValuePair("status",
content);
BasicNameValuePair p3 = new BasicNameValuePair("visible","0");
pairs.add(p1);
pairs.add(p2);
pairs.add(p3);
post.setEntity(new UrlEncodedFormEntity(pairs,"utf-8"));
response = client.execute(post);
HttpEntity entities = response.getEntity();
System.out.println(EntityUtils.toString(entities,"UTF-8"));
}

5.如果把open api嵌入到自己的網(wǎng)站中,一般做法是:在分享微博按鈕(第三方登錄按鈕)上,發(fā)送微博授權認證,用戶(hù)點(diǎn)擊授權后web頁(yè)面,后臺獲取code,根據code獲取token。之后,如果需要提取微博的用戶(hù)名,可以直接在后臺發(fā)送請求。如果分享到微博,也可以通過(guò)api來(lái)完成。
如果以后在實(shí)踐中用到這些功能,那就做個(gè)記錄。本文到此結束。
來(lái)自維茲
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(草根用戶(hù)厭倦了傳統媒體上對權威的“90度仰視”)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 58 次瀏覽 ? 2021-12-15 08:23
編者按:本文由聯(lián)合創(chuàng )始人@邵寶麟提供。他是哥倫比亞大學(xué)計算機科學(xué)博士候選人。2007年獲得華中科技大學(xué)軟件工程學(xué)士學(xué)位。曾在印度Infosys SETLab和美國IBM TJ Watson研究中心進(jìn)行“下一代高性能分布式計算”研究。深圳樂(lè )建網(wǎng)絡(luò )是一家由美國名校輟學(xué)生、美國名校博士、成功企業(yè)家組成的創(chuàng )業(yè)公司。目前正在開(kāi)發(fā)Web3.0時(shí)代的高性能推薦互聯(lián)網(wǎng)產(chǎn)品。目前正在尋找人才,感興趣的朋友可以聯(lián)系@邵寶麟或@戴虎寧。
現在互聯(lián)網(wǎng)上最流行的是“社交網(wǎng)絡(luò )”。在國外,燒了投資者無(wú)數美元的SNS公司終于陸續上市;在國內,新浪、騰訊、搜狐甚至百度都調整了戰略,將微博作為重要的戰略布局。
對于這些巨頭來(lái)說(shuō),微博要么是鞏固帝國版圖的戰略防御武器,要么是追趕對手甚至反擊的絕佳機會(huì )。
對于媒體人或意見(jiàn)領(lǐng)袖來(lái)說(shuō),微博是他們的擴音器,他們希望微博成為未來(lái)社會(huì )進(jìn)步的加速器。
對于一大批草根用戶(hù)來(lái)說(shuō),在厭倦了傳統媒體權威的“90度仰視”和網(wǎng)絡(luò )上與同齡人的“0度交流”之后,微博為他們提供了獨一無(wú)二的45度視角,讓他們看到你也可以在傾聽(tīng)的同時(shí)有效地表達。
因此,微博幾乎一夜之間風(fēng)靡全中國。面對這樣的市場(chǎng),創(chuàng )業(yè)者沒(méi)有理由不興奮。問(wèn)題是,微博(SNS平臺)對創(chuàng )業(yè)者意味著(zhù)什么?Linkedin 創(chuàng )始人 Reid Hoffman 最近的觀(guān)點(diǎn)可能代表了美國資本市場(chǎng)的普遍看法:“如果 Web 1.0 涉及“去搜索,獲取數據”和一些有限的交互性;如果 Web 2.0涉及“真實(shí)身份”和“真實(shí)關(guān)系”,那么Web 3.0 將是“真實(shí)身份產(chǎn)生海量數據”。這就好像在說(shuō)現在是最好的時(shí)代,也是最壞的時(shí)代。
面對如此海量的用戶(hù)生成內容,創(chuàng )業(yè)者第一時(shí)間就有機會(huì )擁有一個(gè)上億用戶(hù)的平臺,以及在這個(gè)平臺上屬于每個(gè)用戶(hù)的唯一數據。但同時(shí),如果不分析和利用這些內容,“信息過(guò)載”將嚴重降低互聯(lián)網(wǎng)的效率。這是剛性需求。但企業(yè)家擔心的是這些社交平臺本身——它們是否開(kāi)放?他們現在有多開(kāi)放?他們未來(lái)會(huì )開(kāi)放到什么程度?我們可以從多個(gè)維度來(lái)討論這個(gè)問(wèn)題:企業(yè)戰略、社會(huì )趨勢、技術(shù)發(fā)展等等。
但創(chuàng )業(yè)者最關(guān)心的是這些平臺提供的API(應用程序接口)。畢竟內容是平臺的,API幾乎是其他人獲取這些內容的唯一合法途徑。API的種類(lèi)是否豐富,數據是否完整,使用時(shí)有多少限制,直接影響到創(chuàng )業(yè)想法的可行性。因此,我們將從以上幾個(gè)方面對中國最流行的兩個(gè)微博平臺騰訊和新浪做一個(gè)簡(jiǎn)單的比較。
API多樣性
使用開(kāi)放平臺的開(kāi)發(fā)者最關(guān)心的是“這個(gè)平臺提供了哪些API”和“這些API可以實(shí)現什么功能”。新浪已開(kāi)放近百個(gè)API接口。與騰訊相比,開(kāi)放方式更接近推特。如果我們仔細對比新浪和推特的API,會(huì )發(fā)現兩者不僅數量相當,而且從功能上來(lái)說(shuō),新浪幾乎提供了所有推特的開(kāi)放服務(wù)。相比之下,騰訊API的種類(lèi)要少得多,目前只有60個(gè)左右。仔細看,我們可以將微博平臺提供的服務(wù)大致分為:公共內容、用戶(hù)內容、用戶(hù)關(guān)系鏈、其他輔助功能(如搜索)。
1、 在公共內容上,騰訊和新浪都提供了獲取公共微博和熱點(diǎn)話(huà)題的接口。但新浪的熱門(mén)話(huà)題界面更加豐富,包括每周、每日和每小時(shí)的熱門(mén)話(huà)題。而騰訊只提供了“話(huà)題熱榜”界面,返回當前最熱門(mén)話(huà)題。
2、在“用戶(hù)內容”方面,兩個(gè)平臺的差異就更加明顯了。新浪的API接口以用戶(hù)為中心,而騰訊則更注重提供基礎數據。例如,對于微博上的轉發(fā)和評論,新浪直接提供了API來(lái)獲取用戶(hù)發(fā)送和接收的評論。但是,騰訊只提供了“獲取微博所有評論”的API。這意味著(zhù)“用戶(hù)收到的評論”可以通過(guò)新浪微博上的API請求獲得。在騰訊平臺,開(kāi)發(fā)者需要先獲取用戶(hù)發(fā)布的微博列表,然后再持有。微博再次向騰訊征求所有意見(jiàn)。不僅如此,騰訊還沒(méi)有開(kāi)放“獲取用戶(hù)評論”的界面。
3、 關(guān)于開(kāi)通“用戶(hù)關(guān)系鏈”,騰訊和新浪的差別不大,所有第三方都可以獲得用戶(hù)的粉絲和好友列表。由于騰訊微博本身提供了“專(zhuān)聽(tīng)”功能,用戶(hù)的“專(zhuān)聽(tīng)列表”也可以通過(guò)其API獲取。
4、最后,在“可訪(fǎng)問(wèn)性”上,雙方提供了“好友推薦”和比較完善的搜索服務(wù)(搜索用戶(hù),搜索微博),但新浪目前支持獲取可能對Tag感興趣的用戶(hù)” ,該API為基于微博的推薦服務(wù)提供了有效的參考信息。
API 的數量和類(lèi)型是多樣性的一方面,另一方面是每個(gè) API 的功能。與騰訊相比,新浪的API功能更加豐富。以“獲取用戶(hù)微博”界面為例,新浪接受的參數如下:
請求參數
必填類(lèi)型和范圍說(shuō)明
sourcetruestring AppKey在申請應用時(shí)分配,代表應用在調用接口時(shí)的唯一標識。(OAuth授權不需要此參數)
:idfalseint64/string 根據用戶(hù)ID(int6<??@4)或微博昵稱(chēng)(字符串)返回指定用戶(hù)的最新微博消息列表。該參數為REST風(fēng)格參數,見(jiàn)注釋
user_idfalseint64 用戶(hù)ID,主要用于區分用戶(hù)ID和微博昵稱(chēng)。當微博昵稱(chēng)與用戶(hù)ID產(chǎn)生歧義時(shí),建議使用該參數,尤其是微博昵稱(chēng)與用戶(hù)ID相同時(shí)
screen_namefalsestring 微博昵稱(chēng),主要用于區分用戶(hù)UID和微博昵稱(chēng)。當兩者相同且有歧義時(shí),建議使用該參數
since_idfalseint64 如果指定該參數,則只返回ID大于since_id(即發(fā)布時(shí)間晚于since_id)的微博消息。
max_idfalseint64 如果指定該參數,則返回ID小于等于max_id的微博消息
countfalseint,默認值為20,最大值為200。指定每頁(yè)返回的記錄數。
pagefalseint,默認值為1。頁(yè)碼。注:最多可返回 200 條分頁(yè)內容。
如果id、user_id、screen_name這三個(gè)參數都沒(méi)有指定,則返回當前登錄用戶(hù)發(fā)布的微博消息列表。
base_appfalseint 是否根據當前應用獲取數據。1表示限制本應用的微博,0表示不限制。
featurefalseint 微博類(lèi)型,0 全部,1原創(chuàng ),2 圖片,3 視頻,4 音樂(lè )。返回指定類(lèi)型微博的信息內容。
相比之下,騰訊的界面更原創(chuàng ):
請求參數
必填類(lèi)型和范圍說(shuō)明
oauthtruestringoauth 標準參數
Formatfalsestring 返回結果的格式:xml 或 json
Pageflagfalseint 頁(yè)面標志,0 表示第一頁(yè),1 表示向下,2 表示向上
pagetimefalseint 本頁(yè)開(kāi)始時(shí)間,第一頁(yè)填0,繼續翻頁(yè):填上次請求返回的最后一條記錄的時(shí)間
Reqnumfalseint 每個(gè)請求的記錄數
LastIdfalseint64 第一頁(yè)填0,繼續向下翻頁(yè),填上上次請求返回的最后一條記錄的ID,用于翻頁(yè)
Nametruestring 需要讀取的用戶(hù)的用戶(hù)名
我們可以看到騰訊的界面只提供了翻頁(yè)功能,而新浪提供了微博過(guò)濾。不僅是“獲取微博”接口,新浪的大部分API都具備一定程度的信息過(guò)濾能力,而騰訊的大部分接口只提供基礎數據。作為第三方開(kāi)發(fā)者,API接口功能的豐富不僅簡(jiǎn)化了開(kāi)發(fā),也降低了部分應用超出API請求限制的風(fēng)險。
數據的完整性
數據完整性是指開(kāi)放平臺是否限制開(kāi)發(fā)者請求某些數據時(shí)返回的數據量。最能體現一個(gè)平臺的開(kāi)放性。遺憾的是,從這個(gè)意義上說(shuō),新浪和騰訊都沒(méi)有真正開(kāi)放。以用戶(hù)的“粉絲列表”為例,可以看出新浪、騰訊和推特的區別。Twitter是一個(gè)真正開(kāi)放的平臺,開(kāi)發(fā)者可以通過(guò)API獲取任何用戶(hù)的完整粉絲列表。雖然一個(gè)請求最多返回 100 個(gè)粉絲的詳細信息,但我們可以通過(guò)在 Twitter 上發(fā)送多個(gè)請求來(lái)獲得完整的粉絲列表。再看新浪,一般授權用戶(hù)最多只能獲取5000條最新的粉絲信息,但與推特相比,新浪每個(gè)請求最多可以返回200個(gè)粉絲。然而,新浪和推特還為開(kāi)發(fā)者提供了專(zhuān)門(mén)的“社交圖譜”界面,可以一次性獲取用戶(hù)5000粉絲的id。不過(guò),新浪仍將總粉絲數設定為5000人,推特也一如既往的開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。
請求限制
很多開(kāi)發(fā)者抱怨開(kāi)放平臺,最多的不是API函數的數量,而是各個(gè)平臺對API請求的限制。但是所有的開(kāi)放平臺(無(wú)論是twitter、linkedin還是facebook)都會(huì )在一定程度上限制他們的開(kāi)發(fā)者使用自己的資源。這與“開(kāi)放”策略無(wú)關(guān),更多是基于系統安全的考慮。因此,各個(gè)平臺的API限制策略基本相同。例如,新浪給普通授權開(kāi)發(fā)者每個(gè)ip每小時(shí)最多10000個(gè)API請求,每個(gè)用戶(hù)每小時(shí)150個(gè)請求。(騰訊和新浪的詳細訪(fǎng)問(wèn)權限請參見(jiàn):和,3)。真正的問(wèn)題不是平臺授予基本授權應用多少請求配額,但是當應用程序因配額而受到限制時(shí),這些平臺如何為應用程序解決這個(gè)問(wèn)題。只有為平臺設計一個(gè)公開(kāi)、公平的規則,才能真正消除開(kāi)發(fā)者對其開(kāi)放性的疑慮。
通過(guò)以上分析,我們可以清楚地看到,新浪是目前國內最接近推特的微博平臺(無(wú)論是規模還是開(kāi)放度),這次山寨也恰到好處。與推特相比,騰訊的微博是一個(gè)完全不同的產(chǎn)品。雖然收錄了騰訊自己對微博和開(kāi)放平臺的理解和規劃,但目前只適合支持基本的“用戶(hù)驅動(dòng)”應用。對于“數據驅動(dòng)”的復雜應用,平臺的接口暫時(shí)還遠遠不能滿(mǎn)足開(kāi)發(fā)者的需求。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(草根用戶(hù)厭倦了傳統媒體上對權威的“90度仰視”)
編者按:本文由聯(lián)合創(chuàng )始人@邵寶麟提供。他是哥倫比亞大學(xué)計算機科學(xué)博士候選人。2007年獲得華中科技大學(xué)軟件工程學(xué)士學(xué)位。曾在印度Infosys SETLab和美國IBM TJ Watson研究中心進(jìn)行“下一代高性能分布式計算”研究。深圳樂(lè )建網(wǎng)絡(luò )是一家由美國名校輟學(xué)生、美國名校博士、成功企業(yè)家組成的創(chuàng )業(yè)公司。目前正在開(kāi)發(fā)Web3.0時(shí)代的高性能推薦互聯(lián)網(wǎng)產(chǎn)品。目前正在尋找人才,感興趣的朋友可以聯(lián)系@邵寶麟或@戴虎寧。
現在互聯(lián)網(wǎng)上最流行的是“社交網(wǎng)絡(luò )”。在國外,燒了投資者無(wú)數美元的SNS公司終于陸續上市;在國內,新浪、騰訊、搜狐甚至百度都調整了戰略,將微博作為重要的戰略布局。
對于這些巨頭來(lái)說(shuō),微博要么是鞏固帝國版圖的戰略防御武器,要么是追趕對手甚至反擊的絕佳機會(huì )。
對于媒體人或意見(jiàn)領(lǐng)袖來(lái)說(shuō),微博是他們的擴音器,他們希望微博成為未來(lái)社會(huì )進(jìn)步的加速器。
對于一大批草根用戶(hù)來(lái)說(shuō),在厭倦了傳統媒體權威的“90度仰視”和網(wǎng)絡(luò )上與同齡人的“0度交流”之后,微博為他們提供了獨一無(wú)二的45度視角,讓他們看到你也可以在傾聽(tīng)的同時(shí)有效地表達。
因此,微博幾乎一夜之間風(fēng)靡全中國。面對這樣的市場(chǎng),創(chuàng )業(yè)者沒(méi)有理由不興奮。問(wèn)題是,微博(SNS平臺)對創(chuàng )業(yè)者意味著(zhù)什么?Linkedin 創(chuàng )始人 Reid Hoffman 最近的觀(guān)點(diǎn)可能代表了美國資本市場(chǎng)的普遍看法:“如果 Web 1.0 涉及“去搜索,獲取數據”和一些有限的交互性;如果 Web 2.0涉及“真實(shí)身份”和“真實(shí)關(guān)系”,那么Web 3.0 將是“真實(shí)身份產(chǎn)生海量數據”。這就好像在說(shuō)現在是最好的時(shí)代,也是最壞的時(shí)代。
面對如此海量的用戶(hù)生成內容,創(chuàng )業(yè)者第一時(shí)間就有機會(huì )擁有一個(gè)上億用戶(hù)的平臺,以及在這個(gè)平臺上屬于每個(gè)用戶(hù)的唯一數據。但同時(shí),如果不分析和利用這些內容,“信息過(guò)載”將嚴重降低互聯(lián)網(wǎng)的效率。這是剛性需求。但企業(yè)家擔心的是這些社交平臺本身——它們是否開(kāi)放?他們現在有多開(kāi)放?他們未來(lái)會(huì )開(kāi)放到什么程度?我們可以從多個(gè)維度來(lái)討論這個(gè)問(wèn)題:企業(yè)戰略、社會(huì )趨勢、技術(shù)發(fā)展等等。
但創(chuàng )業(yè)者最關(guān)心的是這些平臺提供的API(應用程序接口)。畢竟內容是平臺的,API幾乎是其他人獲取這些內容的唯一合法途徑。API的種類(lèi)是否豐富,數據是否完整,使用時(shí)有多少限制,直接影響到創(chuàng )業(yè)想法的可行性。因此,我們將從以上幾個(gè)方面對中國最流行的兩個(gè)微博平臺騰訊和新浪做一個(gè)簡(jiǎn)單的比較。
API多樣性
使用開(kāi)放平臺的開(kāi)發(fā)者最關(guān)心的是“這個(gè)平臺提供了哪些API”和“這些API可以實(shí)現什么功能”。新浪已開(kāi)放近百個(gè)API接口。與騰訊相比,開(kāi)放方式更接近推特。如果我們仔細對比新浪和推特的API,會(huì )發(fā)現兩者不僅數量相當,而且從功能上來(lái)說(shuō),新浪幾乎提供了所有推特的開(kāi)放服務(wù)。相比之下,騰訊API的種類(lèi)要少得多,目前只有60個(gè)左右。仔細看,我們可以將微博平臺提供的服務(wù)大致分為:公共內容、用戶(hù)內容、用戶(hù)關(guān)系鏈、其他輔助功能(如搜索)。
1、 在公共內容上,騰訊和新浪都提供了獲取公共微博和熱點(diǎn)話(huà)題的接口。但新浪的熱門(mén)話(huà)題界面更加豐富,包括每周、每日和每小時(shí)的熱門(mén)話(huà)題。而騰訊只提供了“話(huà)題熱榜”界面,返回當前最熱門(mén)話(huà)題。
2、在“用戶(hù)內容”方面,兩個(gè)平臺的差異就更加明顯了。新浪的API接口以用戶(hù)為中心,而騰訊則更注重提供基礎數據。例如,對于微博上的轉發(fā)和評論,新浪直接提供了API來(lái)獲取用戶(hù)發(fā)送和接收的評論。但是,騰訊只提供了“獲取微博所有評論”的API。這意味著(zhù)“用戶(hù)收到的評論”可以通過(guò)新浪微博上的API請求獲得。在騰訊平臺,開(kāi)發(fā)者需要先獲取用戶(hù)發(fā)布的微博列表,然后再持有。微博再次向騰訊征求所有意見(jiàn)。不僅如此,騰訊還沒(méi)有開(kāi)放“獲取用戶(hù)評論”的界面。
3、 關(guān)于開(kāi)通“用戶(hù)關(guān)系鏈”,騰訊和新浪的差別不大,所有第三方都可以獲得用戶(hù)的粉絲和好友列表。由于騰訊微博本身提供了“專(zhuān)聽(tīng)”功能,用戶(hù)的“專(zhuān)聽(tīng)列表”也可以通過(guò)其API獲取。
4、最后,在“可訪(fǎng)問(wèn)性”上,雙方提供了“好友推薦”和比較完善的搜索服務(wù)(搜索用戶(hù),搜索微博),但新浪目前支持獲取可能對Tag感興趣的用戶(hù)” ,該API為基于微博的推薦服務(wù)提供了有效的參考信息。
API 的數量和類(lèi)型是多樣性的一方面,另一方面是每個(gè) API 的功能。與騰訊相比,新浪的API功能更加豐富。以“獲取用戶(hù)微博”界面為例,新浪接受的參數如下:
請求參數
必填類(lèi)型和范圍說(shuō)明
sourcetruestring AppKey在申請應用時(shí)分配,代表應用在調用接口時(shí)的唯一標識。(OAuth授權不需要此參數)
:idfalseint64/string 根據用戶(hù)ID(int6<??@4)或微博昵稱(chēng)(字符串)返回指定用戶(hù)的最新微博消息列表。該參數為REST風(fēng)格參數,見(jiàn)注釋
user_idfalseint64 用戶(hù)ID,主要用于區分用戶(hù)ID和微博昵稱(chēng)。當微博昵稱(chēng)與用戶(hù)ID產(chǎn)生歧義時(shí),建議使用該參數,尤其是微博昵稱(chēng)與用戶(hù)ID相同時(shí)
screen_namefalsestring 微博昵稱(chēng),主要用于區分用戶(hù)UID和微博昵稱(chēng)。當兩者相同且有歧義時(shí),建議使用該參數
since_idfalseint64 如果指定該參數,則只返回ID大于since_id(即發(fā)布時(shí)間晚于since_id)的微博消息。
max_idfalseint64 如果指定該參數,則返回ID小于等于max_id的微博消息
countfalseint,默認值為20,最大值為200。指定每頁(yè)返回的記錄數。
pagefalseint,默認值為1。頁(yè)碼。注:最多可返回 200 條分頁(yè)內容。
如果id、user_id、screen_name這三個(gè)參數都沒(méi)有指定,則返回當前登錄用戶(hù)發(fā)布的微博消息列表。
base_appfalseint 是否根據當前應用獲取數據。1表示限制本應用的微博,0表示不限制。
featurefalseint 微博類(lèi)型,0 全部,1原創(chuàng ),2 圖片,3 視頻,4 音樂(lè )。返回指定類(lèi)型微博的信息內容。
相比之下,騰訊的界面更原創(chuàng ):
請求參數
必填類(lèi)型和范圍說(shuō)明
oauthtruestringoauth 標準參數
Formatfalsestring 返回結果的格式:xml 或 json
Pageflagfalseint 頁(yè)面標志,0 表示第一頁(yè),1 表示向下,2 表示向上
pagetimefalseint 本頁(yè)開(kāi)始時(shí)間,第一頁(yè)填0,繼續翻頁(yè):填上次請求返回的最后一條記錄的時(shí)間
Reqnumfalseint 每個(gè)請求的記錄數
LastIdfalseint64 第一頁(yè)填0,繼續向下翻頁(yè),填上上次請求返回的最后一條記錄的ID,用于翻頁(yè)
Nametruestring 需要讀取的用戶(hù)的用戶(hù)名
我們可以看到騰訊的界面只提供了翻頁(yè)功能,而新浪提供了微博過(guò)濾。不僅是“獲取微博”接口,新浪的大部分API都具備一定程度的信息過(guò)濾能力,而騰訊的大部分接口只提供基礎數據。作為第三方開(kāi)發(fā)者,API接口功能的豐富不僅簡(jiǎn)化了開(kāi)發(fā),也降低了部分應用超出API請求限制的風(fēng)險。
數據的完整性
數據完整性是指開(kāi)放平臺是否限制開(kāi)發(fā)者請求某些數據時(shí)返回的數據量。最能體現一個(gè)平臺的開(kāi)放性。遺憾的是,從這個(gè)意義上說(shuō),新浪和騰訊都沒(méi)有真正開(kāi)放。以用戶(hù)的“粉絲列表”為例,可以看出新浪、騰訊和推特的區別。Twitter是一個(gè)真正開(kāi)放的平臺,開(kāi)發(fā)者可以通過(guò)API獲取任何用戶(hù)的完整粉絲列表。雖然一個(gè)請求最多返回 100 個(gè)粉絲的詳細信息,但我們可以通過(guò)在 Twitter 上發(fā)送多個(gè)請求來(lái)獲得完整的粉絲列表。再看新浪,一般授權用戶(hù)最多只能獲取5000條最新的粉絲信息,但與推特相比,新浪每個(gè)請求最多可以返回200個(gè)粉絲。然而,新浪和推特還為開(kāi)發(fā)者提供了專(zhuān)門(mén)的“社交圖譜”界面,可以一次性獲取用戶(hù)5000粉絲的id。不過(guò),新浪仍將總粉絲數設定為5000人,推特也一如既往的開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。Twitter 仍然像往常一樣開(kāi)放。至于騰訊,其API文檔并沒(méi)有限制用戶(hù)粉絲數,但一個(gè)API請求最多只能獲取30個(gè)粉絲信息,并且沒(méi)有提供類(lèi)似“社交圖譜”的接口。在這種限制下,可以想象,騰訊微博平臺上擁有數十萬(wàn)粉絲的用戶(hù)很難構建“社交圖譜”。
請求限制
很多開(kāi)發(fā)者抱怨開(kāi)放平臺,最多的不是API函數的數量,而是各個(gè)平臺對API請求的限制。但是所有的開(kāi)放平臺(無(wú)論是twitter、linkedin還是facebook)都會(huì )在一定程度上限制他們的開(kāi)發(fā)者使用自己的資源。這與“開(kāi)放”策略無(wú)關(guān),更多是基于系統安全的考慮。因此,各個(gè)平臺的API限制策略基本相同。例如,新浪給普通授權開(kāi)發(fā)者每個(gè)ip每小時(shí)最多10000個(gè)API請求,每個(gè)用戶(hù)每小時(shí)150個(gè)請求。(騰訊和新浪的詳細訪(fǎng)問(wèn)權限請參見(jiàn):和,3)。真正的問(wèn)題不是平臺授予基本授權應用多少請求配額,但是當應用程序因配額而受到限制時(shí),這些平臺如何為應用程序解決這個(gè)問(wèn)題。只有為平臺設計一個(gè)公開(kāi)、公平的規則,才能真正消除開(kāi)發(fā)者對其開(kāi)放性的疑慮。
通過(guò)以上分析,我們可以清楚地看到,新浪是目前國內最接近推特的微博平臺(無(wú)論是規模還是開(kāi)放度),這次山寨也恰到好處。與推特相比,騰訊的微博是一個(gè)完全不同的產(chǎn)品。雖然收錄了騰訊自己對微博和開(kāi)放平臺的理解和規劃,但目前只適合支持基本的“用戶(hù)驅動(dòng)”應用。對于“數據驅動(dòng)”的復雜應用,平臺的接口暫時(shí)還遠遠不能滿(mǎn)足開(kāi)發(fā)者的需求。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 李開(kāi)復:如何充分利用微博促進(jìn)技術(shù)論壇的發(fā)展?(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 64 次瀏覽 ? 2021-12-10 15:08
李開(kāi)復:如何充分利用微博促進(jìn)技術(shù)論壇的發(fā)展?(組圖))
隨著(zhù)微博的快速發(fā)展和普及,它在很多領(lǐng)域的參與和滲透也越來(lái)越廣泛,正如李開(kāi)復在《微博改變一切》一書(shū)中所說(shuō)。我們可以從以下報道中了解微博的過(guò)去、現狀和未來(lái)發(fā)展趨勢。以下為引用內容:
上海交通大學(xué)輿情研究實(shí)驗室于2010年12月28日發(fā)布了《2010中國微博年度報告》,報告預測2013年前后中國微博用戶(hù)將出現爆發(fā)式增長(cháng),2013年市場(chǎng)將進(jìn)入成熟期截止2010年10月,中國微博服務(wù)訪(fǎng)問(wèn)量已達12521.70,000人次,累計活躍注冊用戶(hù)數已超過(guò)6500萬(wàn)。
報告作者、上海交通大學(xué)一、媒體經(jīng)濟與管理研究中心主任劉耕云指出,2010年被稱(chēng)為中國微博發(fā)展元年,出現了井噴式發(fā)展。的發(fā)展。他表示,微博“發(fā)展速度快,影響力大,逐漸體現了論壇和博客的替代趨勢”。
基于以上信息,我們不僅可以預見(jiàn)微博的快速發(fā)展,還可以了解微博、論壇和博客在一定時(shí)期內并存的情況。那么如何充分利用微博來(lái)推動(dòng)技術(shù)論壇的發(fā)展呢?筆者根據最近的實(shí)踐講一些經(jīng)驗,給大家鼓勵!
首先,微博和論壇要一致
1、 一致定位:
在定位微博之前,我們先看看能否回答以下兩個(gè)問(wèn)題:
?。?)為誰(shuí)寫(xiě)微博?主要是針對目標人群,讓他們成為忠實(shí)粉絲。
?。?)寫(xiě)微博的目的是什么?每個(gè)人的目標都是多種多樣的,有的為了記錄自己的生活,有的為了社交,有的為了學(xué)習知識和技術(shù),為了分享想法和經(jīng)驗,為了休閑娛樂(lè )等等
讓我們通過(guò)對李開(kāi)復的采訪(fǎng)來(lái)加深對以上兩點(diǎn)的理解:
以下為引用內容:
問(wèn):你為什么寫(xiě)微博?
李開(kāi)復:我寫(xiě)微博的目的是記錄我的想法和有趣的事實(shí)+積極影響社會(huì )和他人。
問(wèn):給孩子的建議,微博怎么用?
李開(kāi)復:1) 不要只用微博看八卦、社交和游戲。微博是一款非常好的學(xué)習工具,點(diǎn)擊“關(guān)注”即可添加老師。2)不要沉默,不要潛水。這是沉默的公眾發(fā)出聲音的絕佳機會(huì )。甚至“轉貼”也是群眾智慧的機制之一。3)學(xué)好寫(xiě)作,積極影響他人,是一件神圣的事情。
當以上兩個(gè)問(wèn)題有了明確的答案后,微博的定位也就順理成章了。
作者的論壇是關(guān)于軟件測試的。目標受眾是大多數軟件測試工作者和對軟件測試感興趣的人。目的是學(xué)習知識和技術(shù),分享實(shí)踐經(jīng)驗。為此,我將我的微博命名為“讓試飛”,寓意通過(guò)大家的努力,這個(gè)行業(yè)會(huì )飛速發(fā)展。至此,我有了明確的定位,確定我的微博話(huà)題是關(guān)于軟件測試領(lǐng)域的,讓更多的目標人群(粉絲)了解它,關(guān)注它,通過(guò)微博找到論壇,讓論壇和微博可以達到互補的效果,進(jìn)而推動(dòng)論壇更好的發(fā)展。
2、內容是一樣的:
微博是一種互動(dòng)傳播速度極快的工具,傳播速度甚至比媒體還要快。微博的特色在于“微”字。發(fā)布一條消息只需要一句話(huà)(140字)。有人稱(chēng)之為140字的奇跡。另一個(gè)最大的特點(diǎn)是集成和開(kāi)放。您可以通過(guò)手機、IM軟件(gtalk、MSN、QQ、Skype)和外部API接口向您的微博發(fā)布消息。由于其便捷性、隨意性、低門(mén)檻(普通人與莎士比亞一樣),用戶(hù)群呈現爆發(fā)式增長(cháng)。如果利用好微博的這些特點(diǎn),結合論壇和微博內容的一致性,將有助于目標人群吸引論壇,促進(jìn)論壇的快速發(fā)展。
3、目標群體必須一致:
作者的論壇主要是討論軟件測試技術(shù),需要微博關(guān)注的目標人群是軟件測試相關(guān)的博主。只有這樣,論壇的粘性才能增加,相互促進(jìn)。從下圖可以看出,粉絲是目標人群:
二、微博與論壇互通技術(shù)的實(shí)現
筆者近期對國內三大微博(新浪、騰訊、搜狐)進(jìn)行了仔細對比。通過(guò)自己的使用和大家的口碑,相信大眾,承認新浪在微博領(lǐng)域領(lǐng)先一步;康盛DZ論壇產(chǎn)品分享第一。; 針對這兩點(diǎn),本文將以新浪微博和DZX1.5為例進(jìn)行相關(guān)舉例。
由于新浪在其微博應用上采取了一系列強有力的措施,目前它正在突飛猛進(jìn)地發(fā)展。
2010年11月16日——由新浪公司主辦的中國首屆微博開(kāi)發(fā)者大會(huì )在北京召開(kāi)。作為微博行業(yè)的首場(chǎng)科技盛宴,本次大會(huì )引起了行業(yè)專(zhuān)家、草根網(wǎng)友,尤其是各類(lèi)第三方開(kāi)發(fā)者的普遍關(guān)注。
攜手五家頂級風(fēng)險投資人,2億只專(zhuān)注于微博應用開(kāi)發(fā)的基金,推出了中國微博開(kāi)發(fā)者創(chuàng )新基金,這是國內首只專(zhuān)注于微博應用開(kāi)發(fā)的基金。為方便基于新浪微博的第三方開(kāi)發(fā),新浪微博建立了開(kāi)發(fā)者專(zhuān)屬區——新浪微博開(kāi)放平臺,并提供了強有力的措施,采取與開(kāi)發(fā)者3:7的分享。
近日,微博新域名()上線(xiàn),是計劃中的兩個(gè)域名之一。
這些都表明,新浪正在以開(kāi)放的理念在微博應用中構建一個(gè)龐大而良性的微博生態(tài)系統。
筆者在這里介紹的時(shí)候,感興趣的讀者可能已經(jīng)猜到了微博和論壇之間是否已經(jīng)有了連接工具?沒(méi)錯,就是XweiboforDiscuz!X1.5V1.1插件。為了節省空間,安裝過(guò)程等請參考官方網(wǎng)站。
為了讓讀者能夠閱讀本文,真正將其應用到自己的論壇中,達到標題中的目標,筆者將在論壇中詳細介紹一下新浪微博的使用說(shuō)明。
一、綁定微博賬號
登錄本論壇后,如果您還沒(méi)有綁定新浪微博,會(huì )出現下圖“綁定微博賬號”紅色按鈕(綁定后不會(huì )再出現)。
點(diǎn)擊這個(gè)紅色按鈕,會(huì )出現如下界面:
如果您已經(jīng)有新浪微博賬號,只需點(diǎn)擊“綁定新浪微博”按鈕;否則,點(diǎn)擊“注冊新浪微博”,您將進(jìn)入新浪微博注冊頁(yè)面,只需輸入您的電子郵件地址并創(chuàng )建密碼和驗證碼,大約一分鐘即可完成注冊。
按照以上步驟,點(diǎn)擊“綁定新浪微博”按鈕,彈出如下界面:
輸入賬號和密碼后,點(diǎn)擊“授權”按鈕,出現新浪微博設置頁(yè)面:
在這里您可以選擇需要與新浪微博同步的社區中的哪些。一共五個(gè)項目:發(fā)帖、記錄、日志、分享和傳送門(mén)文章。勾選的選項在發(fā)布時(shí)會(huì )提示是否同步到新浪微博(下面會(huì )涉及到)。
設置好后,點(diǎn)擊“保存設置”,出現一個(gè)很酷的提示,如下圖:
行!綁定完成。下面我們詳細說(shuō)一下操作。
二、如何使用
為了節省篇幅,以下僅以發(fā)布話(huà)題同步到新浪微博為例。其他的比如同步發(fā)布日志(記錄、分享)到新浪微博也類(lèi)似。
如果你想讓更多人分享你發(fā)布的話(huà)題,你可以考慮轉發(fā)到新浪微博。這很容易做到。請看下圖,勾選“同時(shí)發(fā)布到新浪微博”即可。
也可以轉發(fā)之前發(fā)表的話(huà)題,點(diǎn)擊最后一個(gè)“轉發(fā)”按鈕即可,如下圖:
轉發(fā)到新浪微博后的效果圖:
如果您想查看論壇中的原文,只需點(diǎn)擊上方紅框中的超鏈接即可。
最后,需要說(shuō)明的是圖底部的“來(lái)自天天軟件測試社區”。如果審核失敗,將顯示為“來(lái)自失敗的審核申請”。關(guān)于如何申請新浪微博Appkey,可以通過(guò)官方開(kāi)放平臺了解。網(wǎng)上有很多相關(guān)的文章。
最后說(shuō)說(shuō)如何經(jīng)營(yíng)自己的微博
微博的定位、內容和目標人群我已經(jīng)講過(guò)了?,F在我們來(lái)談?wù)劰芾硭鼈兊拇胧┖头椒?。只有做好微博,才能達到推動(dòng)社區快速發(fā)展的目標。
一要完善微博信息。包括:昵稱(chēng)設置要與網(wǎng)站的名字一致或密切相關(guān),網(wǎng)站的個(gè)人資料可以寫(xiě)在個(gè)人信息中,標簽應該寫(xiě)網(wǎng)站關(guān)鍵詞 等等。如果條件允許,還可以申請實(shí)名認證,增加一定的權限。
其次,在不偏離內容定位的前提下,堅持每天在線(xiàn)人數高峰期定期更新信息,熱情回復和解決粉絲提出的問(wèn)題;追求文字簡(jiǎn)潔,附圖片,帶#topics#,利于搜索;在社區開(kāi)展“轉發(fā)微博打賞”等活動(dòng),將更多的精華內容推送到微博;適當轉發(fā)行業(yè)或名人微博,讓專(zhuān)家的聲音能傳播得更廣更遠。
以上只是筆者使用的部分措施和方法。你可以在網(wǎng)上找到更多相關(guān)的話(huà)題,然后根據自己的網(wǎng)站做出合理的選擇。
先總結一下,不管我怎么努力讓閱讀這篇文章的讀者文章都能善用微博和論壇,我還是覺(jué)得自己做不到。比如文章中提到的微博插件(XweiboforDiscuz!X1.5V1.1,截至發(fā)稿已升級為2.0beta),不同的人可能會(huì )遇到不同的問(wèn)題,如按鈕錯位、與其他插件沖突、插件本身的bug等,本文無(wú)法解釋清楚。因此,正確的應該是一個(gè)好的開(kāi)始。如果能幫到你,就是我的追求!歡迎發(fā)表您的意見(jiàn)和批評!
歡迎轉載,轉載請注明第一個(gè)網(wǎng)址:本文來(lái)自:天天軟件測試社區(),詳細文章參考: 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
李開(kāi)復:如何充分利用微博促進(jìn)技術(shù)論壇的發(fā)展?(組圖))

隨著(zhù)微博的快速發(fā)展和普及,它在很多領(lǐng)域的參與和滲透也越來(lái)越廣泛,正如李開(kāi)復在《微博改變一切》一書(shū)中所說(shuō)。我們可以從以下報道中了解微博的過(guò)去、現狀和未來(lái)發(fā)展趨勢。以下為引用內容:
上海交通大學(xué)輿情研究實(shí)驗室于2010年12月28日發(fā)布了《2010中國微博年度報告》,報告預測2013年前后中國微博用戶(hù)將出現爆發(fā)式增長(cháng),2013年市場(chǎng)將進(jìn)入成熟期截止2010年10月,中國微博服務(wù)訪(fǎng)問(wèn)量已達12521.70,000人次,累計活躍注冊用戶(hù)數已超過(guò)6500萬(wàn)。
報告作者、上海交通大學(xué)一、媒體經(jīng)濟與管理研究中心主任劉耕云指出,2010年被稱(chēng)為中國微博發(fā)展元年,出現了井噴式發(fā)展。的發(fā)展。他表示,微博“發(fā)展速度快,影響力大,逐漸體現了論壇和博客的替代趨勢”。
基于以上信息,我們不僅可以預見(jiàn)微博的快速發(fā)展,還可以了解微博、論壇和博客在一定時(shí)期內并存的情況。那么如何充分利用微博來(lái)推動(dòng)技術(shù)論壇的發(fā)展呢?筆者根據最近的實(shí)踐講一些經(jīng)驗,給大家鼓勵!
首先,微博和論壇要一致
1、 一致定位:
在定位微博之前,我們先看看能否回答以下兩個(gè)問(wèn)題:
?。?)為誰(shuí)寫(xiě)微博?主要是針對目標人群,讓他們成為忠實(shí)粉絲。
?。?)寫(xiě)微博的目的是什么?每個(gè)人的目標都是多種多樣的,有的為了記錄自己的生活,有的為了社交,有的為了學(xué)習知識和技術(shù),為了分享想法和經(jīng)驗,為了休閑娛樂(lè )等等
讓我們通過(guò)對李開(kāi)復的采訪(fǎng)來(lái)加深對以上兩點(diǎn)的理解:
以下為引用內容:
問(wèn):你為什么寫(xiě)微博?
李開(kāi)復:我寫(xiě)微博的目的是記錄我的想法和有趣的事實(shí)+積極影響社會(huì )和他人。
問(wèn):給孩子的建議,微博怎么用?
李開(kāi)復:1) 不要只用微博看八卦、社交和游戲。微博是一款非常好的學(xué)習工具,點(diǎn)擊“關(guān)注”即可添加老師。2)不要沉默,不要潛水。這是沉默的公眾發(fā)出聲音的絕佳機會(huì )。甚至“轉貼”也是群眾智慧的機制之一。3)學(xué)好寫(xiě)作,積極影響他人,是一件神圣的事情。
當以上兩個(gè)問(wèn)題有了明確的答案后,微博的定位也就順理成章了。
作者的論壇是關(guān)于軟件測試的。目標受眾是大多數軟件測試工作者和對軟件測試感興趣的人。目的是學(xué)習知識和技術(shù),分享實(shí)踐經(jīng)驗。為此,我將我的微博命名為“讓試飛”,寓意通過(guò)大家的努力,這個(gè)行業(yè)會(huì )飛速發(fā)展。至此,我有了明確的定位,確定我的微博話(huà)題是關(guān)于軟件測試領(lǐng)域的,讓更多的目標人群(粉絲)了解它,關(guān)注它,通過(guò)微博找到論壇,讓論壇和微博可以達到互補的效果,進(jìn)而推動(dòng)論壇更好的發(fā)展。
2、內容是一樣的:
微博是一種互動(dòng)傳播速度極快的工具,傳播速度甚至比媒體還要快。微博的特色在于“微”字。發(fā)布一條消息只需要一句話(huà)(140字)。有人稱(chēng)之為140字的奇跡。另一個(gè)最大的特點(diǎn)是集成和開(kāi)放。您可以通過(guò)手機、IM軟件(gtalk、MSN、QQ、Skype)和外部API接口向您的微博發(fā)布消息。由于其便捷性、隨意性、低門(mén)檻(普通人與莎士比亞一樣),用戶(hù)群呈現爆發(fā)式增長(cháng)。如果利用好微博的這些特點(diǎn),結合論壇和微博內容的一致性,將有助于目標人群吸引論壇,促進(jìn)論壇的快速發(fā)展。
3、目標群體必須一致:
作者的論壇主要是討論軟件測試技術(shù),需要微博關(guān)注的目標人群是軟件測試相關(guān)的博主。只有這樣,論壇的粘性才能增加,相互促進(jìn)。從下圖可以看出,粉絲是目標人群:

二、微博與論壇互通技術(shù)的實(shí)現
筆者近期對國內三大微博(新浪、騰訊、搜狐)進(jìn)行了仔細對比。通過(guò)自己的使用和大家的口碑,相信大眾,承認新浪在微博領(lǐng)域領(lǐng)先一步;康盛DZ論壇產(chǎn)品分享第一。; 針對這兩點(diǎn),本文將以新浪微博和DZX1.5為例進(jìn)行相關(guān)舉例。
由于新浪在其微博應用上采取了一系列強有力的措施,目前它正在突飛猛進(jìn)地發(fā)展。
2010年11月16日——由新浪公司主辦的中國首屆微博開(kāi)發(fā)者大會(huì )在北京召開(kāi)。作為微博行業(yè)的首場(chǎng)科技盛宴,本次大會(huì )引起了行業(yè)專(zhuān)家、草根網(wǎng)友,尤其是各類(lèi)第三方開(kāi)發(fā)者的普遍關(guān)注。
攜手五家頂級風(fēng)險投資人,2億只專(zhuān)注于微博應用開(kāi)發(fā)的基金,推出了中國微博開(kāi)發(fā)者創(chuàng )新基金,這是國內首只專(zhuān)注于微博應用開(kāi)發(fā)的基金。為方便基于新浪微博的第三方開(kāi)發(fā),新浪微博建立了開(kāi)發(fā)者專(zhuān)屬區——新浪微博開(kāi)放平臺,并提供了強有力的措施,采取與開(kāi)發(fā)者3:7的分享。
近日,微博新域名()上線(xiàn),是計劃中的兩個(gè)域名之一。
這些都表明,新浪正在以開(kāi)放的理念在微博應用中構建一個(gè)龐大而良性的微博生態(tài)系統。
筆者在這里介紹的時(shí)候,感興趣的讀者可能已經(jīng)猜到了微博和論壇之間是否已經(jīng)有了連接工具?沒(méi)錯,就是XweiboforDiscuz!X1.5V1.1插件。為了節省空間,安裝過(guò)程等請參考官方網(wǎng)站。
為了讓讀者能夠閱讀本文,真正將其應用到自己的論壇中,達到標題中的目標,筆者將在論壇中詳細介紹一下新浪微博的使用說(shuō)明。
一、綁定微博賬號
登錄本論壇后,如果您還沒(méi)有綁定新浪微博,會(huì )出現下圖“綁定微博賬號”紅色按鈕(綁定后不會(huì )再出現)。

點(diǎn)擊這個(gè)紅色按鈕,會(huì )出現如下界面:

如果您已經(jīng)有新浪微博賬號,只需點(diǎn)擊“綁定新浪微博”按鈕;否則,點(diǎn)擊“注冊新浪微博”,您將進(jìn)入新浪微博注冊頁(yè)面,只需輸入您的電子郵件地址并創(chuàng )建密碼和驗證碼,大約一分鐘即可完成注冊。
按照以上步驟,點(diǎn)擊“綁定新浪微博”按鈕,彈出如下界面:

輸入賬號和密碼后,點(diǎn)擊“授權”按鈕,出現新浪微博設置頁(yè)面:

在這里您可以選擇需要與新浪微博同步的社區中的哪些。一共五個(gè)項目:發(fā)帖、記錄、日志、分享和傳送門(mén)文章。勾選的選項在發(fā)布時(shí)會(huì )提示是否同步到新浪微博(下面會(huì )涉及到)。
設置好后,點(diǎn)擊“保存設置”,出現一個(gè)很酷的提示,如下圖:

行!綁定完成。下面我們詳細說(shuō)一下操作。
二、如何使用
為了節省篇幅,以下僅以發(fā)布話(huà)題同步到新浪微博為例。其他的比如同步發(fā)布日志(記錄、分享)到新浪微博也類(lèi)似。
如果你想讓更多人分享你發(fā)布的話(huà)題,你可以考慮轉發(fā)到新浪微博。這很容易做到。請看下圖,勾選“同時(shí)發(fā)布到新浪微博”即可。

也可以轉發(fā)之前發(fā)表的話(huà)題,點(diǎn)擊最后一個(gè)“轉發(fā)”按鈕即可,如下圖:

轉發(fā)到新浪微博后的效果圖:

如果您想查看論壇中的原文,只需點(diǎn)擊上方紅框中的超鏈接即可。
最后,需要說(shuō)明的是圖底部的“來(lái)自天天軟件測試社區”。如果審核失敗,將顯示為“來(lái)自失敗的審核申請”。關(guān)于如何申請新浪微博Appkey,可以通過(guò)官方開(kāi)放平臺了解。網(wǎng)上有很多相關(guān)的文章。
最后說(shuō)說(shuō)如何經(jīng)營(yíng)自己的微博
微博的定位、內容和目標人群我已經(jīng)講過(guò)了?,F在我們來(lái)談?wù)劰芾硭鼈兊拇胧┖头椒?。只有做好微博,才能達到推動(dòng)社區快速發(fā)展的目標。
一要完善微博信息。包括:昵稱(chēng)設置要與網(wǎng)站的名字一致或密切相關(guān),網(wǎng)站的個(gè)人資料可以寫(xiě)在個(gè)人信息中,標簽應該寫(xiě)網(wǎng)站關(guān)鍵詞 等等。如果條件允許,還可以申請實(shí)名認證,增加一定的權限。
其次,在不偏離內容定位的前提下,堅持每天在線(xiàn)人數高峰期定期更新信息,熱情回復和解決粉絲提出的問(wèn)題;追求文字簡(jiǎn)潔,附圖片,帶#topics#,利于搜索;在社區開(kāi)展“轉發(fā)微博打賞”等活動(dòng),將更多的精華內容推送到微博;適當轉發(fā)行業(yè)或名人微博,讓專(zhuān)家的聲音能傳播得更廣更遠。
以上只是筆者使用的部分措施和方法。你可以在網(wǎng)上找到更多相關(guān)的話(huà)題,然后根據自己的網(wǎng)站做出合理的選擇。
先總結一下,不管我怎么努力讓閱讀這篇文章的讀者文章都能善用微博和論壇,我還是覺(jué)得自己做不到。比如文章中提到的微博插件(XweiboforDiscuz!X1.5V1.1,截至發(fā)稿已升級為2.0beta),不同的人可能會(huì )遇到不同的問(wèn)題,如按鈕錯位、與其他插件沖突、插件本身的bug等,本文無(wú)法解釋清楚。因此,正確的應該是一個(gè)好的開(kāi)始。如果能幫到你,就是我的追求!歡迎發(fā)表您的意見(jiàn)和批評!
歡迎轉載,轉載請注明第一個(gè)網(wǎng)址:本文來(lái)自:天天軟件測試社區(),詳細文章參考:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(試試用python調用微博API的SDK授權所必須的 )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 53 次瀏覽 ? 2021-12-10 10:13
)
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的app,然后你就可以得到app key和app secret,這些是app獲得OAuth2.0授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret外,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
重試.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff 0:
if rv == True or type(rv) == str: # Done on success ..
return rv
mtries -= 1 # consume an attempt
time.sleep(mdelay) # wait...
mdelay *= backoff # make future wait longer
rv = f(*args, **kwargs) # Try again
return False # Ran out of tries :-(
return f_retry # true decorator -> decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(試試用python調用微博API的SDK授權所必須的
)
因為最近接觸到調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
如果你有微博賬號,你可以創(chuàng )建一個(gè)新的app,然后你就可以得到app key和app secret,這些是app獲得OAuth2.0授權所必需的。
要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。除了app key和app secret外,OAuth2授權參數還需要網(wǎng)站回調地址redirect_uri,這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.< @0.0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')


重試.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff 0:
if rv == True or type(rv) == str: # Done on success ..
return rv
mtries -= 1 # consume an attempt
time.sleep(mdelay) # wait...
mdelay *= backoff # make future wait longer
rv = f(*args, **kwargs) # Try again
return False # Ran out of tries :-(
return f_retry # true decorator -> decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator


使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博SDK及示例工程目錄結構及分析SDK(圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 56 次瀏覽 ? 2021-12-09 20:03
登出API
用于收回用戶(hù)的授權。
邀請API
提供好友邀請功能,支持登錄用戶(hù)向微博好友發(fā)送私信邀請和禮物。
注:目前我們只提供部分接口。主要原因是API太大。測試每個(gè) API 也是一項非常耗時(shí)的任務(wù)。因此,我們在使用時(shí)優(yōu)先開(kāi)放第三方最關(guān)心的少數幾個(gè)API(如上表所示),其他API繼續放在com.sina.weibo.sdk.openapi.legacy下。其實(shí)這些API我們并沒(méi)有全部發(fā)布,也希望第三方開(kāi)發(fā)者可以和我們一起維護這些API,并將修改后的代碼推送到Github。
另外,網(wǎng)絡(luò )模塊重構了一個(gè)簡(jiǎn)單易用的框架,第三方開(kāi)發(fā)者可以通過(guò)Http請求直接調用OpenAPI接口,見(jiàn):。
API 文檔
運行示例代碼
為了方便第三方應用更快地集成微博SDK,更清晰地了解當前微博SDK提供的功能,我們在GitHub上提供了一個(gè)簡(jiǎn)單的示例工程和相應的APK安裝包。
方法一:直接通過(guò)adb install命令安裝WeiboSDKDemo.apk
方法二:在Eclipse中導入并運行WeiboSDKDemo工程(詳見(jiàn)微博Android平臺SDK文檔3.1.1.pdf:運行示例代碼)
注意:通過(guò)第二種方式運行項目時(shí),一定要替換默認的debug.keystore文件,否則授權不會(huì )成功。另外,debug.keysotre 是新浪官方的。除編譯運行官方DEMO外,請勿直接使用。出于安全原因,您應該為您的應用程序提供一個(gè)密鑰。
在 C:\Users\XXXXX\.android 目錄中,將 Android 默認的 debug.keystore 替換為 GitHub 上提供的官方 debug.keystore。
微博SDK和DEMO項目目錄結構及分析
微博SDK目前以部分開(kāi)源的形式提供給第三方開(kāi)發(fā)者。簡(jiǎn)而言之,可以分為以下三個(gè)部分:
集成前準備1. 申請應用的APP_KEY
這一步需要在微博開(kāi)放平臺注冊您的應用,獲取APP_KEY,并添加應用的授權回調頁(yè)面(Redirect URI)。詳情請仔細閱讀:手機客戶(hù)端訪(fǎng)問(wèn)()
2. 注冊應用的包名和簽名
您需要在微博開(kāi)放平臺注冊應用的包名和簽名,才能正確進(jìn)行授權。
請注意:未注冊包名及簽名,或簽名注冊不正確將導致授權失敗。
應用包名:指AndroidManifest.xml文件中包標簽所代表的內容。
應用簽名:簽名是官方簽名工具生成的MD5值。
詳情請看:微博Android平臺SDK文檔V3.1.1.pdf:如何使用簽名工具獲取你的應用簽名?
3. 選擇你想要的集成方式
在集成微博 SDK 之前,您有兩種可選的方式來(lái)集成微博 SDK:
詳情請看:微博Android平臺SDK文檔3.1.1.pdf 中:選擇你要集成的方式
4. 在你的應用中添加SDK需要的權限
5. 在你的應用中注冊SDK需要的Activity和Service
第三方如何使用(認證和授權)1.,替換為自己應用的APP_KEY等參數
鑒于很多第三方開(kāi)發(fā)者直接復制使用Demo中的Constants類(lèi),需要說(shuō)明的是,第三方開(kāi)發(fā)者需要將Constants類(lèi)中的各種參數替換為自己的應用參數。請仔細閱讀代碼注釋。
public interface Constants {
/** 當前 DEMO 應用的 APP_KEY,第三方應用應該使用自己的 APP_KEY 替換該 APP_KEY */
public static final String APP_KEY = "2045436852";
/**
* 當前 DEMO 應用的回調頁(yè),第三方應用可以使用自己的回調頁(yè)。
* 建議使用默認回調頁(yè):https://api.weibo.com/oauth2/default.html
*/
public static final String REDIRECT_URL = "http://www.sina.com";
/**
* WeiboSDKDemo 應用對應的權限,第三方開(kāi)發(fā)者一般不需要這么多,可直接設置成空即可。
* 詳情請查看 Demo 中對應的注釋。
*/
public static final String SCOPE =
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}
2. 創(chuàng )建微博API接口類(lèi)對象
mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
其中:APP_KEY、REDIRECT_URL、SCOPE需要替換為第三方應用申請的內容。
3. 實(shí)現 WeiboAuthListener 接口
class AuthListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
// 從 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// 保存 Token 到 SharedPreferences
AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken);
.........
} else {
// 當您注冊的應用程序簽名不正確時(shí),就會(huì )收到 Code,請確保簽名正確
String code = values.getString("code", "");
.........
}
}
@Override
public void onCancel() {
}
@Override
public void onWeiboException(WeiboException e) {
}
}
4. 調用方法、認證和授權
以上三個(gè)授權需要在A(yíng)ctivity的onActivityResult函數中調用以下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
網(wǎng)絡(luò )請求框架的使用
在V2.5.0以后的版本中,我們重構了網(wǎng)絡(luò )模塊,提供了同步和異步網(wǎng)絡(luò )請求接口。
異步接口:AsyncWeiboRunner#requestAsync(String, WeiboParameters, String, RequestListener)
同步接口:AsyncWeiboRunner#request(String, WeiboParameters, String)
其中,同步接口用于開(kāi)發(fā)者有自己的異步請求機制。
示例:使用異步接口發(fā)送帶有圖片的微博
// 1. 獲取要發(fā)送的圖片
Drawable drawable = getResources().getDrawable(R.drawable.ic_com_sina_weibo_sdk_logo);
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// 2. 調用接口發(fā)送微博
WeiboParameters params = new WeiboParameters();
params.put("access_token", mAccessToken.getToken());
params.put("status", "通過(guò)API發(fā)送微博-upload");
params.put("visible", "0");
params.put("list_id", "");
params.put("pic", bitmap);
params.put("lat", "14.5");
params.put("long", "23.0");
params.put("annotations", "");
AsyncWeiboRunner.requestAsync(
"https://api.weibo.com/2/statuses/upload.json",
params,
"POST",
mListener);
以上代碼中,請開(kāi)發(fā)者自行補充mAccessToken和mListener
其他功能
其他功能請參考文檔:微博Android平臺SDK文檔V3.1.1.pdf 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博SDK及示例工程目錄結構及分析SDK(圖))
登出API
用于收回用戶(hù)的授權。
邀請API
提供好友邀請功能,支持登錄用戶(hù)向微博好友發(fā)送私信邀請和禮物。
注:目前我們只提供部分接口。主要原因是API太大。測試每個(gè) API 也是一項非常耗時(shí)的任務(wù)。因此,我們在使用時(shí)優(yōu)先開(kāi)放第三方最關(guān)心的少數幾個(gè)API(如上表所示),其他API繼續放在com.sina.weibo.sdk.openapi.legacy下。其實(shí)這些API我們并沒(méi)有全部發(fā)布,也希望第三方開(kāi)發(fā)者可以和我們一起維護這些API,并將修改后的代碼推送到Github。
另外,網(wǎng)絡(luò )模塊重構了一個(gè)簡(jiǎn)單易用的框架,第三方開(kāi)發(fā)者可以通過(guò)Http請求直接調用OpenAPI接口,見(jiàn):。
API 文檔
運行示例代碼
為了方便第三方應用更快地集成微博SDK,更清晰地了解當前微博SDK提供的功能,我們在GitHub上提供了一個(gè)簡(jiǎn)單的示例工程和相應的APK安裝包。
方法一:直接通過(guò)adb install命令安裝WeiboSDKDemo.apk
方法二:在Eclipse中導入并運行WeiboSDKDemo工程(詳見(jiàn)微博Android平臺SDK文檔3.1.1.pdf:運行示例代碼)
注意:通過(guò)第二種方式運行項目時(shí),一定要替換默認的debug.keystore文件,否則授權不會(huì )成功。另外,debug.keysotre 是新浪官方的。除編譯運行官方DEMO外,請勿直接使用。出于安全原因,您應該為您的應用程序提供一個(gè)密鑰。
在 C:\Users\XXXXX\.android 目錄中,將 Android 默認的 debug.keystore 替換為 GitHub 上提供的官方 debug.keystore。
微博SDK和DEMO項目目錄結構及分析
微博SDK目前以部分開(kāi)源的形式提供給第三方開(kāi)發(fā)者。簡(jiǎn)而言之,可以分為以下三個(gè)部分:
集成前準備1. 申請應用的APP_KEY
這一步需要在微博開(kāi)放平臺注冊您的應用,獲取APP_KEY,并添加應用的授權回調頁(yè)面(Redirect URI)。詳情請仔細閱讀:手機客戶(hù)端訪(fǎng)問(wèn)()
2. 注冊應用的包名和簽名
您需要在微博開(kāi)放平臺注冊應用的包名和簽名,才能正確進(jìn)行授權。
請注意:未注冊包名及簽名,或簽名注冊不正確將導致授權失敗。
應用包名:指AndroidManifest.xml文件中包標簽所代表的內容。
應用簽名:簽名是官方簽名工具生成的MD5值。
詳情請看:微博Android平臺SDK文檔V3.1.1.pdf:如何使用簽名工具獲取你的應用簽名?
3. 選擇你想要的集成方式
在集成微博 SDK 之前,您有兩種可選的方式來(lái)集成微博 SDK:
詳情請看:微博Android平臺SDK文檔3.1.1.pdf 中:選擇你要集成的方式
4. 在你的應用中添加SDK需要的權限
5. 在你的應用中注冊SDK需要的Activity和Service
第三方如何使用(認證和授權)1.,替換為自己應用的APP_KEY等參數
鑒于很多第三方開(kāi)發(fā)者直接復制使用Demo中的Constants類(lèi),需要說(shuō)明的是,第三方開(kāi)發(fā)者需要將Constants類(lèi)中的各種參數替換為自己的應用參數。請仔細閱讀代碼注釋。
public interface Constants {
/** 當前 DEMO 應用的 APP_KEY,第三方應用應該使用自己的 APP_KEY 替換該 APP_KEY */
public static final String APP_KEY = "2045436852";
/**
* 當前 DEMO 應用的回調頁(yè),第三方應用可以使用自己的回調頁(yè)。
* 建議使用默認回調頁(yè):https://api.weibo.com/oauth2/default.html
*/
public static final String REDIRECT_URL = "http://www.sina.com";
/**
* WeiboSDKDemo 應用對應的權限,第三方開(kāi)發(fā)者一般不需要這么多,可直接設置成空即可。
* 詳情請查看 Demo 中對應的注釋。
*/
public static final String SCOPE =
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}
2. 創(chuàng )建微博API接口類(lèi)對象
mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
其中:APP_KEY、REDIRECT_URL、SCOPE需要替換為第三方應用申請的內容。
3. 實(shí)現 WeiboAuthListener 接口
class AuthListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
// 從 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// 保存 Token 到 SharedPreferences
AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken);
.........
} else {
// 當您注冊的應用程序簽名不正確時(shí),就會(huì )收到 Code,請確保簽名正確
String code = values.getString("code", "");
.........
}
}
@Override
public void onCancel() {
}
@Override
public void onWeiboException(WeiboException e) {
}
}
4. 調用方法、認證和授權
以上三個(gè)授權需要在A(yíng)ctivity的onActivityResult函數中調用以下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
網(wǎng)絡(luò )請求框架的使用
在V2.5.0以后的版本中,我們重構了網(wǎng)絡(luò )模塊,提供了同步和異步網(wǎng)絡(luò )請求接口。
異步接口:AsyncWeiboRunner#requestAsync(String, WeiboParameters, String, RequestListener)
同步接口:AsyncWeiboRunner#request(String, WeiboParameters, String)
其中,同步接口用于開(kāi)發(fā)者有自己的異步請求機制。
示例:使用異步接口發(fā)送帶有圖片的微博
// 1. 獲取要發(fā)送的圖片
Drawable drawable = getResources().getDrawable(R.drawable.ic_com_sina_weibo_sdk_logo);
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
// 2. 調用接口發(fā)送微博
WeiboParameters params = new WeiboParameters();
params.put("access_token", mAccessToken.getToken());
params.put("status", "通過(guò)API發(fā)送微博-upload");
params.put("visible", "0");
params.put("list_id", "");
params.put("pic", bitmap);
params.put("lat", "14.5");
params.put("long", "23.0");
params.put("annotations", "");
AsyncWeiboRunner.requestAsync(
"https://api.weibo.com/2/statuses/upload.json",
params,
"POST",
mListener);
以上代碼中,請開(kāi)發(fā)者自行補充mAccessToken和mListener
其他功能
其他功能請參考文檔:微博Android平臺SDK文檔V3.1.1.pdf
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用python調用微博API的授權機制是什么?如何使用)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 50 次瀏覽 ? 2021-12-09 00:04
不用稻草做磚。
數據采集??是數據分析的前提。許多網(wǎng)站會(huì )通過(guò)API接口向第三方開(kāi)放網(wǎng)站的部分數據。新浪微博也不例外。您可以查看微博API列表。
本文將初步介紹如何使用微博API獲取基本概念和理解,方便后面深入理解。
step1:使用python調用微博API,首先下載python SDK,即sinaweibopy
Sinaweibopy是一款Python專(zhuān)用的OAuth 2客戶(hù)端,支持微博API,無(wú)依賴(lài),100%純Py,單文件,代碼簡(jiǎn)單,運行可靠,也是新浪微博的Python SDK。
可以直接通過(guò)pip安裝:
pip install sinaweibopy
什么是SDK?SDK的英文全稱(chēng)是軟件開(kāi)發(fā)工具包(software development kit)。簡(jiǎn)而言之,它是一個(gè)代碼庫,其中收錄用于開(kāi)發(fā)應用程序的可重用代碼。為應用編寫(xiě)代碼時(shí),無(wú)需重復編寫(xiě)在實(shí)際屏幕上繪制文本等代碼。SDK 可以幫助您做到這一點(diǎn)。簡(jiǎn)而言之,所有這些代碼庫和一些其他工具構成了我們所說(shuō)的 SDK。
step2:了解新浪微博的授權機制,即OAuth 2
API 調用需要獲取用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權過(guò)程請參考如下流程圖,其中Client指的是第三方應用(也就是我們自己在第三步創(chuàng )建的應用),Resource Owner指的是一個(gè)user,Authorization Server 是我們的授權 Server,Resource Server 是一個(gè) API server。
從流程圖中可以看出,為了調用API服務(wù)器內容,需要將訪(fǎng)問(wèn)令牌告知API服務(wù)器;用戶(hù)獲得授權后,將訪(fǎng)問(wèn)令牌返回給新浪(授權服務(wù)器)創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們應用程序首先要給用戶(hù)授權頁(yè)面(授權請求)。
微博API的授權機制(來(lái)自微博開(kāi)放平臺開(kāi)發(fā)文檔)
用戶(hù)授權后,瀏覽器的URL如下所示:
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)得到用戶(hù)的授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,從API服務(wù)器獲取微博數據。
了解了上面的機制后,我們就知道如何編寫(xiě)代碼來(lái)調用API了。
step3:在微博開(kāi)放平臺上創(chuàng )建自己的應用
現在讓我們創(chuàng )建我們自己的應用程序。創(chuàng )建應用程序的目的是獲取應用程序密鑰和應用程序機密。
我們通過(guò)微連接創(chuàng )建移動(dòng)應用程序。您還可以創(chuàng )建其他類(lèi)型的應用程序。創(chuàng )建應用程序后,將分配唯一的應用程序密鑰和應用程序機密。您可以在“我的申請-申請信息-基本信息”中查看,用于授權。注意:無(wú)需提交審核,只需提供應用密鑰和應用密鑰即可。
如果是異地web應用或者手機客戶(hù)端應用,出于安全考慮,需要填寫(xiě)平臺的redirect_url(授權回調頁(yè)面)網(wǎng)站使用OAuth2.0。填寫(xiě)地址為“我的申請>申請信息>高級信息”。這里,我們將授權回調頁(yè)面和取消授權回調頁(yè)面都設置為默認回調頁(yè)面:
我的申請-申請信息-高級信息
step4:python代碼實(shí)現
首先,導入所需的模塊:
from weibo import APIClient
import webbrowser #python內置的包,支持對瀏覽器進(jìn)行操作
使用微博 SDK 創(chuàng )建我們的應用程序:
APP_KEY = '123456'
APP_SECRET = 'abc123xyz456'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' #回調授權頁(yè)面,用戶(hù)完成授權后返回的頁(yè)面
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
授權頁(yè)面的url(%3A//oauth2/default.html&response_type=code&client_id=729983294)。用webbrowser打開(kāi)這個(gè)url,會(huì )喚醒瀏覽器打開(kāi)
url=client.get_authorize_url() #得到授權頁(yè)面的url
webbrowser.open_new(url) #打開(kāi)這個(gè)url
打開(kāi)授權頁(yè)面的url
用戶(hù)完成授權后,URL 如下所示:。我們需要code=后面的內容。
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
使用代碼獲取訪(fǎng)問(wèn)令牌:
r = client.request_access_token(code)
access_token = r.access_token # 新浪(授權服務(wù)器)返回的token
expires_in = r.expires_in
您可以打印 r 以查看里面的內容:
print(r)
{'access_token': u'abcqwe123', 'expires': 1662109746, 'expires_in': 1662109746, 'uid': u'2164581421'}
設置access_token后,可以直接調用API:
client.set_access_token(access_token, expires_in)
輸出最新的公眾微博:
print(client.statuses__public_timeline)
返回的具體內容可以在微博API文檔中找到。
例如,我們可以輸出用戶(hù)的昵稱(chēng)、個(gè)人資料、位置和微博:
for i in range(0,length):
print(u'昵稱(chēng):'+statuses[i]['user']['screen_name'])
print(u'簡(jiǎn)介:'+statuses[i]['user']['description'])
print(u'位置:'+statuses[i]['user']['location'])
print(u'微博:'+statuses[i]['text'])
最新公開(kāi)微博
參考資料:
Python調用微博API
如何通過(guò)python調用新浪微博的API 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用python調用微博API的授權機制是什么?如何使用)
不用稻草做磚。
數據采集??是數據分析的前提。許多網(wǎng)站會(huì )通過(guò)API接口向第三方開(kāi)放網(wǎng)站的部分數據。新浪微博也不例外。您可以查看微博API列表。
本文將初步介紹如何使用微博API獲取基本概念和理解,方便后面深入理解。
step1:使用python調用微博API,首先下載python SDK,即sinaweibopy
Sinaweibopy是一款Python專(zhuān)用的OAuth 2客戶(hù)端,支持微博API,無(wú)依賴(lài),100%純Py,單文件,代碼簡(jiǎn)單,運行可靠,也是新浪微博的Python SDK。
可以直接通過(guò)pip安裝:
pip install sinaweibopy
什么是SDK?SDK的英文全稱(chēng)是軟件開(kāi)發(fā)工具包(software development kit)。簡(jiǎn)而言之,它是一個(gè)代碼庫,其中收錄用于開(kāi)發(fā)應用程序的可重用代碼。為應用編寫(xiě)代碼時(shí),無(wú)需重復編寫(xiě)在實(shí)際屏幕上繪制文本等代碼。SDK 可以幫助您做到這一點(diǎn)。簡(jiǎn)而言之,所有這些代碼庫和一些其他工具構成了我們所說(shuō)的 SDK。
step2:了解新浪微博的授權機制,即OAuth 2
API 調用需要獲取用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權過(guò)程請參考如下流程圖,其中Client指的是第三方應用(也就是我們自己在第三步創(chuàng )建的應用),Resource Owner指的是一個(gè)user,Authorization Server 是我們的授權 Server,Resource Server 是一個(gè) API server。
從流程圖中可以看出,為了調用API服務(wù)器內容,需要將訪(fǎng)問(wèn)令牌告知API服務(wù)器;用戶(hù)獲得授權后,將訪(fǎng)問(wèn)令牌返回給新浪(授權服務(wù)器)創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們應用程序首先要給用戶(hù)授權頁(yè)面(授權請求)。
微博API的授權機制(來(lái)自微博開(kāi)放平臺開(kāi)發(fā)文檔)
用戶(hù)授權后,瀏覽器的URL如下所示:
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)得到用戶(hù)的授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,從API服務(wù)器獲取微博數據。
了解了上面的機制后,我們就知道如何編寫(xiě)代碼來(lái)調用API了。
step3:在微博開(kāi)放平臺上創(chuàng )建自己的應用
現在讓我們創(chuàng )建我們自己的應用程序。創(chuàng )建應用程序的目的是獲取應用程序密鑰和應用程序機密。
我們通過(guò)微連接創(chuàng )建移動(dòng)應用程序。您還可以創(chuàng )建其他類(lèi)型的應用程序。創(chuàng )建應用程序后,將分配唯一的應用程序密鑰和應用程序機密。您可以在“我的申請-申請信息-基本信息”中查看,用于授權。注意:無(wú)需提交審核,只需提供應用密鑰和應用密鑰即可。
如果是異地web應用或者手機客戶(hù)端應用,出于安全考慮,需要填寫(xiě)平臺的redirect_url(授權回調頁(yè)面)網(wǎng)站使用OAuth2.0。填寫(xiě)地址為“我的申請>申請信息>高級信息”。這里,我們將授權回調頁(yè)面和取消授權回調頁(yè)面都設置為默認回調頁(yè)面:
我的申請-申請信息-高級信息
step4:python代碼實(shí)現
首先,導入所需的模塊:
from weibo import APIClient
import webbrowser #python內置的包,支持對瀏覽器進(jìn)行操作
使用微博 SDK 創(chuàng )建我們的應用程序:
APP_KEY = '123456'
APP_SECRET = 'abc123xyz456'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' #回調授權頁(yè)面,用戶(hù)完成授權后返回的頁(yè)面
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
授權頁(yè)面的url(%3A//oauth2/default.html&response_type=code&client_id=729983294)。用webbrowser打開(kāi)這個(gè)url,會(huì )喚醒瀏覽器打開(kāi)
url=client.get_authorize_url() #得到授權頁(yè)面的url
webbrowser.open_new(url) #打開(kāi)這個(gè)url
打開(kāi)授權頁(yè)面的url
用戶(hù)完成授權后,URL 如下所示:。我們需要code=后面的內容。
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
使用代碼獲取訪(fǎng)問(wèn)令牌:
r = client.request_access_token(code)
access_token = r.access_token # 新浪(授權服務(wù)器)返回的token
expires_in = r.expires_in
您可以打印 r 以查看里面的內容:
print(r)
{'access_token': u'abcqwe123', 'expires': 1662109746, 'expires_in': 1662109746, 'uid': u'2164581421'}
設置access_token后,可以直接調用API:
client.set_access_token(access_token, expires_in)
輸出最新的公眾微博:
print(client.statuses__public_timeline)
返回的具體內容可以在微博API文檔中找到。
例如,我們可以輸出用戶(hù)的昵稱(chēng)、個(gè)人資料、位置和微博:
for i in range(0,length):
print(u'昵稱(chēng):'+statuses[i]['user']['screen_name'])
print(u'簡(jiǎn)介:'+statuses[i]['user']['description'])
print(u'位置:'+statuses[i]['user']['location'])
print(u'微博:'+statuses[i]['text'])
最新公開(kāi)微博
參考資料:
Python調用微博API
如何通過(guò)python調用新浪微博的API
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(我要開(kāi)發(fā)自己的微博應用(App),(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 47 次瀏覽 ? 2021-12-08 22:02
OAuth和新浪微博開(kāi)放平臺介紹我之前在新浪微博上創(chuàng )建了一個(gè)應用,并獲得了App key和Secret key,以便調用新浪微博開(kāi)放平臺API來(lái)了解它的全部?jì)热?。前幾天,連續4天沒(méi)課,于是我就耐心的摸索API的使用方法。新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言的開(kāi)發(fā)SDK下載,但也有一些基礎接口調用的demo和接口說(shuō)明文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我沒(méi)有 不要放棄試圖理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程****。如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。
因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。剛接觸OAuth的時(shí)候,完全沒(méi)有概念,覺(jué)得沒(méi)辦法學(xué)。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下: OAUTH協(xié)議介紹 基于OAuth安全協(xié)議的Java應用編程 在***應用中使用OAuth OAuth有3個(gè)參與者,分別是User、Service Provider、Consumer。假設我想為其他新浪微博用戶(hù)開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App)。它們的對應關(guān)系如下: User => 新浪微博用戶(hù)想要使用這個(gè)App Provider => 新浪微博開(kāi)放平臺Consumer => App 其實(shí)我們的App就相當于User和Provider(新浪微博平臺)的一個(gè)第三方應用。作為第三方App,如果要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。下面是根據我對整個(gè)OAuth認證授權流程的理解畫(huà)的圖(可以跳過(guò),對下面的一些概念有一定了解的時(shí)候再看這個(gè)流程圖): 結合上面的流程圖,下面這是我對這些術(shù)語(yǔ)和每個(gè)過(guò)程的描述的理解:Consumer key和Consumer Secret:
消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。對應上圖中的流程1和流程2。Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer并希望獲得其特殊服務(wù)時(shí),該服務(wù)會(huì )在整合了Provider中存儲的用戶(hù)自己的資源后由Consumer返回。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。對應上圖中的流程3、4、5。處理6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。Access Token,Access Secret:如果流程10中的Provider返回一個(gè)未經(jīng)User授權的Access Token,用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后消費者可以開(kāi)始使用 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(我要開(kāi)發(fā)自己的微博應用(App),(組圖))
OAuth和新浪微博開(kāi)放平臺介紹我之前在新浪微博上創(chuàng )建了一個(gè)應用,并獲得了App key和Secret key,以便調用新浪微博開(kāi)放平臺API來(lái)了解它的全部?jì)热?。前幾天,連續4天沒(méi)課,于是我就耐心的摸索API的使用方法。新浪微博開(kāi)放平臺雖然提供了各種語(yǔ)言的開(kāi)發(fā)SDK下載,但也有一些基礎接口調用的demo和接口說(shuō)明文檔。但是經(jīng)過(guò)這幾天的耐心嘗試,感覺(jué)新浪微博開(kāi)放平臺上的入門(mén)指南與下載的Java開(kāi)發(fā)包weibo4j包中的demo使用注釋有些不一致。再加上自我理解能力有限,導致了很多困惑。幸運的是,我沒(méi)有 不要放棄試圖理解它。廢話(huà)少說(shuō),以下是我的學(xué)習過(guò)程****。如果你想通過(guò)調用新浪微博開(kāi)放平臺API開(kāi)發(fā)自己的微博應用,首先要有一個(gè)新浪微博賬號和一個(gè)CSDN賬號,因為我們需要同時(shí)用這兩個(gè)賬號創(chuàng )建一個(gè)微博應用獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。因為我們需要用這兩個(gè)賬號同時(shí)創(chuàng )建一個(gè)微博應用來(lái)獲取App key和Secret key。那么App key和Secret key有什么用呢?其實(shí)我只是在新浪微博開(kāi)放平臺上看了一系列的說(shuō)明,并不是很了解App key和Secret key的使用。
因為更重要的是了解OAuth認證授權的整個(gè)過(guò)程,以及幾個(gè)Token和4個(gè)URL在整個(gè)OAuth認證授權過(guò)程中的作用。剛接觸OAuth的時(shí)候,完全沒(méi)有概念,覺(jué)得沒(méi)辦法學(xué)。幸好找到了下面的文章,對理解OAuth很有幫助。鏈接如下: OAUTH協(xié)議介紹 基于OAuth安全協(xié)議的Java應用編程 在***應用中使用OAuth OAuth有3個(gè)參與者,分別是User、Service Provider、Consumer。假設我想為其他新浪微博用戶(hù)開(kāi)發(fā)一個(gè)基于新浪微博開(kāi)放平臺的應用程序(App)。它們的對應關(guān)系如下: User => 新浪微博用戶(hù)想要使用這個(gè)App Provider => 新浪微博開(kāi)放平臺Consumer => App 其實(shí)我們的App就相當于User和Provider(新浪微博平臺)的一個(gè)第三方應用。作為第三方App,如果要訪(fǎng)問(wèn)用戶(hù)在新浪微博平臺上保存的資源,必須經(jīng)過(guò)一系列的認證和授權才能工作。下面是根據我對整個(gè)OAuth認證授權流程的理解畫(huà)的圖(可以跳過(guò),對下面的一些概念有一定了解的時(shí)候再看這個(gè)流程圖): 結合上面的流程圖,下面這是我對這些術(shù)語(yǔ)和每個(gè)過(guò)程的描述的理解:Consumer key和Consumer Secret:
消費者向提供者申請,希望能夠調用其開(kāi)放的API。申請通過(guò)后,Provider將其分配給滿(mǎn)足其要求的Consumer,以唯一標識該Consumer滿(mǎn)足Provider的要求。對應上圖中的流程1和流程2。Request Token、Request Secret:當用戶(hù)訪(fǎng)問(wèn)Consumer并希望獲得其特殊服務(wù)時(shí),該服務(wù)會(huì )在整合了Provider中存儲的用戶(hù)自己的資源后由Consumer返回。此時(shí),Consumer向Provider請求獲取Requst Token,用于唯一標識Consumer和User之間的具體關(guān)聯(lián)。對應上圖中的流程3、4、5。處理6,消費者必須將用戶(hù)引導至提供者提供的 OAuth 身份驗證和授權頁(yè)面。實(shí)際上,瀏覽器會(huì )重定向到帶有請求令牌和請求秘密參數的 authenticationURL。URL 由提供商提供。接下來(lái),User在流程7和流程8中授權Consumer(一般是通過(guò)輸入賬號和密碼登錄),然后Provider會(huì )被重定向到流程1中Consumer提供的Callback_URL,URL參數附加OAuth令牌和 OAuth 驗證器。
流程9是Consumer使用之前從Provider獲取的Request Token再次向Provider請求獲取Access Token。Access Token,Access Secret:如果流程10中的Provider返回一個(gè)未經(jīng)User授權的Access Token,用于唯一標識特定Consumer可以訪(fǎng)問(wèn)用戶(hù)在Provider中存儲的資源和信息。然后消費者可以開(kāi)始使用
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 騰訊微博開(kāi)放平臺合作方式介紹2011-01-26目錄(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 56 次瀏覽 ? 2021-12-06 03:04
騰訊微博開(kāi)放平臺合作方式介紹2011-01-26目錄(組圖))
騰訊微博開(kāi)放平臺合作方式介紹 2011-01-26 目錄 什么是騰訊微博開(kāi)放平臺 騰訊微博開(kāi)放API介紹 典型應用類(lèi)型 i微博系統介紹 開(kāi)放平臺數據服務(wù) 什么是騰訊微博開(kāi)放平臺 廣大開(kāi)發(fā)者提供開(kāi)放接口構建豐富多樣的應用開(kāi)放平臺,為用戶(hù)提供多種典型應用輔助開(kāi)發(fā)。三方迅速搭建了自己的微博系統,并與騰訊微博平臺進(jìn)行溝通,充分利用騰訊用戶(hù)和信息資源。第三方應用可以從微博獲取海量信息或向千萬(wàn)用戶(hù)傳播信息,獲得營(yíng)銷(xiāo)推廣機會(huì )。開(kāi)放的數據共享和傳播服務(wù)加上你的智慧,將創(chuàng )造無(wú)窮的功能和樂(lè )趣。騰訊微博開(kāi)放API提供以下功能接口。第三方可以使用這些 API 來(lái)開(kāi)發(fā)自己的微博應用程序。用戶(hù)授權微博閱讀、寫(xiě)作、收聽(tīng)和搜索用戶(hù)。微博話(huà)題乘法口算100題七年級有理數混合計算100題計算機一級題庫二元線(xiàn)性方程應用題真話(huà)大冒險刺激題私信采集詳細API說(shuō)明,請看httpopentqqcomresourcephpi11騰訊微博開(kāi)放API介紹 典型應用介紹 使用騰訊微博開(kāi)放API可以實(shí)現豐富的微博應用形式,包括賬號連接,
典型應用介紹 4 用戶(hù)互動(dòng) 一鍵轉播至騰訊微博網(wǎng)頁(yè)圖片、視頻從本站微博新聞評論返回網(wǎng)站作為內容,促進(jìn)用戶(hù)交流。典型應用介紹 5 小工具、小游戲 使用微博API還可以為第三方實(shí)現各種小工具、小游戲。為了更豐富的內容和樂(lè )趣,比如在微博上給朋友點(diǎn)歌,用戶(hù)信息統計工具,比如分析發(fā)微博的習慣,你平時(shí)什么時(shí)候睡覺(jué)等。上傳文件到微博,在微博、美圖秀秀上發(fā)布下載鏈接,卡通身份證微博投票九宮格日記iweibo系統什么是iweiboiweibo是基于騰訊微博API開(kāi)發(fā)的免費開(kāi)源微博系統合作伙伴合作伙伴iweiboiweiboi微博系統具備騰訊微博的所有功能基于騰訊微博開(kāi)放平臺API開(kāi)發(fā)即可在任何第三方服務(wù)器中設置為第三方網(wǎng)站提供微博功能。用戶(hù)可以獲取和修改源代碼。添加特殊功能。賬號資料系統與騰訊微博平臺全對接騰訊微博平臺提供穩定的后臺服務(wù)和信息審核保障施工計劃示例,結構施工計劃,
博客全功能運營(yíng)管理后臺接入騰訊微博賬號。同步用戶(hù)信息收聽(tīng)關(guān)系。操作和前端顯示定制。管理后端可以輕松定制。面向用戶(hù)的操作推薦元素頁(yè)面代碼完全開(kāi)源,可定制。平臺審核管理 無(wú)審核風(fēng)險 自動(dòng)安裝 按照安裝向導提示,自動(dòng)完成iweibo系統的部署。高兼容性 品牌營(yíng)銷(xiāo)機遇 強大的平臺支持8000萬(wàn)微博用戶(hù)資源,從騰訊微博獲取優(yōu)質(zhì)內容,通過(guò)騰訊微博平臺的審核管理,降低網(wǎng)民互動(dòng)障礙,增加網(wǎng)民參與度。提供管理后臺快速定制前端操作元素 i微博能給你帶來(lái)什么樣的強大平臺來(lái)支持擁有8000萬(wàn)注冊用戶(hù)的騰訊微博。這些用戶(hù)可能會(huì )成為新華網(wǎng)的忠實(shí)粉絲,并從騰訊微博獲取優(yōu)質(zhì)內容。1 微博內容自然豐富,可以通過(guò)列表話(huà)題等方式進(jìn)行搜索,騰訊微博的信息輸出到i微博,獲取最即時(shí)、最豐富、最活躍、最火的微博消息 2 緊急突發(fā)事件通過(guò)騰訊微博審核提供現場(chǎng)最新鮮的信息內容 1 所有i微博內容通過(guò)騰訊微博審核合作伙伴 無(wú)審核壓力 2 專(zhuān)業(yè)審核團隊24小時(shí)待命,刪除不良內容iweibo 隨時(shí) 3 提供微博評論關(guān)鍵詞屏蔽刪除功能,降低網(wǎng)民參與門(mén)檻,提高網(wǎng)民參與度 1 微博內容短發(fā)布門(mén)檻低,自然有利于用戶(hù)加入 2 微博更有利于增加網(wǎng)民的活動(dòng)超過(guò)了傳統的論壇、博客等形式。3 微博轉播、評論、對話(huà)、私信等功能有利于網(wǎng)友互動(dòng),提供管理后臺,快速定制前端操作元素,全面管理后臺。方便i微博管理前端內容展示,方便賬號話(huà)題推廣等,在騰訊微博上獲得品牌營(yíng)銷(xiāo)機會(huì )。1 合作伙伴官方微信
博已獲得騰訊認證和推薦,并在顯要位置獲得曝光。粉絲增加了。2 微博來(lái)源顯示合作伙伴網(wǎng)址和網(wǎng)站名稱(chēng)。微博曝光機會(huì ) 自動(dòng)化部署能給你帶來(lái)什么?微博功能齊全嗎?運營(yíng)管理后臺系統 完全開(kāi)源,支持定制開(kāi)發(fā)。從騰訊微博獲取最大量的用戶(hù)資源或向千萬(wàn)級用戶(hù)傳播信息,在高端用戶(hù)平臺獲取營(yíng)銷(xiāo)推廣機會(huì )。使用開(kāi)放的數據檢索和傳播服務(wù),獲取最實(shí)時(shí)的信息。海量數據下的穩定后端。超大規模用戶(hù)在線(xiàn)承載用戶(hù)信息和數據安全。評論,采集,搜索,對應iweibo功能,用戶(hù)推薦話(huà)題推薦、熱點(diǎn)話(huà)題管理、屏蔽功能、i微博基本功能,以證券時(shí)報為例,i微博首頁(yè)滿(mǎn)足微博用戶(hù)的基本需求,輸入方式更快,支持話(huà)題輸入和上傳圖片 瀏覽看看每個(gè)人都在談?wù)?。搜索框提供最快的支持查找你感興趣的人列表、微博話(huà)題等。我的首頁(yè)時(shí)時(shí)提醒你各種動(dòng)態(tài)評論、廣播、采集、私信等。在證券時(shí)報。示例詳情展示合作伙伴品牌定制logo i微博可以自定義專(zhuān)屬合作伙伴logo,重點(diǎn)突出合作伙伴展示適合合作伙伴的話(huà)題。合作伙伴可以根據自己的媒體領(lǐng)域自定義自己領(lǐng)域的話(huà)題。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。
從證券微博點(diǎn)擊可直接跳轉到證券微博首頁(yè)。微博和騰訊微博開(kāi)放,增加合作伙伴在騰訊微博的曝光度。同時(shí),通過(guò)來(lái)源點(diǎn)擊還可以給合作伙伴帶來(lái)點(diǎn)擊 iweibo iweibo 定制功能 iweibo 定制功能更加多樣化??梢愿鶕襟w屬性定制適合合作伙伴定位的話(huà)題媒體類(lèi)別,例如《證券時(shí)報》的證券話(huà)題推薦。用戶(hù)自定義 可以自定義 一定數量的用戶(hù)推送到iweibo 用戶(hù)數量可以在后臺設置熱點(diǎn)話(huà)題。定制化可基于合作方定位進(jìn)行熱點(diǎn)話(huà)題管理,基于iweibo API功能向網(wǎng)友展示不同內容,使用iweibo的合作網(wǎng)站您可以使用基于騰訊微博的API接口自定義更多功能。如何實(shí)現排行榜話(huà)題分類(lèi)iweibo功能的基本功能 1、按照安裝向導的提示,自動(dòng)完成iweibo系統的部署。它方便快捷。2 兼容多種服務(wù)器配置定制功能。話(huà)題管理推薦話(huà)題定制等功能2i微博頁(yè)面代碼完全開(kāi)源,可定制和個(gè)性化的前端展示 i微博管理后臺介紹 i微博管理后臺主要功能 推薦管理 推薦話(huà)題定制 推薦用戶(hù)定制 熱門(mén)話(huà)題設置 模塊啟用設置等四模塊顯示設置 包括自定義logo頁(yè)頁(yè)腳設置等二模塊屏蔽設置,包括關(guān)鍵詞屏蔽、微博屏蔽、評論屏蔽等模塊。帳戶(hù)系統設置包括帳戶(hù)管理和更改密碼。兩個(gè)模塊合作伙伴網(wǎng)站
根據評論內容或評論微博ID屏蔽評論。黑名單管理。將敏感內容垃圾郵件的id拉入黑名單。他們播放的內容不會(huì )出現在iweibo騰訊微博上。博客平臺實(shí)時(shí)數據、用戶(hù)關(guān)系、騰訊微博審核、后臺審核團隊i微博展示內容、i微博管理后臺相關(guān)屏蔽功能、活躍社區氛圍促進(jìn)用戶(hù)交流。成功安裝iweibo后,用戶(hù)可以從網(wǎng)站觸發(fā)iweibo使用完整的微博功能iweibo的使用場(chǎng)景用戶(hù)可以通過(guò)簡(jiǎn)單的點(diǎn)擊從網(wǎng)站觸發(fā)微博功能,使用授權賬號進(jìn)入iweibo微博釋放區。微博信息展示,在iweibo中發(fā)送微博信息,并同步到騰訊微博數千萬(wàn)用戶(hù)平臺獲得營(yíng)銷(xiāo)機會(huì )。i微博的使用場(chǎng)景為開(kāi)放平臺數據服務(wù)數據服務(wù)1開(kāi)放平臺提供騰訊微博平臺管理的所有數據,有效規避第三方實(shí)時(shí)數據審計風(fēng)險2開(kāi)放平臺可以為第三方應用提供消息讀寫(xiě)數據用戶(hù)授權 登錄數據通過(guò)一鍵播報功能,生成騰訊微博每日發(fā)帖數等數據,協(xié)助第三方了解自身運營(yíng)情況,并根據數據完善自身產(chǎn)品 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
騰訊微博開(kāi)放平臺合作方式介紹2011-01-26目錄(組圖))

騰訊微博開(kāi)放平臺合作方式介紹 2011-01-26 目錄 什么是騰訊微博開(kāi)放平臺 騰訊微博開(kāi)放API介紹 典型應用類(lèi)型 i微博系統介紹 開(kāi)放平臺數據服務(wù) 什么是騰訊微博開(kāi)放平臺 廣大開(kāi)發(fā)者提供開(kāi)放接口構建豐富多樣的應用開(kāi)放平臺,為用戶(hù)提供多種典型應用輔助開(kāi)發(fā)。三方迅速搭建了自己的微博系統,并與騰訊微博平臺進(jìn)行溝通,充分利用騰訊用戶(hù)和信息資源。第三方應用可以從微博獲取海量信息或向千萬(wàn)用戶(hù)傳播信息,獲得營(yíng)銷(xiāo)推廣機會(huì )。開(kāi)放的數據共享和傳播服務(wù)加上你的智慧,將創(chuàng )造無(wú)窮的功能和樂(lè )趣。騰訊微博開(kāi)放API提供以下功能接口。第三方可以使用這些 API 來(lái)開(kāi)發(fā)自己的微博應用程序。用戶(hù)授權微博閱讀、寫(xiě)作、收聽(tīng)和搜索用戶(hù)。微博話(huà)題乘法口算100題七年級有理數混合計算100題計算機一級題庫二元線(xiàn)性方程應用題真話(huà)大冒險刺激題私信采集詳細API說(shuō)明,請看httpopentqqcomresourcephpi11騰訊微博開(kāi)放API介紹 典型應用介紹 使用騰訊微博開(kāi)放API可以實(shí)現豐富的微博應用形式,包括賬號連接,

典型應用介紹 4 用戶(hù)互動(dòng) 一鍵轉播至騰訊微博網(wǎng)頁(yè)圖片、視頻從本站微博新聞評論返回網(wǎng)站作為內容,促進(jìn)用戶(hù)交流。典型應用介紹 5 小工具、小游戲 使用微博API還可以為第三方實(shí)現各種小工具、小游戲。為了更豐富的內容和樂(lè )趣,比如在微博上給朋友點(diǎn)歌,用戶(hù)信息統計工具,比如分析發(fā)微博的習慣,你平時(shí)什么時(shí)候睡覺(jué)等。上傳文件到微博,在微博、美圖秀秀上發(fā)布下載鏈接,卡通身份證微博投票九宮格日記iweibo系統什么是iweiboiweibo是基于騰訊微博API開(kāi)發(fā)的免費開(kāi)源微博系統合作伙伴合作伙伴iweiboiweiboi微博系統具備騰訊微博的所有功能基于騰訊微博開(kāi)放平臺API開(kāi)發(fā)即可在任何第三方服務(wù)器中設置為第三方網(wǎng)站提供微博功能。用戶(hù)可以獲取和修改源代碼。添加特殊功能。賬號資料系統與騰訊微博平臺全對接騰訊微博平臺提供穩定的后臺服務(wù)和信息審核保障施工計劃示例,結構施工計劃,

博客全功能運營(yíng)管理后臺接入騰訊微博賬號。同步用戶(hù)信息收聽(tīng)關(guān)系。操作和前端顯示定制。管理后端可以輕松定制。面向用戶(hù)的操作推薦元素頁(yè)面代碼完全開(kāi)源,可定制。平臺審核管理 無(wú)審核風(fēng)險 自動(dòng)安裝 按照安裝向導提示,自動(dòng)完成iweibo系統的部署。高兼容性 品牌營(yíng)銷(xiāo)機遇 強大的平臺支持8000萬(wàn)微博用戶(hù)資源,從騰訊微博獲取優(yōu)質(zhì)內容,通過(guò)騰訊微博平臺的審核管理,降低網(wǎng)民互動(dòng)障礙,增加網(wǎng)民參與度。提供管理后臺快速定制前端操作元素 i微博能給你帶來(lái)什么樣的強大平臺來(lái)支持擁有8000萬(wàn)注冊用戶(hù)的騰訊微博。這些用戶(hù)可能會(huì )成為新華網(wǎng)的忠實(shí)粉絲,并從騰訊微博獲取優(yōu)質(zhì)內容。1 微博內容自然豐富,可以通過(guò)列表話(huà)題等方式進(jìn)行搜索,騰訊微博的信息輸出到i微博,獲取最即時(shí)、最豐富、最活躍、最火的微博消息 2 緊急突發(fā)事件通過(guò)騰訊微博審核提供現場(chǎng)最新鮮的信息內容 1 所有i微博內容通過(guò)騰訊微博審核合作伙伴 無(wú)審核壓力 2 專(zhuān)業(yè)審核團隊24小時(shí)待命,刪除不良內容iweibo 隨時(shí) 3 提供微博評論關(guān)鍵詞屏蔽刪除功能,降低網(wǎng)民參與門(mén)檻,提高網(wǎng)民參與度 1 微博內容短發(fā)布門(mén)檻低,自然有利于用戶(hù)加入 2 微博更有利于增加網(wǎng)民的活動(dòng)超過(guò)了傳統的論壇、博客等形式。3 微博轉播、評論、對話(huà)、私信等功能有利于網(wǎng)友互動(dòng),提供管理后臺,快速定制前端操作元素,全面管理后臺。方便i微博管理前端內容展示,方便賬號話(huà)題推廣等,在騰訊微博上獲得品牌營(yíng)銷(xiāo)機會(huì )。1 合作伙伴官方微信

博已獲得騰訊認證和推薦,并在顯要位置獲得曝光。粉絲增加了。2 微博來(lái)源顯示合作伙伴網(wǎng)址和網(wǎng)站名稱(chēng)。微博曝光機會(huì ) 自動(dòng)化部署能給你帶來(lái)什么?微博功能齊全嗎?運營(yíng)管理后臺系統 完全開(kāi)源,支持定制開(kāi)發(fā)。從騰訊微博獲取最大量的用戶(hù)資源或向千萬(wàn)級用戶(hù)傳播信息,在高端用戶(hù)平臺獲取營(yíng)銷(xiāo)推廣機會(huì )。使用開(kāi)放的數據檢索和傳播服務(wù),獲取最實(shí)時(shí)的信息。海量數據下的穩定后端。超大規模用戶(hù)在線(xiàn)承載用戶(hù)信息和數據安全。評論,采集,搜索,對應iweibo功能,用戶(hù)推薦話(huà)題推薦、熱點(diǎn)話(huà)題管理、屏蔽功能、i微博基本功能,以證券時(shí)報為例,i微博首頁(yè)滿(mǎn)足微博用戶(hù)的基本需求,輸入方式更快,支持話(huà)題輸入和上傳圖片 瀏覽看看每個(gè)人都在談?wù)?。搜索框提供最快的支持查找你感興趣的人列表、微博話(huà)題等。我的首頁(yè)時(shí)時(shí)提醒你各種動(dòng)態(tài)評論、廣播、采集、私信等。在證券時(shí)報。示例詳情展示合作伙伴品牌定制logo i微博可以自定義專(zhuān)屬合作伙伴logo,重點(diǎn)突出合作伙伴展示適合合作伙伴的話(huà)題。合作伙伴可以根據自己的媒體領(lǐng)域自定義自己領(lǐng)域的話(huà)題。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。微博輸入框顯示更多樣化的展示形式。多種展示形式,可以展示網(wǎng)站最想要的話(huà)題 直播廳 定制個(gè)性化的直播廳,可以設置推薦內容和展示位置iweibo上會(huì )同步到網(wǎng)友的騰訊微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。最想要的話(huà)題 轉播廳 定制個(gè)性化轉播廳,可設置推薦內容和展示位置 同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。同一個(gè)iweibo用戶(hù)在騰訊微博上發(fā)布的微博也將同步到iweibo并同步到該網(wǎng)友的騰訊微博。廣播會(huì )顯示來(lái)自合作伙伴,例如來(lái)自證券微博。

從證券微博點(diǎn)擊可直接跳轉到證券微博首頁(yè)。微博和騰訊微博開(kāi)放,增加合作伙伴在騰訊微博的曝光度。同時(shí),通過(guò)來(lái)源點(diǎn)擊還可以給合作伙伴帶來(lái)點(diǎn)擊 iweibo iweibo 定制功能 iweibo 定制功能更加多樣化??梢愿鶕襟w屬性定制適合合作伙伴定位的話(huà)題媒體類(lèi)別,例如《證券時(shí)報》的證券話(huà)題推薦。用戶(hù)自定義 可以自定義 一定數量的用戶(hù)推送到iweibo 用戶(hù)數量可以在后臺設置熱點(diǎn)話(huà)題。定制化可基于合作方定位進(jìn)行熱點(diǎn)話(huà)題管理,基于iweibo API功能向網(wǎng)友展示不同內容,使用iweibo的合作網(wǎng)站您可以使用基于騰訊微博的API接口自定義更多功能。如何實(shí)現排行榜話(huà)題分類(lèi)iweibo功能的基本功能 1、按照安裝向導的提示,自動(dòng)完成iweibo系統的部署。它方便快捷。2 兼容多種服務(wù)器配置定制功能。話(huà)題管理推薦話(huà)題定制等功能2i微博頁(yè)面代碼完全開(kāi)源,可定制和個(gè)性化的前端展示 i微博管理后臺介紹 i微博管理后臺主要功能 推薦管理 推薦話(huà)題定制 推薦用戶(hù)定制 熱門(mén)話(huà)題設置 模塊啟用設置等四模塊顯示設置 包括自定義logo頁(yè)頁(yè)腳設置等二模塊屏蔽設置,包括關(guān)鍵詞屏蔽、微博屏蔽、評論屏蔽等模塊。帳戶(hù)系統設置包括帳戶(hù)管理和更改密碼。兩個(gè)模塊合作伙伴網(wǎng)站

根據評論內容或評論微博ID屏蔽評論。黑名單管理。將敏感內容垃圾郵件的id拉入黑名單。他們播放的內容不會(huì )出現在iweibo騰訊微博上。博客平臺實(shí)時(shí)數據、用戶(hù)關(guān)系、騰訊微博審核、后臺審核團隊i微博展示內容、i微博管理后臺相關(guān)屏蔽功能、活躍社區氛圍促進(jìn)用戶(hù)交流。成功安裝iweibo后,用戶(hù)可以從網(wǎng)站觸發(fā)iweibo使用完整的微博功能iweibo的使用場(chǎng)景用戶(hù)可以通過(guò)簡(jiǎn)單的點(diǎn)擊從網(wǎng)站觸發(fā)微博功能,使用授權賬號進(jìn)入iweibo微博釋放區。微博信息展示,在iweibo中發(fā)送微博信息,并同步到騰訊微博數千萬(wàn)用戶(hù)平臺獲得營(yíng)銷(xiāo)機會(huì )。i微博的使用場(chǎng)景為開(kāi)放平臺數據服務(wù)數據服務(wù)1開(kāi)放平臺提供騰訊微博平臺管理的所有數據,有效規避第三方實(shí)時(shí)數據審計風(fēng)險2開(kāi)放平臺可以為第三方應用提供消息讀寫(xiě)數據用戶(hù)授權 登錄數據通過(guò)一鍵播報功能,生成騰訊微博每日發(fā)帖數等數據,協(xié)助第三方了解自身運營(yíng)情況,并根據數據完善自身產(chǎn)品
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(開(kāi)發(fā)總流程圖讓你的應用在新浪微博開(kāi)放平臺上運營(yíng) )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2021-12-04 07:10
)
飯子原創(chuàng ),歡迎轉載,請注明出處:
ps 本文項目使用java語(yǔ)言eclipse平臺開(kāi)發(fā),配置過(guò)程也是以此為基礎。
開(kāi)發(fā)流程圖
讓您的應用程序在新浪微博開(kāi)放平臺上運行,您只需要通過(guò)六個(gè)簡(jiǎn)單的步驟:
成為開(kāi)發(fā)者
1.創(chuàng )建微博賬號
在開(kāi)發(fā)者頁(yè)面點(diǎn)擊“登錄”或“創(chuàng )建應用”,通過(guò)賬號登錄成為開(kāi)發(fā)者。一個(gè)新浪微博賬號可以管理10個(gè)不同的應用程序。建議開(kāi)發(fā)者使用官方微博進(jìn)行統一管理。
2.選擇應用類(lèi)型
單擊“創(chuàng )建應用程序”,進(jìn)入目標應用程序的類(lèi)型選擇鏈接。根據應用類(lèi)型的提示,選擇對應的應用創(chuàng )建流程。創(chuàng )建應用程序時(shí),我選擇的類(lèi)型是“其他”,因為我想開(kāi)發(fā)一個(gè)java客戶(hù)端軟件。(里面的信息可以隨意填寫(xiě),等開(kāi)發(fā)完應用回來(lái)修改。)創(chuàng )建完成后,系統會(huì )分配一個(gè)App Key和App Secret來(lái)驗證開(kāi)發(fā)者的身份,寫(xiě)下來(lái),使用以后吧。
3.開(kāi)發(fā)者信息設置
在開(kāi)發(fā)者信息設置頁(yè)面填寫(xiě)信息。成為新浪微博認證開(kāi)發(fā)者,需要通過(guò)郵箱驗證和手機驗證。
注意:開(kāi)發(fā)者類(lèi)型一經(jīng)填寫(xiě),不可修改。個(gè)人開(kāi)發(fā)者不得接入微博支付服務(wù),請謹慎選擇。
應用開(kāi)發(fā)
1. 下載SDK源碼
進(jìn)入下載sdk,下載后解壓,作為項目導入eclipse。
2. 解決授權錯誤
解決填寫(xiě)回調地址導致的error:redirect_uri_mismatch導致獲取用戶(hù)授權的問(wèn)題。
登錄新浪微博開(kāi)放平臺→選擇管理中心→點(diǎn)擊所需應用名稱(chēng)進(jìn)入對應應用→左側應用信息→高級信息→OAuth2.0授權設置點(diǎn)擊編輯→站點(diǎn)應用redirect_uri等于將申請信息中的“in site”改為“申請地址”,而不是“申請實(shí)際地址”;其他應用:redirect_uri需要改為
*****/info/advanced(用您的應用程序的 AppKey 替換 30871*****)。
如果你是異地web應用或者客戶(hù)端應用,填寫(xiě)redirect_uri地址:
應用APPKEY/權限/oauth
注意:修改應用回調頁(yè)面或綁定域名后,大約需要半小時(shí)才能生效。
3. 填寫(xiě)相關(guān)配置
在eclipse項目中,填寫(xiě)相關(guān)配置:在Config.properties中
客戶(hù)端 ID:應用密鑰
client_SERCRET: app_secret
redirect_URI:回調地址(這個(gè)需要和步驟3的redirect_uri一致)
4. 修改項目代碼
在eclipse項目中,修改weibo4j.examples.oauth2.OAuth4Code.java文件,注釋第14、15行,然后插入如下代碼:
BareBonesBrowserLaunch.openURL(oauth.authorize("code","",""));
修改后的結果如圖:
5. 授權
首先運行新修改的weibo4j.examples.oauth2.OAuth4Code.java文件,引導需要授權的用戶(hù)進(jìn)入授權頁(yè)面。如果用戶(hù)同意授權,點(diǎn)擊“授權”。系統回調應用,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE 換取AccessToken。
記錄回調應用后網(wǎng)頁(yè)地址欄中“代碼”后面的AccessToken:
授權級別與OAuth2.0access_token有效期對應表:
授權級別測試普通中級高級
授權期限為1天、7天、30天、90天
筆記:
只有沒(méi)有經(jīng)過(guò)文案審查的應用程序才處于測試級別。
當應用屬于授權應用的開(kāi)發(fā)者時(shí),有效期為5年。
access_token 自動(dòng)延續方案
如果用戶(hù)在授權有效期內重新打開(kāi)授權頁(yè)面授權(如果用戶(hù)此時(shí)有微博登錄狀態(tài),此頁(yè)面會(huì )閃過(guò)),那么新浪會(huì )自動(dòng)為開(kāi)發(fā)者延長(cháng)access_token的生命周期,并且需要開(kāi)發(fā)者維護一個(gè)新的授權然后獲取access_token值。
如何查詢(xún)當前應用的授權級別
可以在應用APPKEY/privilege/oauth上查詢(xún)當前應用的授權級別。
6. 測試
如果你想獲取某個(gè)用戶(hù)的信息,你可以運行
weibo4j.examples.user.ShowUser文件需要在RunConfigurations中配置兩個(gè)參數,被查看用戶(hù)的用戶(hù)id和剛才的“code”代碼。
運行結果顯示在命令行中:
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(開(kāi)發(fā)總流程圖讓你的應用在新浪微博開(kāi)放平臺上運營(yíng)
)
飯子原創(chuàng ),歡迎轉載,請注明出處:
ps 本文項目使用java語(yǔ)言eclipse平臺開(kāi)發(fā),配置過(guò)程也是以此為基礎。
開(kāi)發(fā)流程圖
讓您的應用程序在新浪微博開(kāi)放平臺上運行,您只需要通過(guò)六個(gè)簡(jiǎn)單的步驟:
成為開(kāi)發(fā)者
1.創(chuàng )建微博賬號
在開(kāi)發(fā)者頁(yè)面點(diǎn)擊“登錄”或“創(chuàng )建應用”,通過(guò)賬號登錄成為開(kāi)發(fā)者。一個(gè)新浪微博賬號可以管理10個(gè)不同的應用程序。建議開(kāi)發(fā)者使用官方微博進(jìn)行統一管理。
2.選擇應用類(lèi)型
單擊“創(chuàng )建應用程序”,進(jìn)入目標應用程序的類(lèi)型選擇鏈接。根據應用類(lèi)型的提示,選擇對應的應用創(chuàng )建流程。創(chuàng )建應用程序時(shí),我選擇的類(lèi)型是“其他”,因為我想開(kāi)發(fā)一個(gè)java客戶(hù)端軟件。(里面的信息可以隨意填寫(xiě),等開(kāi)發(fā)完應用回來(lái)修改。)創(chuàng )建完成后,系統會(huì )分配一個(gè)App Key和App Secret來(lái)驗證開(kāi)發(fā)者的身份,寫(xiě)下來(lái),使用以后吧。
3.開(kāi)發(fā)者信息設置
在開(kāi)發(fā)者信息設置頁(yè)面填寫(xiě)信息。成為新浪微博認證開(kāi)發(fā)者,需要通過(guò)郵箱驗證和手機驗證。
注意:開(kāi)發(fā)者類(lèi)型一經(jīng)填寫(xiě),不可修改。個(gè)人開(kāi)發(fā)者不得接入微博支付服務(wù),請謹慎選擇。
應用開(kāi)發(fā)
1. 下載SDK源碼
進(jìn)入下載sdk,下載后解壓,作為項目導入eclipse。
2. 解決授權錯誤
解決填寫(xiě)回調地址導致的error:redirect_uri_mismatch導致獲取用戶(hù)授權的問(wèn)題。
登錄新浪微博開(kāi)放平臺→選擇管理中心→點(diǎn)擊所需應用名稱(chēng)進(jìn)入對應應用→左側應用信息→高級信息→OAuth2.0授權設置點(diǎn)擊編輯→站點(diǎn)應用redirect_uri等于將申請信息中的“in site”改為“申請地址”,而不是“申請實(shí)際地址”;其他應用:redirect_uri需要改為
*****/info/advanced(用您的應用程序的 AppKey 替換 30871*****)。
如果你是異地web應用或者客戶(hù)端應用,填寫(xiě)redirect_uri地址:
應用APPKEY/權限/oauth
注意:修改應用回調頁(yè)面或綁定域名后,大約需要半小時(shí)才能生效。
3. 填寫(xiě)相關(guān)配置
在eclipse項目中,填寫(xiě)相關(guān)配置:在Config.properties中
客戶(hù)端 ID:應用密鑰
client_SERCRET: app_secret
redirect_URI:回調地址(這個(gè)需要和步驟3的redirect_uri一致)
4. 修改項目代碼
在eclipse項目中,修改weibo4j.examples.oauth2.OAuth4Code.java文件,注釋第14、15行,然后插入如下代碼:
BareBonesBrowserLaunch.openURL(oauth.authorize("code","",""));
修改后的結果如圖:
5. 授權
首先運行新修改的weibo4j.examples.oauth2.OAuth4Code.java文件,引導需要授權的用戶(hù)進(jìn)入授權頁(yè)面。如果用戶(hù)同意授權,點(diǎn)擊“授權”。系統回調應用,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE 換取AccessToken。
記錄回調應用后網(wǎng)頁(yè)地址欄中“代碼”后面的AccessToken:
授權級別與OAuth2.0access_token有效期對應表:
授權級別測試普通中級高級
授權期限為1天、7天、30天、90天
筆記:
只有沒(méi)有經(jīng)過(guò)文案審查的應用程序才處于測試級別。
當應用屬于授權應用的開(kāi)發(fā)者時(shí),有效期為5年。
access_token 自動(dòng)延續方案
如果用戶(hù)在授權有效期內重新打開(kāi)授權頁(yè)面授權(如果用戶(hù)此時(shí)有微博登錄狀態(tài),此頁(yè)面會(huì )閃過(guò)),那么新浪會(huì )自動(dòng)為開(kāi)發(fā)者延長(cháng)access_token的生命周期,并且需要開(kāi)發(fā)者維護一個(gè)新的授權然后獲取access_token值。
如何查詢(xún)當前應用的授權級別
可以在應用APPKEY/privilege/oauth上查詢(xún)當前應用的授權級別。
6. 測試
如果你想獲取某個(gè)用戶(hù)的信息,你可以運行
weibo4j.examples.user.ShowUser文件需要在RunConfigurations中配置兩個(gè)參數,被查看用戶(hù)的用戶(hù)id和剛才的“code”代碼。
運行結果顯示在命令行中:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 62 次瀏覽 ? 2021-12-04 06:22
最近在做一些利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號與本地賬號的綁定。你可以放心,到代碼級別就可以了。
第 1 部分:三方登錄:
1.去新浪微博開(kāi)放平臺做的事情:
請耐心閱讀,一步一步操作,如圖:
?、龠M(jìn)入
?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
?、圻x擇立即連接:
請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊即可通過(guò)驗證(身份驗證)
?、芴顚?xiě)網(wǎng)站信息,然后添加標簽到您的網(wǎng)站首頁(yè)。本地添加后(在eclipse等開(kāi)發(fā)ide的項目主頁(yè)添加這個(gè)),然后重新發(fā)布到自己的服務(wù)器上,(可以重新打包成war包發(fā)布到網(wǎng)上。比如我用騰訊的阿里云托管)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站 appKey,(appkey)是你的網(wǎng)站的唯一標識。
查找您自己的 appkey,如下所示:
點(diǎn)擊我的申請:
這時(shí)候會(huì )有appkey的值,你一定會(huì )看到
完成這些步驟后,請設置您的授權回調頁(yè)面:
解釋
1.授權回調頁(yè)面是用戶(hù)登錄您使用微博賬號訪(fǎng)問(wèn)的網(wǎng)站(您的網(wǎng)站首頁(yè)或其他頁(yè)面)
2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
設置如下
點(diǎn)擊上圖中的界面管理:
然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
點(diǎn)擊編輯,修改為自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
此時(shí),網(wǎng)站的應用訪(fǎng)問(wèn)已經(jīng)完成。騷年,開(kāi)始寫(xiě)代碼。
在首頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試目的,實(shí)際開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,在此界面有新浪微博的登錄按鈕)注意微博有登錄組件,這里我們使用自定義按鈕:
進(jìn)行如下操作:
?、? 在 weibo.js 中引入
appkey=寫(xiě)你的應用密鑰網(wǎng)站。
?、? 設置您的登錄按鈕
?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
隱藏表單如下所示:
Spring 安全框架用于用戶(hù)認證和授權。
基本上就是這種情況。相信想做這個(gè)的人也懂a(chǎn)jax。由于后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
一切平安。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
最近在做一些利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號與本地賬號的綁定。你可以放心,到代碼級別就可以了。
第 1 部分:三方登錄:
1.去新浪微博開(kāi)放平臺做的事情:
請耐心閱讀,一步一步操作,如圖:
?、龠M(jìn)入
?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
?、圻x擇立即連接:
請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊即可通過(guò)驗證(身份驗證)
?、芴顚?xiě)網(wǎng)站信息,然后添加標簽到您的網(wǎng)站首頁(yè)。本地添加后(在eclipse等開(kāi)發(fā)ide的項目主頁(yè)添加這個(gè)),然后重新發(fā)布到自己的服務(wù)器上,(可以重新打包成war包發(fā)布到網(wǎng)上。比如我用騰訊的阿里云托管)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站 appKey,(appkey)是你的網(wǎng)站的唯一標識。
查找您自己的 appkey,如下所示:
點(diǎn)擊我的申請:
這時(shí)候會(huì )有appkey的值,你一定會(huì )看到
完成這些步驟后,請設置您的授權回調頁(yè)面:
解釋
1.授權回調頁(yè)面是用戶(hù)登錄您使用微博賬號訪(fǎng)問(wèn)的網(wǎng)站(您的網(wǎng)站首頁(yè)或其他頁(yè)面)
2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
設置如下
點(diǎn)擊上圖中的界面管理:
然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
點(diǎn)擊編輯,修改為自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
此時(shí),網(wǎng)站的應用訪(fǎng)問(wèn)已經(jīng)完成。騷年,開(kāi)始寫(xiě)代碼。
在首頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試目的,實(shí)際開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,在此界面有新浪微博的登錄按鈕)注意微博有登錄組件,這里我們使用自定義按鈕:
進(jìn)行如下操作:
?、? 在 weibo.js 中引入
appkey=寫(xiě)你的應用密鑰網(wǎng)站。
?、? 設置您的登錄按鈕
?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
隱藏表單如下所示:
Spring 安全框架用于用戶(hù)認證和授權。
基本上就是這種情況。相信想做這個(gè)的人也懂a(chǎn)jax。由于后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
一切平安。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的開(kāi)發(fā)api,公示如下公示)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 51 次瀏覽 ? 2021-12-04 06:22
注:本文代碼無(wú)效,請勿模仿,其他方法請參考scribe方法
最近在研究新浪微博的開(kāi)發(fā)api,嘗試在一些客戶(hù)端應用中調用相應的api來(lái)發(fā)送新浪微博。經(jīng)過(guò)一番嘗試,終于成功了。幾個(gè)重點(diǎn)和對應的demo公布如下,供大家了解。
在本文中,我主要演示如何通過(guò)用戶(hù)名/密碼連接到新浪微博,然后讀取最新的微博信息,最后演示如何發(fā)送一個(gè)簡(jiǎn)單的微博,其他可以通過(guò)相應的微博api進(jìn)行處理,有這里沒(méi)有仔細深入。
首先要申請開(kāi)發(fā)者授權,也就是要在新浪上申請。直接通過(guò)地址:用微博登錄后,創(chuàng )建一個(gè)應用程序即可。創(chuàng )建應用的目的是獲取對應的app Key和app Secret。app key會(huì )用到后面的主要API中,方便新浪追蹤請求的來(lái)源。具體流程請自行g(shù)oogle。
應用完成后,我們將開(kāi)始我們的api之旅。在本文中,我們沒(méi)有使用官方的java sdk,因為主要目的是一個(gè)簡(jiǎn)單的演示。如果是應用開(kāi)發(fā),還是可以下載對應的java sdk應用。查看示例以了解如何撥打電話(huà)。
本文使用httpclient。如果使用maven,可以使用groupId作為commons-httpclient,使用artifactId作為commons-httpclient,將其導入到項目中。其次,為了方便對返回數據的分析,使用了一個(gè)JSON組件(fastjson)來(lái)解析json字符串。
獲取應用授權,即允許應用訪(fǎng)問(wèn)用戶(hù)的相應信息(用戶(hù)名、密碼除外)
由于新浪使用的是auth2.0,所以整個(gè)登錄過(guò)程分為兩部分。一部分是登錄授權,它允許我們的應用訪(fǎng)問(wèn)指定用戶(hù)的相應信息。這里的信息不包括用戶(hù)名和密碼。. 在類(lèi)網(wǎng)頁(yè)應用中,即通過(guò)彈出新浪登錄框,用戶(hù)輸入用戶(hù)名和密碼,授權應用使用。新浪通過(guò)驗證后,會(huì )返回到我們的應用所在的主界面。第二部分是獲取對應的token,相當于用戶(hù)會(huì )話(huà),以便在后續操作中可以使用這個(gè)token進(jìn)行數據訪(fǎng)問(wèn)。
申請授權地址為:,完整代碼如下:
獲取 access_token
API參考接口:
整個(gè)代碼如下:
獲取最新微博信息列表
API參考接口:
代碼顯示如下:
發(fā)送微博消息
api參考:
代碼顯示如下:
綜上所述
其實(shí)整個(gè)過(guò)程還是很簡(jiǎn)單的。最重要的是前兩步登錄和獲取授??權。這兩步就完成了,后面都是json請求,然后傳參數,拿到結果,再處理結果的問(wèn)題。.
值得注意的是,在獲取access_token的第二步中,官方文檔中寫(xiě)到可以通過(guò)grant_type=password獲取token信息,即輸入用戶(hù)名和密碼。但是這種方式需要特殊的申請,具體的申請步驟比較復雜,必須經(jīng)過(guò)官方審核,非一般開(kāi)發(fā)者也能做好。所以這里就不用這個(gè)了(當然,如果你用這個(gè)方法,可以把第一步和第二步合并成一)。
相關(guān)文章: 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博的開(kāi)發(fā)api,公示如下公示)
注:本文代碼無(wú)效,請勿模仿,其他方法請參考scribe方法
最近在研究新浪微博的開(kāi)發(fā)api,嘗試在一些客戶(hù)端應用中調用相應的api來(lái)發(fā)送新浪微博。經(jīng)過(guò)一番嘗試,終于成功了。幾個(gè)重點(diǎn)和對應的demo公布如下,供大家了解。
在本文中,我主要演示如何通過(guò)用戶(hù)名/密碼連接到新浪微博,然后讀取最新的微博信息,最后演示如何發(fā)送一個(gè)簡(jiǎn)單的微博,其他可以通過(guò)相應的微博api進(jìn)行處理,有這里沒(méi)有仔細深入。
首先要申請開(kāi)發(fā)者授權,也就是要在新浪上申請。直接通過(guò)地址:用微博登錄后,創(chuàng )建一個(gè)應用程序即可。創(chuàng )建應用的目的是獲取對應的app Key和app Secret。app key會(huì )用到后面的主要API中,方便新浪追蹤請求的來(lái)源。具體流程請自行g(shù)oogle。
應用完成后,我們將開(kāi)始我們的api之旅。在本文中,我們沒(méi)有使用官方的java sdk,因為主要目的是一個(gè)簡(jiǎn)單的演示。如果是應用開(kāi)發(fā),還是可以下載對應的java sdk應用。查看示例以了解如何撥打電話(huà)。
本文使用httpclient。如果使用maven,可以使用groupId作為commons-httpclient,使用artifactId作為commons-httpclient,將其導入到項目中。其次,為了方便對返回數據的分析,使用了一個(gè)JSON組件(fastjson)來(lái)解析json字符串。
獲取應用授權,即允許應用訪(fǎng)問(wèn)用戶(hù)的相應信息(用戶(hù)名、密碼除外)
由于新浪使用的是auth2.0,所以整個(gè)登錄過(guò)程分為兩部分。一部分是登錄授權,它允許我們的應用訪(fǎng)問(wèn)指定用戶(hù)的相應信息。這里的信息不包括用戶(hù)名和密碼。. 在類(lèi)網(wǎng)頁(yè)應用中,即通過(guò)彈出新浪登錄框,用戶(hù)輸入用戶(hù)名和密碼,授權應用使用。新浪通過(guò)驗證后,會(huì )返回到我們的應用所在的主界面。第二部分是獲取對應的token,相當于用戶(hù)會(huì )話(huà),以便在后續操作中可以使用這個(gè)token進(jìn)行數據訪(fǎng)問(wèn)。
申請授權地址為:,完整代碼如下:
獲取 access_token
API參考接口:
整個(gè)代碼如下:
獲取最新微博信息列表
API參考接口:
代碼顯示如下:
發(fā)送微博消息
api參考:
代碼顯示如下:
綜上所述
其實(shí)整個(gè)過(guò)程還是很簡(jiǎn)單的。最重要的是前兩步登錄和獲取授??權。這兩步就完成了,后面都是json請求,然后傳參數,拿到結果,再處理結果的問(wèn)題。.
值得注意的是,在獲取access_token的第二步中,官方文檔中寫(xiě)到可以通過(guò)grant_type=password獲取token信息,即輸入用戶(hù)名和密碼。但是這種方式需要特殊的申請,具體的申請步驟比較復雜,必須經(jīng)過(guò)官方審核,非一般開(kāi)發(fā)者也能做好。所以這里就不用這個(gè)了(當然,如果你用這個(gè)方法,可以把第一步和第二步合并成一)。
相關(guān)文章:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 不用插件實(shí)現Wordpress文章同步微博代碼貼到你主題的function.文件)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2021-12-04 06:18
不用插件實(shí)現Wordpress文章同步微博代碼貼到你主題的function.文件)
新浪微博的人氣非常高。幾乎每個(gè)人每天都會(huì )閱讀微博。如果你能將你的wordpress文章同步到新浪微博,你可以獲得大量的社交媒體流量。還有可以實(shí)現同步更新功能的插件,比如評論框。但是今天,我想在這篇文章中介紹的是,無(wú)需插件即可實(shí)現Wordpress文章 同步更新到新浪微博。
1、申請新浪微博應用接入
要實(shí)現微博同步功能,首先需要在新浪微博開(kāi)發(fā)者中心申請權限,然后創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)應用。使用您的新浪微博賬號登錄微博開(kāi)放平臺:。點(diǎn)擊頁(yè)面導航中的【編輯開(kāi)發(fā)者信息】或訪(fǎng)問(wèn):,根據頁(yè)面表單內容填寫(xiě)信息,提交后等待審核。新浪評論一般需要1個(gè)左右的工作。審核通過(guò)后,即可創(chuàng )建應用。然后在微博開(kāi)放平臺首頁(yè)點(diǎn)擊橙色【立即創(chuàng )建微鏈接】->【網(wǎng)站訪(fǎng)問(wèn)】或直接訪(fǎng)問(wèn)填寫(xiě)好的申請信息,提交審核。應用審核時(shí)間會(huì )稍長(cháng)。這段時(shí)間可以使用新浪的開(kāi)放端口進(jìn)行開(kāi)發(fā),
2、Wordpress 同步新浪微博代碼
新浪微博有很多接口供開(kāi)發(fā)者調用,根據需要,我們只需要了解更新發(fā)布接口即可。相關(guān)開(kāi)發(fā)文檔:. 根據開(kāi)發(fā)文檔,我們可以得到如下接口信息:
接口URL:https://api.weibo.com/2/statuses/repost.json
數據格式:JSON
請求方式:POST
請求參數:status(微博內容)、source(AppKey,從開(kāi)發(fā)者中心我的應用中獲?。?br /> 是否需要登陸:是
根據以上微博界面信息,我們可以編寫(xiě)wordpress代碼如下(appkey、用戶(hù)名、用戶(hù)密碼需要自己替換):
/*
文章同步到新浪微博
代碼來(lái)源: www.wpzhinan.com
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修訂版本(更新)不發(fā)微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
$appkey='3838258703';
$username='微博用戶(hù)名';
$userpassword='微博密碼';
$request = new WP_Http;
$status = '【' . strip_tags($get_post_title) . '】 ' . mb_strimwidth(strip_tags(apply_filters('the_content', $get_post_centent)) , 0, 132, '...') . ' 全文地址:' . get_permalink($post_ID);
$api_url = 'https://api.weibo.com/2/statuses/update.json';
$body = array('status' => $status,'source' => $appkey);
$headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array('body' => $body,'headers' => $headers));
}
}
add_action('publish_post', 'post_to_sina_weibo', 0);//給發(fā)布文章增加一個(gè)分享微博的動(dòng)作
將上面的wordpress文章同步微博代碼粘貼到你主題的function.php文件中。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
不用插件實(shí)現Wordpress文章同步微博代碼貼到你主題的function.文件)

新浪微博的人氣非常高。幾乎每個(gè)人每天都會(huì )閱讀微博。如果你能將你的wordpress文章同步到新浪微博,你可以獲得大量的社交媒體流量。還有可以實(shí)現同步更新功能的插件,比如評論框。但是今天,我想在這篇文章中介紹的是,無(wú)需插件即可實(shí)現Wordpress文章 同步更新到新浪微博。
1、申請新浪微博應用接入
要實(shí)現微博同步功能,首先需要在新浪微博開(kāi)發(fā)者中心申請權限,然后創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)應用。使用您的新浪微博賬號登錄微博開(kāi)放平臺:。點(diǎn)擊頁(yè)面導航中的【編輯開(kāi)發(fā)者信息】或訪(fǎng)問(wèn):,根據頁(yè)面表單內容填寫(xiě)信息,提交后等待審核。新浪評論一般需要1個(gè)左右的工作。審核通過(guò)后,即可創(chuàng )建應用。然后在微博開(kāi)放平臺首頁(yè)點(diǎn)擊橙色【立即創(chuàng )建微鏈接】->【網(wǎng)站訪(fǎng)問(wèn)】或直接訪(fǎng)問(wèn)填寫(xiě)好的申請信息,提交審核。應用審核時(shí)間會(huì )稍長(cháng)。這段時(shí)間可以使用新浪的開(kāi)放端口進(jìn)行開(kāi)發(fā),
2、Wordpress 同步新浪微博代碼
新浪微博有很多接口供開(kāi)發(fā)者調用,根據需要,我們只需要了解更新發(fā)布接口即可。相關(guān)開(kāi)發(fā)文檔:. 根據開(kāi)發(fā)文檔,我們可以得到如下接口信息:
接口URL:https://api.weibo.com/2/statuses/repost.json
數據格式:JSON
請求方式:POST
請求參數:status(微博內容)、source(AppKey,從開(kāi)發(fā)者中心我的應用中獲?。?br /> 是否需要登陸:是
根據以上微博界面信息,我們可以編寫(xiě)wordpress代碼如下(appkey、用戶(hù)名、用戶(hù)密碼需要自己替換):
/*
文章同步到新浪微博
代碼來(lái)源: www.wpzhinan.com
*/
function post_to_sina_weibo($post_ID) {
if (wp_is_post_revision($post_ID)) return;//修訂版本(更新)不發(fā)微博
$get_post_info = get_post($post_ID);
$get_post_centent = get_post($post_ID)->post_content;
$get_post_title = get_post($post_ID)->post_title;
if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
$appkey='3838258703';
$username='微博用戶(hù)名';
$userpassword='微博密碼';
$request = new WP_Http;
$status = '【' . strip_tags($get_post_title) . '】 ' . mb_strimwidth(strip_tags(apply_filters('the_content', $get_post_centent)) , 0, 132, '...') . ' 全文地址:' . get_permalink($post_ID);
$api_url = 'https://api.weibo.com/2/statuses/update.json';
$body = array('status' => $status,'source' => $appkey);
$headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword"));
$result = $request->post($api_url, array('body' => $body,'headers' => $headers));
}
}
add_action('publish_post', 'post_to_sina_weibo', 0);//給發(fā)布文章增加一個(gè)分享微博的動(dòng)作
將上面的wordpress文章同步微博代碼粘貼到你主題的function.php文件中。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Java使用新浪微博API開(kāi)發(fā)微博應用的相關(guān)知識和一些)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 82 次瀏覽 ? 2021-12-03 16:01
想了解Java使用新浪微博API開(kāi)發(fā)微博應用的基本方法嗎?在本文中,劉先安將仔細講解Java使用微博API開(kāi)發(fā)應用的相關(guān)知識以及一些代碼示例。歡迎閱讀和糾正我們。先劃重點(diǎn):Java、微博、API,大家一起學(xué)習。
新浪微博API現已廣泛使用,制作完整的開(kāi)發(fā)流程Demo
1、 第一步就是注冊,就不多說(shuō)了。注冊賬號,成為開(kāi)發(fā)者賬號。如果做不到,請立即砸電腦,拔掉網(wǎng)線(xiàn),回家種田。
2、第二步是創(chuàng )建一個(gè)應用程序。創(chuàng )建開(kāi)發(fā)者賬號后,打開(kāi)新浪微博開(kāi)發(fā)平臺:
點(diǎn)擊上方菜單欄中的最后一個(gè)管理中心
如果是web應用,選擇創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)的應用,然后根據新浪微博的要求,balabalabala自己做
應用程序已創(chuàng )建。點(diǎn)擊應用跳轉到頁(yè)面,點(diǎn)擊查看應用參數,可以看到應用的相關(guān)參數,這些參數會(huì )在第四步用到。
3、第三步下載SDK,回到頂部菜單欄,點(diǎn)擊Documents,然后點(diǎn)擊左側菜單欄SDK,選擇java sdk,下載balabala。如果您在這一步有任何問(wèn)題,請回家種田。
所謂sdk并不是sdk(個(gè)人覺(jué)得這個(gè)名字有點(diǎn)誤導),而是一個(gè)可運行的項目。下載后解壓,導入eclipse,可以看到src和example兩個(gè)目錄
src是新浪微博的一部分
example 是一個(gè)例子,一個(gè)界面的演示
4、第四步配置參數,在src目錄找到config.properties
前三個(gè)參數需要配置為第二步中提到的應用參數中的參數。
后者是默認的,不需要更改
前三個(gè)參數配置如下
client_ID 是應用程序密鑰
client_SERCRET 是 App Secret
redirect_URI 就是OAuth2.0 授權回調URL 申請信息>高級信息>OAuth2.0 授權設置 下面這個(gè)授權回調頁(yè)面就是你填寫(xiě)的一個(gè)URL,指向自己的服務(wù)器,當然下開(kāi)發(fā) 在這個(gè)階段,我們可以使用任何 URL,只要它能讓我們了解 OAuth 授權過(guò)程。這里我們進(jìn)入一個(gè)取消授權回調頁(yè)面。也是如此。注意這里的 URL 字符串必須一致。
5、第五步獲取AccessToken。一般情況下,AccessToken必須通過(guò)OAuth2.0認證來(lái)獲取,但是為了簡(jiǎn)單起見(jiàn),我來(lái)說(shuō)一個(gè)簡(jiǎn)單的方法。以后再說(shuō)OAuth2.0
仍然選擇頂部菜單欄Document>API>API Test Tool
選擇創(chuàng )建的應用,點(diǎn)擊獲取AccessToken。下面的文本框就是我們想要的AccessToken
6、 第六步做一個(gè)界面示例
直接去微博API找一個(gè)已有權限的接口,
隨機找了一個(gè)用戶(hù)發(fā)的微博status/user_timeline 用于測試
點(diǎn)擊該界面可以查看該界面的詳細信息,可以查看該界面的各個(gè)傳入參數和返回參數,不再贅述。
不使用任何SDK實(shí)現Oauth授權,實(shí)現簡(jiǎn)單的微博發(fā)布功能:
創(chuàng )建一個(gè)Java項目,編寫(xiě)如下代碼。具體的流程代碼已經(jīng)寫(xiě)的很清楚了,這里就不解釋了:
請注意先將應用ID、應用密碼和回調頁(yè)面修改為您自己的!訪(fǎng)問(wèn)授權頁(yè)面:
package com;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Scanner;
import javax.net.ssl.X509TrustManager;
/**
* @author 劉顯安
* 不使用任何SDK實(shí)現新浪微博Oauth授權并實(shí)現發(fā)微薄小Demo
* 日期:2012年11月11日
*/
public class Test
{
static String clientId="2355065950";//你的應用ID
static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的應用密碼
static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在應用管理中心設置的回調頁(yè)面
public static void main(String[] args) throws Exception
{
testHttps();//測試
//第一步:訪(fǎng)問(wèn)授權頁(yè)面獲取授權
System.out.println("請打開(kāi)你的瀏覽器,訪(fǎng)問(wèn)以下頁(yè)面,登錄你的微博賬號并授權:");
System.out.println("https://api.weibo.com/oauth2/a ... 6quot;);
//第二步:獲取AccessToken
System.out.println("請將授權成功后的頁(yè)面地址欄中的參數code:");
String code=new Scanner(System.in).next();
getAccessToken(code);
//第三步:發(fā)布一條微博
System.out.println("請輸入上面返回的值中accessToken的值:");
String accessToken=new Scanner(System.in).next();
updateStatus("發(fā)布微博測試!來(lái)自WeiboDemo!", accessToken);
}
/**
* 測試能否正常訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站,
*/
public static void testHttps()
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URL url=new URL("https://api.weibo.com/oauth2/default.html");
URLConnection con=url.openConnection();
con.getInputStream();
System.out.println("恭喜,訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站正常!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 以Post方式訪(fǎng)問(wèn)一個(gè)URL
* @param url 要訪(fǎng)問(wèn)的URL
* @param parameters URL后面“?”后面跟著(zhù)的參數
*/
public static void postUrl(String url,String parameters)
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URLConnection conn = new URL(url).openConnection();
conn.setDoOutput(true);// 這里是關(guān)鍵,表示我們要向鏈接里注入的參數
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 獲得連接輸出流
out.write(parameters);
out.flush();
out.close();
// 到這里已經(jīng)完成了,開(kāi)始打印返回的HTML代碼
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 獲取AccessToken
* @param code 在授權頁(yè)面返回的Code
*/
public static void getAccessToken(String code)
{
String url="https://api.weibo.com/oauth2/access_token";
String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+
"&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;
postUrl(url, parameters);
}
/**
* 利用剛獲取的AccessToken發(fā)布一條微博
* @param text 要發(fā)布的微博內容
* @param accessToken 剛獲取的AccessToken
*/
public static void updateStatus(String text,String accessToken)
{
String url="https://api.weibo.com/2/status ... 3B%3B
String parameters="status="+text+"&access_token="+accessToken;
postUrl(url, parameters);
System.out.println("發(fā)布微博成功!");
}
/**
* 設置信任所有的http證書(shū)(正常情況下訪(fǎng)問(wèn)https打頭的網(wǎng)站會(huì )出現證書(shū)不信任相關(guān)錯誤,所以必須在訪(fǎng)問(wèn)前調用此方法)
* @throws Exception
*/
private static void trustAllHttpsCertificates() throws Exception
{
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
trustAllCerts[0] = new X509TrustManager()
{
@Override
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
};
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
}
訪(fǎng)問(wèn)授權頁(yè)面:
授權成功:
成功發(fā)布微博:
控制臺輸出:
相關(guān)文章 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Java使用新浪微博API開(kāi)發(fā)微博應用的相關(guān)知識和一些)
想了解Java使用新浪微博API開(kāi)發(fā)微博應用的基本方法嗎?在本文中,劉先安將仔細講解Java使用微博API開(kāi)發(fā)應用的相關(guān)知識以及一些代碼示例。歡迎閱讀和糾正我們。先劃重點(diǎn):Java、微博、API,大家一起學(xué)習。
新浪微博API現已廣泛使用,制作完整的開(kāi)發(fā)流程Demo
1、 第一步就是注冊,就不多說(shuō)了。注冊賬號,成為開(kāi)發(fā)者賬號。如果做不到,請立即砸電腦,拔掉網(wǎng)線(xiàn),回家種田。
2、第二步是創(chuàng )建一個(gè)應用程序。創(chuàng )建開(kāi)發(fā)者賬號后,打開(kāi)新浪微博開(kāi)發(fā)平臺:
點(diǎn)擊上方菜單欄中的最后一個(gè)管理中心

如果是web應用,選擇創(chuàng )建網(wǎng)站訪(fǎng)問(wèn)的應用,然后根據新浪微博的要求,balabalabala自己做
應用程序已創(chuàng )建。點(diǎn)擊應用跳轉到頁(yè)面,點(diǎn)擊查看應用參數,可以看到應用的相關(guān)參數,這些參數會(huì )在第四步用到。
3、第三步下載SDK,回到頂部菜單欄,點(diǎn)擊Documents,然后點(diǎn)擊左側菜單欄SDK,選擇java sdk,下載balabala。如果您在這一步有任何問(wèn)題,請回家種田。

所謂sdk并不是sdk(個(gè)人覺(jué)得這個(gè)名字有點(diǎn)誤導),而是一個(gè)可運行的項目。下載后解壓,導入eclipse,可以看到src和example兩個(gè)目錄
src是新浪微博的一部分
example 是一個(gè)例子,一個(gè)界面的演示
4、第四步配置參數,在src目錄找到config.properties
前三個(gè)參數需要配置為第二步中提到的應用參數中的參數。
后者是默認的,不需要更改
前三個(gè)參數配置如下
client_ID 是應用程序密鑰
client_SERCRET 是 App Secret
redirect_URI 就是OAuth2.0 授權回調URL 申請信息>高級信息>OAuth2.0 授權設置 下面這個(gè)授權回調頁(yè)面就是你填寫(xiě)的一個(gè)URL,指向自己的服務(wù)器,當然下開(kāi)發(fā) 在這個(gè)階段,我們可以使用任何 URL,只要它能讓我們了解 OAuth 授權過(guò)程。這里我們進(jìn)入一個(gè)取消授權回調頁(yè)面。也是如此。注意這里的 URL 字符串必須一致。
5、第五步獲取AccessToken。一般情況下,AccessToken必須通過(guò)OAuth2.0認證來(lái)獲取,但是為了簡(jiǎn)單起見(jiàn),我來(lái)說(shuō)一個(gè)簡(jiǎn)單的方法。以后再說(shuō)OAuth2.0
仍然選擇頂部菜單欄Document>API>API Test Tool
選擇創(chuàng )建的應用,點(diǎn)擊獲取AccessToken。下面的文本框就是我們想要的AccessToken

6、 第六步做一個(gè)界面示例
直接去微博API找一個(gè)已有權限的接口,
隨機找了一個(gè)用戶(hù)發(fā)的微博status/user_timeline 用于測試

點(diǎn)擊該界面可以查看該界面的詳細信息,可以查看該界面的各個(gè)傳入參數和返回參數,不再贅述。
不使用任何SDK實(shí)現Oauth授權,實(shí)現簡(jiǎn)單的微博發(fā)布功能:
創(chuàng )建一個(gè)Java項目,編寫(xiě)如下代碼。具體的流程代碼已經(jīng)寫(xiě)的很清楚了,這里就不解釋了:
請注意先將應用ID、應用密碼和回調頁(yè)面修改為您自己的!訪(fǎng)問(wèn)授權頁(yè)面:
package com;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Scanner;
import javax.net.ssl.X509TrustManager;
/**
* @author 劉顯安
* 不使用任何SDK實(shí)現新浪微博Oauth授權并實(shí)現發(fā)微薄小Demo
* 日期:2012年11月11日
*/
public class Test
{
static String clientId="2355065950";//你的應用ID
static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的應用密碼
static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在應用管理中心設置的回調頁(yè)面
public static void main(String[] args) throws Exception
{
testHttps();//測試
//第一步:訪(fǎng)問(wèn)授權頁(yè)面獲取授權
System.out.println("請打開(kāi)你的瀏覽器,訪(fǎng)問(wèn)以下頁(yè)面,登錄你的微博賬號并授權:");
System.out.println("https://api.weibo.com/oauth2/a ... 6quot;);
//第二步:獲取AccessToken
System.out.println("請將授權成功后的頁(yè)面地址欄中的參數code:");
String code=new Scanner(System.in).next();
getAccessToken(code);
//第三步:發(fā)布一條微博
System.out.println("請輸入上面返回的值中accessToken的值:");
String accessToken=new Scanner(System.in).next();
updateStatus("發(fā)布微博測試!來(lái)自WeiboDemo!", accessToken);
}
/**
* 測試能否正常訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站,
*/
public static void testHttps()
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URL url=new URL("https://api.weibo.com/oauth2/default.html");
URLConnection con=url.openConnection();
con.getInputStream();
System.out.println("恭喜,訪(fǎng)問(wèn)HTTPS打頭的網(wǎng)站正常!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 以Post方式訪(fǎng)問(wèn)一個(gè)URL
* @param url 要訪(fǎng)問(wèn)的URL
* @param parameters URL后面“?”后面跟著(zhù)的參數
*/
public static void postUrl(String url,String parameters)
{
try
{
trustAllHttpsCertificates();//設置信任所有的http證書(shū)
URLConnection conn = new URL(url).openConnection();
conn.setDoOutput(true);// 這里是關(guān)鍵,表示我們要向鏈接里注入的參數
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 獲得連接輸出流
out.write(parameters);
out.flush();
out.close();
// 到這里已經(jīng)完成了,開(kāi)始打印返回的HTML代碼
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 獲取AccessToken
* @param code 在授權頁(yè)面返回的Code
*/
public static void getAccessToken(String code)
{
String url="https://api.weibo.com/oauth2/access_token";
String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+
"&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;
postUrl(url, parameters);
}
/**
* 利用剛獲取的AccessToken發(fā)布一條微博
* @param text 要發(fā)布的微博內容
* @param accessToken 剛獲取的AccessToken
*/
public static void updateStatus(String text,String accessToken)
{
String url="https://api.weibo.com/2/status ... 3B%3B
String parameters="status="+text+"&access_token="+accessToken;
postUrl(url, parameters);
System.out.println("發(fā)布微博成功!");
}
/**
* 設置信任所有的http證書(shū)(正常情況下訪(fǎng)問(wèn)https打頭的網(wǎng)站會(huì )出現證書(shū)不信任相關(guān)錯誤,所以必須在訪(fǎng)問(wèn)前調用此方法)
* @throws Exception
*/
private static void trustAllHttpsCertificates() throws Exception
{
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
trustAllCerts[0] = new X509TrustManager()
{
@Override
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException
{}
};
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
}
訪(fǎng)問(wèn)授權頁(yè)面:

授權成功:

成功發(fā)布微博:

控制臺輸出:

相關(guān)文章
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( Wave():返回條數限制更新)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 50 次瀏覽 ? 2021-12-03 12:16
Wave():返回條數限制更新)
而且退貨數量沒(méi)有限制!
代碼示例是:
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
CALLBACK_URL = client.get_authorize_url()
print CALLBACK_URL
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 此為我自己寫(xiě)的接口,自動(dòng)獲取code的值
code = API.get_code_Security()
requests = client.request_access_token(code)
access_token = requests.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = requests.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
statuses = client.statuses__home_timeline() # 獲取數據
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 這是我自己寫(xiě)的接口,自動(dòng)獲取code值。下載地址為:(@The_Third_Wave) Python:利用新浪微博API和安全模擬登錄自動(dòng)獲取代碼值:
有新的方法會(huì )不時(shí)更新。
打印信息:
<p>str_sta = json.dumps(statuses)
text_list = re.findall(r"(? 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
Wave():返回條數限制更新)
而且退貨數量沒(méi)有限制!
代碼示例是:
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
CALLBACK_URL = client.get_authorize_url()
print CALLBACK_URL
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 此為我自己寫(xiě)的接口,自動(dòng)獲取code的值
code = API.get_code_Security()
requests = client.request_access_token(code)
access_token = requests.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = requests.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
statuses = client.statuses__home_timeline() # 獲取數據
API = SinaAPI(CALLBACK_URL, APP_KEY, REDIRECT_URL, user, passwd) # 這是我自己寫(xiě)的接口,自動(dòng)獲取code值。下載地址為:(@The_Third_Wave) Python:利用新浪微博API和安全模擬登錄自動(dòng)獲取代碼值:
有新的方法會(huì )不時(shí)更新。
打印信息:
<p>str_sta = json.dumps(statuses)
text_list = re.findall(r"(?