
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Google+Hangout新功能曝光:屏幕共享、谷歌文檔)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 88 次瀏覽 ? 2022-03-05 03:15
9月21日消息,據外媒報道,隨著(zhù)Google+正式向公眾開(kāi)放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同時(shí)也為開(kāi)發(fā)者開(kāi)放了Hangouts API接口。
大約一周前,媒體預測 Google+ 的 API 至少需要幾個(gè)月的時(shí)間。然而,預測后的第二天,谷歌就招募了“值得信賴(lài)的”開(kāi)發(fā)人員對 Google+ API 進(jìn)行內部測試。谷歌當時(shí)不喜歡這個(gè)消息,并試圖尋找告密者。然而,今天,這些 API 已被確認正式開(kāi)放。
據了解,Hangouts API 目前僅處于“開(kāi)發(fā)者預覽”階段,產(chǎn)品尚未成熟,僅開(kāi)放用于測試目的。這些新的 API 允許開(kāi)發(fā)人員在環(huán)聊或 Google 的 YouTube 播放器等實(shí)時(shí)應用程序中創(chuàng )建自己的體驗。Youtube 播放器使 Google+ 用戶(hù)可以通過(guò)環(huán)聊功能同時(shí)觀(guān)看視頻節目。
Google 今天還宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 編輯和繪圖,激勵開(kāi)發(fā)人員充分利用 Hangouts API 來(lái)開(kāi)發(fā)更具創(chuàng )意的應用程序。
API開(kāi)放的消息已經(jīng)在Google+官方博客上看到了。目前,API 開(kāi)發(fā)的重點(diǎn)是共享公共信息,而不是訪(fǎng)問(wèn)用戶(hù)的社交圈。API 的權限是“只讀的”,但這對于喜歡 Google+ 的開(kāi)發(fā)者來(lái)說(shuō)已經(jīng)足夠了。
Google+的核心是圈子,所以只有能夠訪(fǎng)問(wèn)朋友圈的API才是開(kāi)發(fā)者真正期待的。但是,這樣的 API 可能需要等待很長(cháng)時(shí)間,因為它過(guò)于復雜并且涉及棘手的隱私問(wèn)題。
要使用這些 API,開(kāi)發(fā)人員需要創(chuàng )建一個(gè) Web 應用程序并在 Google 注冊。開(kāi)發(fā)者還需要指定允許加載應用程序的開(kāi)發(fā)者,然后程序就可以像普通的 Web 應用程序一樣運行,并且可以同步使用 API。通過(guò)為應用創(chuàng )建“共享狀態(tài)”,用戶(hù)可以即時(shí)獲取參與共享者的狀態(tài)信息。這包括多媒體播放 API 的狀態(tài)信息,Hangout 參與者可以即時(shí)更新其他人的“靜音”、“影評”等信息。
至于 Hangouts,媒體對 Google+ Hangouts 的高度關(guān)注源于 Facebook 提供了許多類(lèi)似的功能,這迫使 Google+ 的受歡迎程度下降。不難想象,谷歌肯定會(huì )推廣新的環(huán)聊功能,并認為這是 Facebook 所沒(méi)有的服務(wù)。雖然 Facebook 已經(jīng)通過(guò)與 Skype 的集成來(lái)提供視頻聊天,但它僅限于兩個(gè)人,而不是一個(gè)群組。
環(huán)聊對開(kāi)發(fā)者來(lái)說(shuō)很有趣,開(kāi)發(fā)者可以創(chuàng )建在線(xiàn)會(huì )議、網(wǎng)絡(luò )播客、在線(xiàn)教程、在線(xiàn)游戲等應用程序,這些應用程序可能會(huì )成為那些付費應用程序的潛在替代品。
谷歌工程師克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上寫(xiě)道,“這些 API 接口允許用戶(hù)獲取發(fā)布在 Google+ 上的公共信息,這對我們來(lái)說(shuō)是一個(gè)開(kāi)始。世界上沒(méi)有好的東西。它建立在一個(gè)真空,現在我們有了這個(gè)基礎,我們可以討論如何讓 Google+ 變得更好?!? 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Google+Hangout新功能曝光:屏幕共享、谷歌文檔)
9月21日消息,據外媒報道,隨著(zhù)Google+正式向公眾開(kāi)放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同時(shí)也為開(kāi)發(fā)者開(kāi)放了Hangouts API接口。

大約一周前,媒體預測 Google+ 的 API 至少需要幾個(gè)月的時(shí)間。然而,預測后的第二天,谷歌就招募了“值得信賴(lài)的”開(kāi)發(fā)人員對 Google+ API 進(jìn)行內部測試。谷歌當時(shí)不喜歡這個(gè)消息,并試圖尋找告密者。然而,今天,這些 API 已被確認正式開(kāi)放。
據了解,Hangouts API 目前僅處于“開(kāi)發(fā)者預覽”階段,產(chǎn)品尚未成熟,僅開(kāi)放用于測試目的。這些新的 API 允許開(kāi)發(fā)人員在環(huán)聊或 Google 的 YouTube 播放器等實(shí)時(shí)應用程序中創(chuàng )建自己的體驗。Youtube 播放器使 Google+ 用戶(hù)可以通過(guò)環(huán)聊功能同時(shí)觀(guān)看視頻節目。
Google 今天還宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 編輯和繪圖,激勵開(kāi)發(fā)人員充分利用 Hangouts API 來(lái)開(kāi)發(fā)更具創(chuàng )意的應用程序。
API開(kāi)放的消息已經(jīng)在Google+官方博客上看到了。目前,API 開(kāi)發(fā)的重點(diǎn)是共享公共信息,而不是訪(fǎng)問(wèn)用戶(hù)的社交圈。API 的權限是“只讀的”,但這對于喜歡 Google+ 的開(kāi)發(fā)者來(lái)說(shuō)已經(jīng)足夠了。
Google+的核心是圈子,所以只有能夠訪(fǎng)問(wèn)朋友圈的API才是開(kāi)發(fā)者真正期待的。但是,這樣的 API 可能需要等待很長(cháng)時(shí)間,因為它過(guò)于復雜并且涉及棘手的隱私問(wèn)題。
要使用這些 API,開(kāi)發(fā)人員需要創(chuàng )建一個(gè) Web 應用程序并在 Google 注冊。開(kāi)發(fā)者還需要指定允許加載應用程序的開(kāi)發(fā)者,然后程序就可以像普通的 Web 應用程序一樣運行,并且可以同步使用 API。通過(guò)為應用創(chuàng )建“共享狀態(tài)”,用戶(hù)可以即時(shí)獲取參與共享者的狀態(tài)信息。這包括多媒體播放 API 的狀態(tài)信息,Hangout 參與者可以即時(shí)更新其他人的“靜音”、“影評”等信息。
至于 Hangouts,媒體對 Google+ Hangouts 的高度關(guān)注源于 Facebook 提供了許多類(lèi)似的功能,這迫使 Google+ 的受歡迎程度下降。不難想象,谷歌肯定會(huì )推廣新的環(huán)聊功能,并認為這是 Facebook 所沒(méi)有的服務(wù)。雖然 Facebook 已經(jīng)通過(guò)與 Skype 的集成來(lái)提供視頻聊天,但它僅限于兩個(gè)人,而不是一個(gè)群組。
環(huán)聊對開(kāi)發(fā)者來(lái)說(shuō)很有趣,開(kāi)發(fā)者可以創(chuàng )建在線(xiàn)會(huì )議、網(wǎng)絡(luò )播客、在線(xiàn)教程、在線(xiàn)游戲等應用程序,這些應用程序可能會(huì )成為那些付費應用程序的潛在替代品。
谷歌工程師克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上寫(xiě)道,“這些 API 接口允許用戶(hù)獲取發(fā)布在 Google+ 上的公共信息,這對我們來(lái)說(shuō)是一個(gè)開(kāi)始。世界上沒(méi)有好的東西。它建立在一個(gè)真空,現在我們有了這個(gè)基礎,我們可以討論如何讓 Google+ 變得更好?!?
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(APPKEY和APPSECRET寫(xiě)進(jìn)去.php訪(fǎng)問(wèn))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 92 次瀏覽 ? 2022-03-04 12:16
1.訪(fǎng)問(wèn),選擇我是開(kāi)發(fā)者,選擇創(chuàng )建應用,填寫(xiě)開(kāi)發(fā)者信息,成功后獲取你的APP KEY和APP SECRET,復制,保存。
2.到接口文檔下載SDK文檔,選擇PHP語(yǔ)言,看到“authentication through OAuth”,我用的是這個(gè),點(diǎn)擊下面鏈接下載解壓到本地應用網(wǎng)站 的根目錄。
3.配置文件config.php,將你的APP KEY和APP SECRET寫(xiě)入其中。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件
此時(shí)你會(huì )發(fā)現出錯了: 注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php 第13行
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,忽略它,點(diǎn)擊下面的鏈接,然后報錯:對不起,那個(gè)頁(yè)面不存在!
仔細查看 index.php。剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此我們不難想到這個(gè)過(guò)程:首先獲取本地配置文件config.php中的APP KEY和APP SECRET,然后我們要驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面上寫(xiě)微博,最后點(diǎn)擊發(fā)布,從新浪官方微博登錄,就可以看到剛才的消息發(fā)布文章消息,下面要標注“from xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,就是它所在目錄的虛擬域名的地址,這樣就可以返回callback.php,這樣就找不到頁(yè)面了。錯誤的。例如:我的本地虛擬凹陷是指向文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那么我將$_SERVER['SCRIPT_URI']改成,連接到下面的/callback.php 就可以了。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weebolist.php。進(jìn)入后你會(huì )驚訝:挺粗糙的,沒(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)入。我的微博,去微博發(fā)布和列表頁(yè)weibolist.php,然后發(fā)布微博,就OK了。剩下的文件weibooauth.php是一個(gè)類(lèi)文件,里面有很多類(lèi)和函數,都是之前用到的。如果你有興趣,你可以研究它,但你可以忽略它。還有一個(gè)我一無(wú)所知的 .DS_Stor。打開(kāi)就是亂碼,我不在乎。估計沒(méi)用。
另外提醒大家注意頁(yè)面的編碼格式,如果出現亂碼請耐心調試。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(APPKEY和APPSECRET寫(xiě)進(jìn)去.php訪(fǎng)問(wèn))
1.訪(fǎng)問(wèn),選擇我是開(kāi)發(fā)者,選擇創(chuàng )建應用,填寫(xiě)開(kāi)發(fā)者信息,成功后獲取你的APP KEY和APP SECRET,復制,保存。
2.到接口文檔下載SDK文檔,選擇PHP語(yǔ)言,看到“authentication through OAuth”,我用的是這個(gè),點(diǎn)擊下面鏈接下載解壓到本地應用網(wǎng)站 的根目錄。
3.配置文件config.php,將你的APP KEY和APP SECRET寫(xiě)入其中。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件
此時(shí)你會(huì )發(fā)現出錯了: 注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php 第13行
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,忽略它,點(diǎn)擊下面的鏈接,然后報錯:對不起,那個(gè)頁(yè)面不存在!
仔細查看 index.php。剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此我們不難想到這個(gè)過(guò)程:首先獲取本地配置文件config.php中的APP KEY和APP SECRET,然后我們要驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面上寫(xiě)微博,最后點(diǎn)擊發(fā)布,從新浪官方微博登錄,就可以看到剛才的消息發(fā)布文章消息,下面要標注“from xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,就是它所在目錄的虛擬域名的地址,這樣就可以返回callback.php,這樣就找不到頁(yè)面了。錯誤的。例如:我的本地虛擬凹陷是指向文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那么我將$_SERVER['SCRIPT_URI']改成,連接到下面的/callback.php 就可以了。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weebolist.php。進(jìn)入后你會(huì )驚訝:挺粗糙的,沒(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)入。我的微博,去微博發(fā)布和列表頁(yè)weibolist.php,然后發(fā)布微博,就OK了。剩下的文件weibooauth.php是一個(gè)類(lèi)文件,里面有很多類(lèi)和函數,都是之前用到的。如果你有興趣,你可以研究它,但你可以忽略它。還有一個(gè)我一無(wú)所知的 .DS_Stor。打開(kāi)就是亂碼,我不在乎。估計沒(méi)用。
另外提醒大家注意頁(yè)面的編碼格式,如果出現亂碼請耐心調試。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇)的相關(guān)內容嗎)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2022-03-02 09:23
想了解新浪微博API開(kāi)發(fā)的用戶(hù)授權(PHP基礎)?、API開(kāi)發(fā)一起學(xué)習
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。開(kāi)發(fā)者平臺的網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和各種語(yǔ)言的API功能介紹、文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天就簡(jiǎn)單整理一下在開(kāi)發(fā)學(xué)習過(guò)程中使用PHP開(kāi)發(fā)新浪微博API的內容。和描述
新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上非常清晰完整。我們可以去檢查一下。這里我將從示例開(kāi)發(fā)的角度來(lái)介紹和解釋。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號或者直接使用我們的新浪微博賬號登錄我的app,按照提示創(chuàng )建自己的第三方app。創(chuàng )建完成后,我們可以得到兩個(gè)授權的App Keys和App Secret值這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵
獲取到授權值后,我們可以使用上面的代碼獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。獲取到$aurl后,我們可以使用header()直接跳轉到授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:可以將此鏈接設置為上一頁(yè),這樣授權完成后會(huì )自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值。需要獲取下方授權的Access Token。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,發(fā)現總是出錯。都是關(guān)于這個(gè)問(wèn)題的。您尚未設置會(huì )話(huà)密鑰值。當然,你不能得到下面的Access Token的值。你必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上面的代碼最終得到了用戶(hù)授權的Access Token的兩個(gè)值。它們存儲在 $last_key 數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。這基本完成了。這是新浪微博用戶(hù)授權的完整流程
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。在這里,我將獲得最新的微博記錄。這個(gè)界面會(huì )給出一個(gè)簡(jiǎn)單的解釋。其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為: public_timeline() 示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常,我們在獲取到用戶(hù)授權的Access Token值后,將其保存在我們的用戶(hù)表中,并對應于我們應用程序中的賬戶(hù)。我們調用新浪微博的各個(gè)api接口后,不需要每次都進(jìn)行認證。
上面的代碼很簡(jiǎn)單,就是將 WeiboClient 對象實(shí)例化,然后直接調用接口函數 public_timeline 來(lái)獲取返回的信息。如果沒(méi)有報錯,新浪微博api接口返回的數據格式一般是Json格式或者xml格式,我們這里使用php。對于開(kāi)發(fā)來(lái)說(shuō),使用 Json 格式的數據具有先天的優(yōu)勢。如果返回Json格式數據,可以直接使用php函數json_decode()將其轉換為php常用的數組格式。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇)的相關(guān)內容嗎)
想了解新浪微博API開(kāi)發(fā)的用戶(hù)授權(PHP基礎)?、API開(kāi)發(fā)一起學(xué)習
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。開(kāi)發(fā)者平臺的網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和各種語(yǔ)言的API功能介紹、文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天就簡(jiǎn)單整理一下在開(kāi)發(fā)學(xué)習過(guò)程中使用PHP開(kāi)發(fā)新浪微博API的內容。和描述
新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上非常清晰完整。我們可以去檢查一下。這里我將從示例開(kāi)發(fā)的角度來(lái)介紹和解釋。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號或者直接使用我們的新浪微博賬號登錄我的app,按照提示創(chuàng )建自己的第三方app。創(chuàng )建完成后,我們可以得到兩個(gè)授權的App Keys和App Secret值這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵
獲取到授權值后,我們可以使用上面的代碼獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。獲取到$aurl后,我們可以使用header()直接跳轉到授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:可以將此鏈接設置為上一頁(yè),這樣授權完成后會(huì )自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值。需要獲取下方授權的Access Token。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,發(fā)現總是出錯。都是關(guān)于這個(gè)問(wèn)題的。您尚未設置會(huì )話(huà)密鑰值。當然,你不能得到下面的Access Token的值。你必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上面的代碼最終得到了用戶(hù)授權的Access Token的兩個(gè)值。它們存儲在 $last_key 數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。這基本完成了。這是新浪微博用戶(hù)授權的完整流程
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。在這里,我將獲得最新的微博記錄。這個(gè)界面會(huì )給出一個(gè)簡(jiǎn)單的解釋。其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為: public_timeline() 示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常,我們在獲取到用戶(hù)授權的Access Token值后,將其保存在我們的用戶(hù)表中,并對應于我們應用程序中的賬戶(hù)。我們調用新浪微博的各個(gè)api接口后,不需要每次都進(jìn)行認證。
上面的代碼很簡(jiǎn)單,就是將 WeiboClient 對象實(shí)例化,然后直接調用接口函數 public_timeline 來(lái)獲取返回的信息。如果沒(méi)有報錯,新浪微博api接口返回的數據格式一般是Json格式或者xml格式,我們這里使用php。對于開(kāi)發(fā)來(lái)說(shuō),使用 Json 格式的數據具有先天的優(yōu)勢。如果返回Json格式數據,可以直接使用php函數json_decode()將其轉換為php常用的數組格式。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 78 次瀏覽 ? 2022-03-01 18:27
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 81 次瀏覽 ? 2022-03-01 18:27
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(比較簡(jiǎn)單的操作,老鳥(niǎo)可飛過(guò),只為新手指路!)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 405 次瀏覽 ? 2022-03-01 12:17
換句話(huà)說(shuō),我一年前就想寫(xiě)這個(gè),我從來(lái)沒(méi)有想過(guò)。最近發(fā)現很多人都在做這方面的申請(雖然RR傷心,陌陌準備出發(fā)),但還是總結一下自己的經(jīng)驗,分享給有需要的朋友!其實(shí)也是比較簡(jiǎn)單的操作,老鳥(niǎo)會(huì )飛,只適合新手。
QQ同時(shí)登錄
將上述地址放在前端頁(yè)面點(diǎn)擊鏈接調用TX第三方對應的登錄界面(有PAD、手機、PC類(lèi)型),輸入TX賬號登錄并授權(前提是您的站點(diǎn)已通過(guò)認證),否則只能使用測試賬號登錄(申請注冊的賬號)。
授權完成后,可以進(jìn)入回調頁(yè)面進(jìn)行操作或獲取用戶(hù)信息等。獲取登錄用戶(hù)信息的接口為get_user_info,調用如下:
1
https://graph.qq.com/user/get_ ... PENID
將access_token替換為登錄后返回地址欄的access_token,oauth_consumer_key為申請的appid,openid在授權過(guò)程中生成,可直接獲取。調用 $->get_openid() 來(lái)獲取它。這是一個(gè)簡(jiǎn)單的TX登錄授權和獲取用戶(hù)信息。
同步登錄新浪
將獲取的登錄地址放在前端,點(diǎn)擊跳轉微博第三方登錄界面。這里還可以設置各種終端的來(lái)電顯示效果。比較完美的一點(diǎn)是提供了各種調用結果錯誤碼的解釋?zhuān)梢詭椭率指旄行У氖褂?。授權完成后,可以調用回調頁(yè)面獲取用戶(hù)信息等操作。由于微博的接口功能比較多,就不一一舉例了(附在SDK文末)。
RR 同步登錄
和上面兩個(gè)例子一樣,操作完成后,對應的回調頁(yè)面就可以處理結果了?。ǜ皆赟DK文章末尾)
SDK下載:QQSDK、WBSDK、RRSDK
?。ńY束) 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(比較簡(jiǎn)單的操作,老鳥(niǎo)可飛過(guò),只為新手指路!)
換句話(huà)說(shuō),我一年前就想寫(xiě)這個(gè),我從來(lái)沒(méi)有想過(guò)。最近發(fā)現很多人都在做這方面的申請(雖然RR傷心,陌陌準備出發(fā)),但還是總結一下自己的經(jīng)驗,分享給有需要的朋友!其實(shí)也是比較簡(jiǎn)單的操作,老鳥(niǎo)會(huì )飛,只適合新手。
QQ同時(shí)登錄
將上述地址放在前端頁(yè)面點(diǎn)擊鏈接調用TX第三方對應的登錄界面(有PAD、手機、PC類(lèi)型),輸入TX賬號登錄并授權(前提是您的站點(diǎn)已通過(guò)認證),否則只能使用測試賬號登錄(申請注冊的賬號)。
授權完成后,可以進(jìn)入回調頁(yè)面進(jìn)行操作或獲取用戶(hù)信息等。獲取登錄用戶(hù)信息的接口為get_user_info,調用如下:
1
https://graph.qq.com/user/get_ ... PENID
將access_token替換為登錄后返回地址欄的access_token,oauth_consumer_key為申請的appid,openid在授權過(guò)程中生成,可直接獲取。調用 $->get_openid() 來(lái)獲取它。這是一個(gè)簡(jiǎn)單的TX登錄授權和獲取用戶(hù)信息。
同步登錄新浪
將獲取的登錄地址放在前端,點(diǎn)擊跳轉微博第三方登錄界面。這里還可以設置各種終端的來(lái)電顯示效果。比較完美的一點(diǎn)是提供了各種調用結果錯誤碼的解釋?zhuān)梢詭椭率指旄行У氖褂?。授權完成后,可以調用回調頁(yè)面獲取用戶(hù)信息等操作。由于微博的接口功能比較多,就不一一舉例了(附在SDK文末)。
RR 同步登錄
和上面兩個(gè)例子一樣,操作完成后,對應的回調頁(yè)面就可以處理結果了?。ǜ皆赟DK文章末尾)
SDK下載:QQSDK、WBSDK、RRSDK
?。ńY束)
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博ID獲取用戶(hù)發(fā)布過(guò)的歷史微博內容研究了)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 77 次瀏覽 ? 2022-02-28 05:07
上面調用的是通過(guò)微博ID獲取用戶(hù)發(fā)布的歷史微博內容,所以研究了一下新浪微博提供的API。
1 首先,在微博開(kāi)放中心下的“創(chuàng )建應用”下創(chuàng )建一個(gè)應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您只需要應用程序密鑰和應用程序秘密
2 在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側“應用信息”一欄,會(huì )看到“應用密鑰”和“應用程序秘密”。稍后將在程序中使用這些東西。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
3 去下載新浪微博SDK,python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
4 實(shí)例驗證碼,通過(guò)微博提供的API抓取授權用戶(hù)及其關(guān)注者的微博:這里需要注意的是,當瀏覽器彈出頁(yè)面時(shí),必須先點(diǎn)擊“授權”(OAuth 2認證在這里執行,我了解到,用戶(hù)訪(fǎng)問(wèn)我的應用程序后,頁(yè)面被定向到新浪服務(wù)器,然后用戶(hù)向新浪服務(wù)器輸入信息,授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據,網(wǎng)址類(lèi)似:復制代碼后代碼到控制端,程序需要讀取數據2024222384d5dc88316d21675259d73a
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser#python內置的包
import pymongo
from pymongo import MongoClient
APP_KEY = '剛才那個(gè)App Key'#注意替換這里為自己申請的App信息
APP_SECRET = '剛才那個(gè)App Secret'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'#回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
'''
#可以打印下看看里面都有什么東西
#print client.statuses__public_timeline()
statuses = client.statuses__public_timeline()['statuses']
length = len(statuses)
#輸出了部分信息
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']
'''
#獲取授權用戶(hù)及其關(guān)注好友的微博信息并寫(xiě)入mongo數據庫
pagenum=1#微博API返回的微博數據是分頁(yè)形式的,在A(yíng)PI中通過(guò)設置頁(yè)碼來(lái)讀取數據
write_location=MongoClient('localhost',27017)['data']['weiboapi_test']#這里是我自己的mongo數據庫,不用mongo存儲可以注釋掉
while(True):
data=client.statuses.friends_timeline.get(page=pagenum)['statuses']
if data:
pagenum+=1#不斷獲取新的頁(yè)面
for i in range(len(data)):
write_location.insert(data[i])#不用mongo存儲可以注釋掉,直接改為print data[i]打印微博數據
else:#如果讀取完數據則結束
break
在命令行執行:
python weibo_api.py #假設上述程序文件名為weibo_api.py
將出現以下文本:
輸入url中code后面的內容,按回車(chē)鍵:
在現有瀏覽器會(huì )話(huà)中創(chuàng )建了一個(gè)新窗口。
2024222384d5dc88316d21675259d73a #注意這里要在上面授權瀏覽器的URL中輸入code后面的東西
最后,mongo 中的數據如下所示:
in_reply_to_screen_name”:“”,“user”:{“bi_followers_count”:99,“domain”:“rebo??l”,“avatar_large”:“”,“verified_source”:“”,“ptype”:3,“statuses_count”:5902 ,“allow_all_comment”:true,“id”:1614282004,“verified_reason_url”:“”,“city”:“1”,“province”:“71”,“block_app”:0,“follow_me”:false,“verified_reason 》:《銀聯(lián)移動(dòng)支付首席產(chǎn)品架構師;《Programming》和《Java Sleepless》的作者,“followers_count”:100833,“l(fā)ocation”:“臺灣臺北市”,“verified_trade”:“”,“mbtype”:2,“
新浪微博API無(wú)法通過(guò)指定ID提取用戶(hù)的微博內容,除非是高級授權用戶(hù)。像我這樣的刁四沒(méi)有這樣的福氣。要捕獲少量用戶(hù),可以關(guān)注所有捕獲的用戶(hù),然后授權用戶(hù)捕獲自己和朋友的微博。不太可行??磥?lái),對于大量用戶(hù)來(lái)說(shuō),獲取微博數據的唯一方法就是編寫(xiě)爬蟲(chóng)來(lái)解析頁(yè)面。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博ID獲取用戶(hù)發(fā)布過(guò)的歷史微博內容研究了)
上面調用的是通過(guò)微博ID獲取用戶(hù)發(fā)布的歷史微博內容,所以研究了一下新浪微博提供的API。
1 首先,在微博開(kāi)放中心下的“創(chuàng )建應用”下創(chuàng )建一個(gè)應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您只需要應用程序密鑰和應用程序秘密
2 在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側“應用信息”一欄,會(huì )看到“應用密鑰”和“應用程序秘密”。稍后將在程序中使用這些東西。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
3 去下載新浪微博SDK,python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
4 實(shí)例驗證碼,通過(guò)微博提供的API抓取授權用戶(hù)及其關(guān)注者的微博:這里需要注意的是,當瀏覽器彈出頁(yè)面時(shí),必須先點(diǎn)擊“授權”(OAuth 2認證在這里執行,我了解到,用戶(hù)訪(fǎng)問(wèn)我的應用程序后,頁(yè)面被定向到新浪服務(wù)器,然后用戶(hù)向新浪服務(wù)器輸入信息,授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據,網(wǎng)址類(lèi)似:復制代碼后代碼到控制端,程序需要讀取數據2024222384d5dc88316d21675259d73a
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser#python內置的包
import pymongo
from pymongo import MongoClient
APP_KEY = '剛才那個(gè)App Key'#注意替換這里為自己申請的App信息
APP_SECRET = '剛才那個(gè)App Secret'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'#回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
'''
#可以打印下看看里面都有什么東西
#print client.statuses__public_timeline()
statuses = client.statuses__public_timeline()['statuses']
length = len(statuses)
#輸出了部分信息
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']
'''
#獲取授權用戶(hù)及其關(guān)注好友的微博信息并寫(xiě)入mongo數據庫
pagenum=1#微博API返回的微博數據是分頁(yè)形式的,在A(yíng)PI中通過(guò)設置頁(yè)碼來(lái)讀取數據
write_location=MongoClient('localhost',27017)['data']['weiboapi_test']#這里是我自己的mongo數據庫,不用mongo存儲可以注釋掉
while(True):
data=client.statuses.friends_timeline.get(page=pagenum)['statuses']
if data:
pagenum+=1#不斷獲取新的頁(yè)面
for i in range(len(data)):
write_location.insert(data[i])#不用mongo存儲可以注釋掉,直接改為print data[i]打印微博數據
else:#如果讀取完數據則結束
break
在命令行執行:
python weibo_api.py #假設上述程序文件名為weibo_api.py
將出現以下文本:
輸入url中code后面的內容,按回車(chē)鍵:
在現有瀏覽器會(huì )話(huà)中創(chuàng )建了一個(gè)新窗口。
2024222384d5dc88316d21675259d73a #注意這里要在上面授權瀏覽器的URL中輸入code后面的東西
最后,mongo 中的數據如下所示:
in_reply_to_screen_name”:“”,“user”:{“bi_followers_count”:99,“domain”:“rebo??l”,“avatar_large”:“”,“verified_source”:“”,“ptype”:3,“statuses_count”:5902 ,“allow_all_comment”:true,“id”:1614282004,“verified_reason_url”:“”,“city”:“1”,“province”:“71”,“block_app”:0,“follow_me”:false,“verified_reason 》:《銀聯(lián)移動(dòng)支付首席產(chǎn)品架構師;《Programming》和《Java Sleepless》的作者,“followers_count”:100833,“l(fā)ocation”:“臺灣臺北市”,“verified_trade”:“”,“mbtype”:2,“
新浪微博API無(wú)法通過(guò)指定ID提取用戶(hù)的微博內容,除非是高級授權用戶(hù)。像我這樣的刁四沒(méi)有這樣的福氣。要捕獲少量用戶(hù),可以關(guān)注所有捕獲的用戶(hù),然后授權用戶(hù)捕獲自己和朋友的微博。不太可行??磥?lái),對于大量用戶(hù)來(lái)說(shuō),獲取微博數據的唯一方法就是編寫(xiě)爬蟲(chóng)來(lái)解析頁(yè)面。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博SDK支持多種語(yǔ)言.0創(chuàng )建應用應用創(chuàng )建成功(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 69 次瀏覽 ? 2022-02-28 05:06
當采集微博數據時(shí),我們可以使用微博API進(jìn)行調用。調用微博API有兩個(gè)任務(wù),第一步是創(chuàng )建應用程序,第二步是安裝微博SDK。
創(chuàng )建應用
創(chuàng )建應用的目的是獲取app-key和app-secret,設置授權回調頁(yè)面。
登錄微博開(kāi)放平臺創(chuàng )建應用
應用名稱(chēng)及后續信息隨便填寫(xiě)即可。填寫(xiě)后,無(wú)需提交審核。您所需要的只是應用程序密鑰和應用程序秘密。應用創(chuàng )建成功后,在“我的應用”中可以看到剛剛創(chuàng )建的應用的詳細信息,在“應用信息”中可以找到App Key和App Secret,后面會(huì )用到。
然后打開(kāi)上方“申請信息”中的“高級信息”,然后點(diǎn)擊“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。至此,第一步已經(jīng)完成。
安裝微博SDK
微博SDK鏈接,微博SDK支持多種語(yǔ)言,本文以php為例說(shuō)明操作。
新浪微博的授權機制,即OAuth 2
API 調用需要用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權流程請參考如下流程圖,其中Client指的是第三方應用(即我們自己在第三步創(chuàng )建的應用),Resource Owner指的是用戶(hù),授權服務(wù)器是我們的授權服務(wù)器,資源服務(wù)器是API服務(wù)器。
從流程圖可以看出,為了調用API server內容,需要將access token告訴API server;訪(fǎng)問(wèn)令牌由新浪(授權服務(wù)器)在用戶(hù)授權后返回給我們創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們的應用首先要給用戶(hù)授權頁(yè)面(授權請求)。
獲取授權請求url
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$code_url = $o->getAuthorizeURL(WB_CALLBACK_URL);
在瀏覽器地址欄輸入授權url回車(chē),瀏覽器會(huì )彈出一個(gè)頁(yè)面,必須先點(diǎn)擊“Authorize”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面指向新浪服務(wù)器然后用戶(hù)將信息輸入新浪服務(wù)器并授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據后,這里我授權微博給如下程序),授權后瀏覽器中的URL類(lèi)似:
代碼是授權授予
獲取訪(fǎng)問(wèn)令牌
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)被用戶(hù)授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,我們就可以從API服務(wù)器獲取微博數據了。
$keys = 數組();
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$keys['code'] = '89c143736a55980bd2e82460b1092c88';
//fe080b632eec18452a9ec8eea3c4b748
$keys['redirect_uri'] = WB_CALLBACK_URL;
嘗試 {
$token = $o->getAccessToken('code', $keys);
}
捕捉(OAuthException $e){
echo "getAccessToken fail.reason:".$e->getMessage()."\n";
}
var_dump($token);//expire_in表示access_token的有效期
$accessToken = $token["access_token"];
3.獲取微博數據,編寫(xiě)代碼調用微博api
$accessToken = '2.00S_7idC0psiN42941abc2354ymrJC';
$c = 新 SaeTClientV2( WB_AKEY , WB_SKEY , $accessToken );
$ret = $c->show_user_by_name('小二來(lái)了一噸白菜');
2013年7月2日起,微博開(kāi)放平臺將升級用戶(hù)關(guān)系閱讀和微博內容閱讀界面;為保證您在線(xiàn)申請的正常運行,請在7月2日升級前更新以下界面;本次升級對微博客戶(hù)端和合規應用沒(méi)有影響。升級過(guò)程中,如果遇到任何問(wèn)題,請私信@微博開(kāi)放平臺,感謝您的理解與支持!具體調整界面如下:
獲取當前登錄用戶(hù)發(fā)布的微博消息列表(2/statuses/user_timeline)
獲取當前登錄用戶(hù)發(fā)布的微博消息ID列表(2/statuses/user_timeline/ids)
獲取用戶(hù)的關(guān)注列表(2/friendships/friends)
獲取常見(jiàn)關(guān)注者列表(2/friendships/friends/in_common)
獲取雙向關(guān)注列表(2/好友/好友/雙邊)
獲取雙邊關(guān)注者的UID列表(2/friendships/friends/bilateral/ids)
獲取用戶(hù)關(guān)注對象的UID列表(2/friendships/friends/ids)
獲取用戶(hù)的關(guān)注者列表(2/friendships/followers)
獲取用戶(hù)關(guān)注者 UID 列表(2/friendships/followers/ids)
獲取用戶(hù)優(yōu)質(zhì)關(guān)注者列表(2/好友/關(guān)注者/活躍)
即:接口升級后:uid和screen_name只能是當前授權用戶(hù),第三方微博客戶(hù)端不受影響 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博SDK支持多種語(yǔ)言.0創(chuàng )建應用應用創(chuàng )建成功(組圖))
當采集微博數據時(shí),我們可以使用微博API進(jìn)行調用。調用微博API有兩個(gè)任務(wù),第一步是創(chuàng )建應用程序,第二步是安裝微博SDK。
創(chuàng )建應用
創(chuàng )建應用的目的是獲取app-key和app-secret,設置授權回調頁(yè)面。
登錄微博開(kāi)放平臺創(chuàng )建應用
應用名稱(chēng)及后續信息隨便填寫(xiě)即可。填寫(xiě)后,無(wú)需提交審核。您所需要的只是應用程序密鑰和應用程序秘密。應用創(chuàng )建成功后,在“我的應用”中可以看到剛剛創(chuàng )建的應用的詳細信息,在“應用信息”中可以找到App Key和App Secret,后面會(huì )用到。

然后打開(kāi)上方“申請信息”中的“高級信息”,然后點(diǎn)擊“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。至此,第一步已經(jīng)完成。
安裝微博SDK
微博SDK鏈接,微博SDK支持多種語(yǔ)言,本文以php為例說(shuō)明操作。

新浪微博的授權機制,即OAuth 2
API 調用需要用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權流程請參考如下流程圖,其中Client指的是第三方應用(即我們自己在第三步創(chuàng )建的應用),Resource Owner指的是用戶(hù),授權服務(wù)器是我們的授權服務(wù)器,資源服務(wù)器是API服務(wù)器。
從流程圖可以看出,為了調用API server內容,需要將access token告訴API server;訪(fǎng)問(wèn)令牌由新浪(授權服務(wù)器)在用戶(hù)授權后返回給我們創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們的應用首先要給用戶(hù)授權頁(yè)面(授權請求)。
獲取授權請求url
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$code_url = $o->getAuthorizeURL(WB_CALLBACK_URL);
在瀏覽器地址欄輸入授權url回車(chē),瀏覽器會(huì )彈出一個(gè)頁(yè)面,必須先點(diǎn)擊“Authorize”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面指向新浪服務(wù)器然后用戶(hù)將信息輸入新浪服務(wù)器并授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據后,這里我授權微博給如下程序),授權后瀏覽器中的URL類(lèi)似:
代碼是授權授予
獲取訪(fǎng)問(wèn)令牌
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)被用戶(hù)授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,我們就可以從API服務(wù)器獲取微博數據了。
$keys = 數組();
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$keys['code'] = '89c143736a55980bd2e82460b1092c88';
//fe080b632eec18452a9ec8eea3c4b748
$keys['redirect_uri'] = WB_CALLBACK_URL;
嘗試 {
$token = $o->getAccessToken('code', $keys);
}
捕捉(OAuthException $e){
echo "getAccessToken fail.reason:".$e->getMessage()."\n";
}
var_dump($token);//expire_in表示access_token的有效期
$accessToken = $token["access_token"];
3.獲取微博數據,編寫(xiě)代碼調用微博api
$accessToken = '2.00S_7idC0psiN42941abc2354ymrJC';
$c = 新 SaeTClientV2( WB_AKEY , WB_SKEY , $accessToken );
$ret = $c->show_user_by_name('小二來(lái)了一噸白菜');
2013年7月2日起,微博開(kāi)放平臺將升級用戶(hù)關(guān)系閱讀和微博內容閱讀界面;為保證您在線(xiàn)申請的正常運行,請在7月2日升級前更新以下界面;本次升級對微博客戶(hù)端和合規應用沒(méi)有影響。升級過(guò)程中,如果遇到任何問(wèn)題,請私信@微博開(kāi)放平臺,感謝您的理解與支持!具體調整界面如下:
獲取當前登錄用戶(hù)發(fā)布的微博消息列表(2/statuses/user_timeline)
獲取當前登錄用戶(hù)發(fā)布的微博消息ID列表(2/statuses/user_timeline/ids)
獲取用戶(hù)的關(guān)注列表(2/friendships/friends)
獲取常見(jiàn)關(guān)注者列表(2/friendships/friends/in_common)
獲取雙向關(guān)注列表(2/好友/好友/雙邊)
獲取雙邊關(guān)注者的UID列表(2/friendships/friends/bilateral/ids)
獲取用戶(hù)關(guān)注對象的UID列表(2/friendships/friends/ids)
獲取用戶(hù)的關(guān)注者列表(2/friendships/followers)
獲取用戶(hù)關(guān)注者 UID 列表(2/friendships/followers/ids)
獲取用戶(hù)優(yōu)質(zhì)關(guān)注者列表(2/好友/關(guān)注者/活躍)
即:接口升級后:uid和screen_name只能是當前授權用戶(hù),第三方微博客戶(hù)端不受影響
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(OAuth2未對微博的access_token導致任意用戶(hù)登陸這個(gè)問(wèn)題)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 96 次瀏覽 ? 2022-02-27 22:05
顯示結果
鑒于這篇文章寫(xiě)的亂七八糟,我真的怕有些同學(xué)因為保護視力而不會(huì )繼續閱讀,所以我先把通過(guò)后文描述的兩種方法發(fā)現的一小部分漏洞作為吸引力放出來(lái)。
OAuth2授權訪(fǎng)問(wèn)的隱式模式
首先我們來(lái)看看OAuth的定義:OAuth(Open Authorization)是一個(gè)開(kāi)放的標準,它允許用戶(hù)授權第三方網(wǎng)站訪(fǎng)問(wèn)他們存儲在另一個(gè)服務(wù)提供商上的信息,而不需要向Third提供用戶(hù)名和密碼各方網(wǎng)站或共享其數據的所有內容。
在大家測試的過(guò)程中,常見(jiàn)的快捷方式登錄是授權碼模式(authorization_code),即應用(QQ/微博)給出授權碼code,服務(wù)器將code換成access_token,然后進(jìn)行下一個(gè)請求。
從我們的外部來(lái)看,大致流程如下:
訪(fǎng)問(wèn)網(wǎng)站a,選擇微博快速登錄,跳轉到,微博用戶(hù)點(diǎn)擊授權,然后從攜帶code參數跳轉回網(wǎng)站a,我們的應用會(huì )在終端獲取到code調用第三方提供的api獲取uid和access_token,這里參考微博給出的api文檔
下一步可以繼續通過(guò)access_token請求其他第三方API,看一下account/get_uid
如上圖所示,通過(guò)access_token請求該接口即可返回uid。
上面的描述都是關(guān)于授權碼模式的。其實(shí)隱式模式和授權碼模式很相似,只是少了一步code="access_token。第三方會(huì )直接提供access_token給開(kāi)發(fā)者使用,不再給出code。
1.微博access_token校驗失敗,導致任意用戶(hù)登錄
這個(gè)問(wèn)題在多個(gè)應用中都出現過(guò),我測試過(guò)的應用中大約有10%的應用存在這個(gè)問(wèn)題,如果出現后果可能很?chē)乐?。此使用方式針對微博快速登錄的應用?br /> 應用中的微博快速登錄是通過(guò)調用微博應用請求,然后獲取請求的返回access_token和uid,所以應用中沒(méi)有微博快速登錄的代碼,這是我們的第一段。提到的隱式模式。獲取access_token的請求如下:
大部分應用會(huì )獲取返回的access_token,使用微博的api進(jìn)行操作,但應用只獲取uid,沒(méi)有驗證access_token,然后代入數據庫查詢(xún),存在任意登錄的問(wèn)題。
一個(gè)案例:
在這個(gè)應用中,點(diǎn)擊微博快速登錄,然后調出微博應用,注意上面截圖中的請求,修改請求返回的uid,釋放所有后續請求。
至此,微博綁定的賬號已經(jīng)無(wú)權限登錄,所有功能都可以使用。
原因如下,注意在應用中的請求中有一個(gè):,
這是最關(guān)鍵的set-cookie請求,其中請求參數open_id是剛剛返回的微博賬號的用戶(hù)uid,也就是我們剛才修改的返回包的值。
微信快速登錄也是這種隱式模式,但是這種攻擊方式并不適合微信快速登錄。首先,微信公眾號的open_id不是公開(kāi)內容。當然,如果你想自己搭建一個(gè)第三方登錄平臺,也可以獲取微信用戶(hù)的信息。open_id 也是不行的,因為同一個(gè)微信賬號為不同的app生成的open_id是不同的,所以不能使用。我喜歡這里的微信。
這里補充一下如何獲取指定微博賬號的uid,查看用戶(hù)頁(yè)面源碼搜索:$CONFIG['oid']
修復方法:
如果一定要使用uid,使用這個(gè)接口來(lái)驗證access_token:
要求獲取返回的 uid,不要相信用戶(hù)輸入給您的 uid。
2.微博access_token驗證不嚴格,導致交互后賬號被劫持
99%的應用都存在這種問(wèn)題,這種利用方式只針對微博的快速登錄。這種問(wèn)題的危害沒(méi)有第一種那么明顯。這是一種需要互動(dòng)的漏洞。我隨機提交了幾家公司來(lái)觀(guān)察廠(chǎng)商的反應。其中大部分為中風(fēng)險,少數為高風(fēng)險。一些制造商的家中有大量應用程序。有了這個(gè)問(wèn)題,打包提交也可以給出高風(fēng)險的獎勵。更多廠(chǎng)商評分,看你的投稿結果~
當應用程序沒(méi)有第二個(gè)問(wèn)題時(shí),它不一定是完全沒(méi)有風(fēng)險的??梢钥吹矫總€(gè)微博api請求只需要一個(gè)access_token憑證,不需要一些appid或者uid信息。
其中有一些非常簡(jiǎn)單的請求,例如:
如果客戶(hù)端獲取到微博賬號的uid和access_token,進(jìn)行檢查。但是,如果我們只是通過(guò)這樣一個(gè)類(lèi)似的接口通過(guò)access_token請求獲取uid,然后認為uid就是我們的用戶(hù),這是不正確的。
下面我們來(lái)看看如何使用它:
我像這樣在微博開(kāi)發(fā)者上構建了一個(gè)應用程序
Oauth2.0 授權回調頁(yè)面是攻擊者的站點(diǎn)。
這里的快速登錄鏈接是:
%3A%2F%2F%2f&狀態(tài)=30
登錄后會(huì )帶代碼進(jìn)入百度(其實(shí)就是進(jìn)入攻擊者的站點(diǎn)):
從官方手冊來(lái)看,代碼是這樣使用的:
此時(shí)攻擊者獲取到用戶(hù)的access_token和uid
回到第一個(gè)exploit方法:
這次如果同時(shí)更換access_token和uid,就可以登錄別人綁定的賬號了。
原因是這次不用同時(shí)更換access_token和uid就可以登錄別人綁定的賬號了。
原因是沒(méi)通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。
1.訪(fǎng)問(wèn)攻擊者微博快速登錄
2.攻擊者獲取代碼->獲取access_token和uid
3.其他應用賬號被劫持
修復方法:
通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。
最后
如今,國內外幾乎每個(gè)站點(diǎn)都有第三方快速登錄。中國的主流可能是QQ/微博/微信。當然,還有其他的快速登錄方式。多種快捷登錄漏洞。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(OAuth2未對微博的access_token導致任意用戶(hù)登陸這個(gè)問(wèn)題)
顯示結果
鑒于這篇文章寫(xiě)的亂七八糟,我真的怕有些同學(xué)因為保護視力而不會(huì )繼續閱讀,所以我先把通過(guò)后文描述的兩種方法發(fā)現的一小部分漏洞作為吸引力放出來(lái)。



OAuth2授權訪(fǎng)問(wèn)的隱式模式
首先我們來(lái)看看OAuth的定義:OAuth(Open Authorization)是一個(gè)開(kāi)放的標準,它允許用戶(hù)授權第三方網(wǎng)站訪(fǎng)問(wèn)他們存儲在另一個(gè)服務(wù)提供商上的信息,而不需要向Third提供用戶(hù)名和密碼各方網(wǎng)站或共享其數據的所有內容。
在大家測試的過(guò)程中,常見(jiàn)的快捷方式登錄是授權碼模式(authorization_code),即應用(QQ/微博)給出授權碼code,服務(wù)器將code換成access_token,然后進(jìn)行下一個(gè)請求。
從我們的外部來(lái)看,大致流程如下:

訪(fǎng)問(wèn)網(wǎng)站a,選擇微博快速登錄,跳轉到,微博用戶(hù)點(diǎn)擊授權,然后從攜帶code參數跳轉回網(wǎng)站a,我們的應用會(huì )在終端獲取到code調用第三方提供的api獲取uid和access_token,這里參考微博給出的api文檔
下一步可以繼續通過(guò)access_token請求其他第三方API,看一下account/get_uid

如上圖所示,通過(guò)access_token請求該接口即可返回uid。
上面的描述都是關(guān)于授權碼模式的。其實(shí)隱式模式和授權碼模式很相似,只是少了一步code="access_token。第三方會(huì )直接提供access_token給開(kāi)發(fā)者使用,不再給出code。
1.微博access_token校驗失敗,導致任意用戶(hù)登錄
這個(gè)問(wèn)題在多個(gè)應用中都出現過(guò),我測試過(guò)的應用中大約有10%的應用存在這個(gè)問(wèn)題,如果出現后果可能很?chē)乐?。此使用方式針對微博快速登錄的應用?br /> 應用中的微博快速登錄是通過(guò)調用微博應用請求,然后獲取請求的返回access_token和uid,所以應用中沒(méi)有微博快速登錄的代碼,這是我們的第一段。提到的隱式模式。獲取access_token的請求如下:

大部分應用會(huì )獲取返回的access_token,使用微博的api進(jìn)行操作,但應用只獲取uid,沒(méi)有驗證access_token,然后代入數據庫查詢(xún),存在任意登錄的問(wèn)題。
一個(gè)案例:
在這個(gè)應用中,點(diǎn)擊微博快速登錄,然后調出微博應用,注意上面截圖中的請求,修改請求返回的uid,釋放所有后續請求。

至此,微博綁定的賬號已經(jīng)無(wú)權限登錄,所有功能都可以使用。
原因如下,注意在應用中的請求中有一個(gè):,

這是最關(guān)鍵的set-cookie請求,其中請求參數open_id是剛剛返回的微博賬號的用戶(hù)uid,也就是我們剛才修改的返回包的值。
微信快速登錄也是這種隱式模式,但是這種攻擊方式并不適合微信快速登錄。首先,微信公眾號的open_id不是公開(kāi)內容。當然,如果你想自己搭建一個(gè)第三方登錄平臺,也可以獲取微信用戶(hù)的信息。open_id 也是不行的,因為同一個(gè)微信賬號為不同的app生成的open_id是不同的,所以不能使用。我喜歡這里的微信。
這里補充一下如何獲取指定微博賬號的uid,查看用戶(hù)頁(yè)面源碼搜索:$CONFIG['oid']

修復方法:
如果一定要使用uid,使用這個(gè)接口來(lái)驗證access_token:

要求獲取返回的 uid,不要相信用戶(hù)輸入給您的 uid。

2.微博access_token驗證不嚴格,導致交互后賬號被劫持
99%的應用都存在這種問(wèn)題,這種利用方式只針對微博的快速登錄。這種問(wèn)題的危害沒(méi)有第一種那么明顯。這是一種需要互動(dòng)的漏洞。我隨機提交了幾家公司來(lái)觀(guān)察廠(chǎng)商的反應。其中大部分為中風(fēng)險,少數為高風(fēng)險。一些制造商的家中有大量應用程序。有了這個(gè)問(wèn)題,打包提交也可以給出高風(fēng)險的獎勵。更多廠(chǎng)商評分,看你的投稿結果~
當應用程序沒(méi)有第二個(gè)問(wèn)題時(shí),它不一定是完全沒(méi)有風(fēng)險的??梢钥吹矫總€(gè)微博api請求只需要一個(gè)access_token憑證,不需要一些appid或者uid信息。
其中有一些非常簡(jiǎn)單的請求,例如:

如果客戶(hù)端獲取到微博賬號的uid和access_token,進(jìn)行檢查。但是,如果我們只是通過(guò)這樣一個(gè)類(lèi)似的接口通過(guò)access_token請求獲取uid,然后認為uid就是我們的用戶(hù),這是不正確的。
下面我們來(lái)看看如何使用它:
我像這樣在微博開(kāi)發(fā)者上構建了一個(gè)應用程序


Oauth2.0 授權回調頁(yè)面是攻擊者的站點(diǎn)。
這里的快速登錄鏈接是:
%3A%2F%2F%2f&狀態(tài)=30
登錄后會(huì )帶代碼進(jìn)入百度(其實(shí)就是進(jìn)入攻擊者的站點(diǎn)):

從官方手冊來(lái)看,代碼是這樣使用的:

此時(shí)攻擊者獲取到用戶(hù)的access_token和uid
回到第一個(gè)exploit方法:

這次如果同時(shí)更換access_token和uid,就可以登錄別人綁定的賬號了。
原因是這次不用同時(shí)更換access_token和uid就可以登錄別人綁定的賬號了。
原因是沒(méi)通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。
1.訪(fǎng)問(wèn)攻擊者微博快速登錄
2.攻擊者獲取代碼->獲取access_token和uid
3.其他應用賬號被劫持
修復方法:
通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。

最后
如今,國內外幾乎每個(gè)站點(diǎn)都有第三方快速登錄。中國的主流可能是QQ/微博/微信。當然,還有其他的快速登錄方式。多種快捷登錄漏洞。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何把這種方法應用在組織學(xué)習中成為越來(lái)越的網(wǎng)絡(luò )應用)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2022-02-25 23:38
毫無(wú)疑問(wèn),微博已經(jīng)成為越來(lái)越流行的網(wǎng)絡(luò )應用。如何將這種方法應用到組織學(xué)習中,使其成為一種非正式的學(xué)習方式,是很多培訓管理者思考的問(wèn)題。
以新浪微博為例,大致可以分為兩種方式促進(jìn)企業(yè)學(xué)習:一是直接應用模式,即直接利用新浪微博輔助培訓業(yè)務(wù),是初級應用階段;二是內部實(shí)施模式,即通過(guò)在企業(yè)內部部署一套專(zhuān)屬的企業(yè)微博,并以此為基礎,開(kāi)始組織內部的社交學(xué)習。這個(gè)模型比較復雜,但意義深遠。是微博推動(dòng)企業(yè)學(xué)習的進(jìn)階階段。本文將詳細介紹這兩種模式的應用方法、內容和要點(diǎn)。
直接申請模式
直接應用模式的目標是通過(guò)微博輔助傳統培訓業(yè)務(wù)。培訓部門(mén)可以通過(guò)建立培訓部門(mén)微博賬號、協(xié)助培訓項目、推動(dòng)企業(yè)e-Learning學(xué)習等方式,達到直接應用模式的效果。
創(chuàng )建微博賬號 培訓部門(mén)是組織內的服務(wù)部門(mén)。一般公司的培訓部門(mén)沒(méi)有自己的網(wǎng)站,缺乏與員工的溝通。因此,創(chuàng )建培訓部門(mén)自己的微博可以起到在線(xiàn)服務(wù)窗口的作用。銀聯(lián)培訓中心、用友大學(xué)、吉利大學(xué)等企業(yè)培訓中心或企業(yè)大學(xué)均開(kāi)設了自己的微博賬號。
建立一個(gè)微博賬號非常簡(jiǎn)單,只需在新浪微博上申請。需要注意的是,最好申請新浪代理認證。通過(guò)認證后,將有更多微博功能可供使用,包括:展示培訓中心的視頻或圖片,專(zhuān)門(mén)設置咨詢(xún)、留言、表?yè)P和意見(jiàn)窗口,展示培訓團隊成員的風(fēng)采等。
多功能輔助培訓項目擁有專(zhuān)屬微博賬號后,培訓中心可深度應用各種微博功能,輔助傳統面授培訓項目。新浪微博聚合了數千個(gè)功能應用,其中很多可以輔助面對面培訓。我們列出了幾個(gè)可以幫助培訓的最常見(jiàn)的微博功能。
微博大屏“微博大屏”更適合參加人數眾多的培訓項目,其價(jià)值在于能夠激活培訓現場(chǎng)的互動(dòng)氛圍。培訓期間,可通過(guò)獨立投影將微博大屏的內容投射到培訓現場(chǎng)。講師可以通過(guò)大屏幕采集學(xué)員的意見(jiàn),學(xué)員可以通過(guò)手機微博參與培訓和互動(dòng)過(guò)程。有關(guān)示例,請參見(jiàn)圖 1。
微活動(dòng)“微活動(dòng)”是一款不錯的培訓營(yíng)銷(xiāo)工具,適合培訓項目前期招生。如果培訓對象的微博使用滲透率高,可以通過(guò)發(fā)起“微事件”的形式發(fā)布培訓節目。在“微活動(dòng)”中,可以設置有獎、有針對性的選擇粉絲等功能,并結合粉絲轉發(fā),起到培養營(yíng)銷(xiāo)的作用(見(jiàn)圖表2).
微群 微群可以設置并邀請固定成員加入,類(lèi)似QQ群的功能(見(jiàn)圖表3),適合輔助周期較長(cháng)的培訓項目。講師或培訓經(jīng)理可以通過(guò)微信群發(fā)布通知微群、3)@文章、上傳附件等,也可以請學(xué)生在微群中討論問(wèn)題或提交作業(yè)。培訓項目結束后,微群可以解散或保留成為積累培訓資源的平臺。
促進(jìn)企業(yè)e-Learning學(xué)習 通常,企業(yè)在線(xiàn)學(xué)習以自主學(xué)習為主,學(xué)習者之間缺乏互動(dòng)。雖然有些公司在學(xué)習平臺上開(kāi)設了BBS討論區,但大多數情況下都不是很受歡迎。培訓管理者可以考慮將微博與在線(xiàn)學(xué)習相結合,通過(guò)嵌入微博代碼等功能增強在線(xiàn)學(xué)習的互動(dòng)性。具體可以通過(guò)以下方式實(shí)現。
加強網(wǎng)絡(luò )課程互動(dòng)活動(dòng)。在微博上發(fā)布與在線(xiàn)課程主題相關(guān)的微博,引發(fā)學(xué)習者討論內容,并將討論地址鏈接到課程介紹等明顯的地方。本質(zhì)是為每個(gè)在線(xiàn)課程建立一個(gè)微博討論論壇。建立方式有兩種:一是培訓管理員可以在發(fā)布課程時(shí)創(chuàng )建微博并同步設置課程鏈接;您可以隨時(shí)進(jìn)入微博參與互動(dòng)。
聚合在線(xiàn)學(xué)習和網(wǎng)絡(luò )資源 通過(guò)微博關(guān)鍵詞聚合功能,可以將課件內容與微博平臺內容進(jìn)行關(guān)聯(lián)。在海量的微博內容中,所有與網(wǎng)絡(luò )課程相關(guān)的微博內容都可以提取出來(lái),按時(shí)間順序顯示在網(wǎng)絡(luò )課件的指定位置(見(jiàn)圖表4)。內容聚合可以讓互動(dòng)更加深入——深度,將學(xué)習交流不僅延伸到在線(xiàn)課程的學(xué)習者,也延伸到所有微博成員。
網(wǎng)絡(luò )課程的推廣和評價(jià)微博也可以用于網(wǎng)絡(luò )課程的營(yíng)銷(xiāo)推廣和評價(jià),實(shí)施方式比較簡(jiǎn)單。比如在課程開(kāi)始或結束時(shí),可以添加“微博轉發(fā)”功能,將課程的介紹、鏈接、簡(jiǎn)要評價(jià)轉發(fā)到學(xué)習者的微博,學(xué)習者的粉絲第一時(shí)間看到課程. 介紹和鏈接。為了擴大影響力,管理者還可以在新浪微博以外的其他社交網(wǎng)絡(luò )上添加分享鏈接。
內部執行模式 所謂內部執行模式,就是在企業(yè)內部建立一個(gè)獨立完整的微博系統,企業(yè)可以在內部微博系統中建立自己的規則,比如加入V認證、風(fēng)格設計、企業(yè)自己的規則。學(xué)習系統或其他信息系統有更深入的整合等。
建立微博內部實(shí)施的目的,不僅可以輔助傳統培訓業(yè)務(wù),還可以利用微博的實(shí)施和應用在企業(yè)內部進(jìn)行社會(huì )學(xué)習,使微博成為員工分享和學(xué)習的新平臺。
新浪微博提供免費的企業(yè)微博下載版——微博,企業(yè)內部可以安裝使用。企業(yè)版微博(Xweibo)雖然不如新浪微博全面,但具備微博發(fā)布、瀏覽、轉發(fā)、評論、采集、話(huà)題等基本功能,微博的功能也在不斷升級完善。本文以微博系統為例,介紹如何在企業(yè)內部實(shí)現、部署和應用。
下載安裝Xweibo的下載地址為,下載安裝頁(yè)面如圖5所示。安裝時(shí)需要配合技術(shù)部門(mén),做好前期的溝通和準備工作。技術(shù)人員按照下載包中的說(shuō)明在企業(yè)內網(wǎng)完成安裝后,需要進(jìn)行初始化工作,主要包括以下幾個(gè)方面。
·設置企業(yè)微博名稱(chēng)·設置企業(yè)微博與新浪微博的關(guān)系·微博頁(yè)面布局設計·內容規則建立等與其他系統集成、安裝、初始化完成后,企業(yè)微博可以直接應用。但是,為了更好地發(fā)揮作用,通常需要與企業(yè)的其他業(yè)務(wù)系統進(jìn)行集成。特別是與學(xué)習管理系統和公司現有的BBS論壇系統深度融合,更方便員工使用。微博提供了一些內置的系統集成工具,企業(yè)可以使用這些工具進(jìn)行簡(jiǎn)單的集成。
1.定義主頁(yè)鏈接功能:通過(guò)該功能可以在微博主頁(yè)上集成相關(guān)學(xué)習系統的鏈接。
2.外部論壇插件功能:通過(guò)該功能,微博可以與企業(yè)內部BBS論壇同步登錄更新。
3.外部調用工具功能:可以將“轉發(fā)碼”和“異地調用碼”嵌入到學(xué)習管理系統、博客、郵箱、OA等其他系統中,讓微博的內容可以在其他系統中以各種形式顯示。
如果企業(yè)需要更深入的集成和增加個(gè)性化功能,開(kāi)發(fā)者需要對微博進(jìn)行高級二次開(kāi)發(fā)。
推廣應用 只有大規模應用,才能發(fā)揮社會(huì )學(xué)習的力量。培訓經(jīng)理可根據業(yè)務(wù)需要制定推廣應用策略和計劃。通過(guò)企業(yè)微博推行社會(huì )學(xué)習,要調動(dòng)員工的參與和積極性。根據微博的特點(diǎn),企業(yè)可以建立以下三種機制,開(kāi)啟快速應用的局面。
互聯(lián)機制將微博與新浪微博鏈接,所有擁有新浪微博賬號的員工都可以與微博同步數據。除了微博內容,“粉絲”也可以統一?;ヂ?lián)機制可以降低微博的使用難度,簡(jiǎn)化申請流程。但需要注意的是,有些企業(yè)不希望員工發(fā)布的某些內容同步到互聯(lián)網(wǎng)上,企業(yè)可以通過(guò)技術(shù)和制度對其進(jìn)行約束。
認證機制在企業(yè)內部開(kāi)展“微博+V認證”,培訓管理者可以通過(guò)這種方式提高員工參與度。微博的認證可以分類(lèi),比如可以分為技術(shù)專(zhuān)家、內部講師、工作專(zhuān)家等不同類(lèi)別(見(jiàn)圖表6)。同時(shí)也可以與“名人”合作管理”功能,監控各類(lèi)內部組織,有效管理先進(jìn)專(zhuān)業(yè)群體。Xweibo認證機制也是發(fā)現和梳理內部專(zhuān)家的最佳途徑之一,將為企業(yè)的實(shí)施提供有效的支持和幫助。知識管理。
活動(dòng)機制 在企業(yè)內部微博上開(kāi)展各種活動(dòng),提升微博知名度,活躍氣氛。微博內置兩個(gè)活動(dòng)功能模塊:一個(gè)是“線(xiàn)上直播”,主要輔助企業(yè)大型活動(dòng),活動(dòng)狀態(tài)在微博平臺直播。同時(shí),活動(dòng)現場(chǎng)可以與微博參與者進(jìn)行互動(dòng);在線(xiàn)采訪(fǎng)”,與新浪微博的“微采訪(fǎng)”功能基本相同。管理者可以通過(guò)該功能設計和安排在線(xiàn)面試節目,員工可以通過(guò)微博實(shí)時(shí)觀(guān)看和參與互動(dòng)。
此外,培訓管理者可以考慮將日常工作和各種活動(dòng)與企業(yè)微博結合起來(lái)。例如,在培訓項目的設計、實(shí)施、管理和評估方面,企業(yè)微博都有發(fā)揮的作用。內部微博在輔助培訓和員工學(xué)習中的應用僅僅是個(gè)開(kāi)始。作為企業(yè)內部的社交軟件,它將成為員工之間溝通協(xié)作的重要工具。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何把這種方法應用在組織學(xué)習中成為越來(lái)越的網(wǎng)絡(luò )應用)
毫無(wú)疑問(wèn),微博已經(jīng)成為越來(lái)越流行的網(wǎng)絡(luò )應用。如何將這種方法應用到組織學(xué)習中,使其成為一種非正式的學(xué)習方式,是很多培訓管理者思考的問(wèn)題。
以新浪微博為例,大致可以分為兩種方式促進(jìn)企業(yè)學(xué)習:一是直接應用模式,即直接利用新浪微博輔助培訓業(yè)務(wù),是初級應用階段;二是內部實(shí)施模式,即通過(guò)在企業(yè)內部部署一套專(zhuān)屬的企業(yè)微博,并以此為基礎,開(kāi)始組織內部的社交學(xué)習。這個(gè)模型比較復雜,但意義深遠。是微博推動(dòng)企業(yè)學(xué)習的進(jìn)階階段。本文將詳細介紹這兩種模式的應用方法、內容和要點(diǎn)。


直接申請模式
直接應用模式的目標是通過(guò)微博輔助傳統培訓業(yè)務(wù)。培訓部門(mén)可以通過(guò)建立培訓部門(mén)微博賬號、協(xié)助培訓項目、推動(dòng)企業(yè)e-Learning學(xué)習等方式,達到直接應用模式的效果。
創(chuàng )建微博賬號 培訓部門(mén)是組織內的服務(wù)部門(mén)。一般公司的培訓部門(mén)沒(méi)有自己的網(wǎng)站,缺乏與員工的溝通。因此,創(chuàng )建培訓部門(mén)自己的微博可以起到在線(xiàn)服務(wù)窗口的作用。銀聯(lián)培訓中心、用友大學(xué)、吉利大學(xué)等企業(yè)培訓中心或企業(yè)大學(xué)均開(kāi)設了自己的微博賬號。
建立一個(gè)微博賬號非常簡(jiǎn)單,只需在新浪微博上申請。需要注意的是,最好申請新浪代理認證。通過(guò)認證后,將有更多微博功能可供使用,包括:展示培訓中心的視頻或圖片,專(zhuān)門(mén)設置咨詢(xún)、留言、表?yè)P和意見(jiàn)窗口,展示培訓團隊成員的風(fēng)采等。
多功能輔助培訓項目擁有專(zhuān)屬微博賬號后,培訓中心可深度應用各種微博功能,輔助傳統面授培訓項目。新浪微博聚合了數千個(gè)功能應用,其中很多可以輔助面對面培訓。我們列出了幾個(gè)可以幫助培訓的最常見(jiàn)的微博功能。
微博大屏“微博大屏”更適合參加人數眾多的培訓項目,其價(jià)值在于能夠激活培訓現場(chǎng)的互動(dòng)氛圍。培訓期間,可通過(guò)獨立投影將微博大屏的內容投射到培訓現場(chǎng)。講師可以通過(guò)大屏幕采集學(xué)員的意見(jiàn),學(xué)員可以通過(guò)手機微博參與培訓和互動(dòng)過(guò)程。有關(guān)示例,請參見(jiàn)圖 1。
微活動(dòng)“微活動(dòng)”是一款不錯的培訓營(yíng)銷(xiāo)工具,適合培訓項目前期招生。如果培訓對象的微博使用滲透率高,可以通過(guò)發(fā)起“微事件”的形式發(fā)布培訓節目。在“微活動(dòng)”中,可以設置有獎、有針對性的選擇粉絲等功能,并結合粉絲轉發(fā),起到培養營(yíng)銷(xiāo)的作用(見(jiàn)圖表2).
微群 微群可以設置并邀請固定成員加入,類(lèi)似QQ群的功能(見(jiàn)圖表3),適合輔助周期較長(cháng)的培訓項目。講師或培訓經(jīng)理可以通過(guò)微信群發(fā)布通知微群、3)@文章、上傳附件等,也可以請學(xué)生在微群中討論問(wèn)題或提交作業(yè)。培訓項目結束后,微群可以解散或保留成為積累培訓資源的平臺。
促進(jìn)企業(yè)e-Learning學(xué)習 通常,企業(yè)在線(xiàn)學(xué)習以自主學(xué)習為主,學(xué)習者之間缺乏互動(dòng)。雖然有些公司在學(xué)習平臺上開(kāi)設了BBS討論區,但大多數情況下都不是很受歡迎。培訓管理者可以考慮將微博與在線(xiàn)學(xué)習相結合,通過(guò)嵌入微博代碼等功能增強在線(xiàn)學(xué)習的互動(dòng)性。具體可以通過(guò)以下方式實(shí)現。
加強網(wǎng)絡(luò )課程互動(dòng)活動(dòng)。在微博上發(fā)布與在線(xiàn)課程主題相關(guān)的微博,引發(fā)學(xué)習者討論內容,并將討論地址鏈接到課程介紹等明顯的地方。本質(zhì)是為每個(gè)在線(xiàn)課程建立一個(gè)微博討論論壇。建立方式有兩種:一是培訓管理員可以在發(fā)布課程時(shí)創(chuàng )建微博并同步設置課程鏈接;您可以隨時(shí)進(jìn)入微博參與互動(dòng)。
聚合在線(xiàn)學(xué)習和網(wǎng)絡(luò )資源 通過(guò)微博關(guān)鍵詞聚合功能,可以將課件內容與微博平臺內容進(jìn)行關(guān)聯(lián)。在海量的微博內容中,所有與網(wǎng)絡(luò )課程相關(guān)的微博內容都可以提取出來(lái),按時(shí)間順序顯示在網(wǎng)絡(luò )課件的指定位置(見(jiàn)圖表4)。內容聚合可以讓互動(dòng)更加深入——深度,將學(xué)習交流不僅延伸到在線(xiàn)課程的學(xué)習者,也延伸到所有微博成員。
網(wǎng)絡(luò )課程的推廣和評價(jià)微博也可以用于網(wǎng)絡(luò )課程的營(yíng)銷(xiāo)推廣和評價(jià),實(shí)施方式比較簡(jiǎn)單。比如在課程開(kāi)始或結束時(shí),可以添加“微博轉發(fā)”功能,將課程的介紹、鏈接、簡(jiǎn)要評價(jià)轉發(fā)到學(xué)習者的微博,學(xué)習者的粉絲第一時(shí)間看到課程. 介紹和鏈接。為了擴大影響力,管理者還可以在新浪微博以外的其他社交網(wǎng)絡(luò )上添加分享鏈接。
內部執行模式 所謂內部執行模式,就是在企業(yè)內部建立一個(gè)獨立完整的微博系統,企業(yè)可以在內部微博系統中建立自己的規則,比如加入V認證、風(fēng)格設計、企業(yè)自己的規則。學(xué)習系統或其他信息系統有更深入的整合等。
建立微博內部實(shí)施的目的,不僅可以輔助傳統培訓業(yè)務(wù),還可以利用微博的實(shí)施和應用在企業(yè)內部進(jìn)行社會(huì )學(xué)習,使微博成為員工分享和學(xué)習的新平臺。
新浪微博提供免費的企業(yè)微博下載版——微博,企業(yè)內部可以安裝使用。企業(yè)版微博(Xweibo)雖然不如新浪微博全面,但具備微博發(fā)布、瀏覽、轉發(fā)、評論、采集、話(huà)題等基本功能,微博的功能也在不斷升級完善。本文以微博系統為例,介紹如何在企業(yè)內部實(shí)現、部署和應用。
下載安裝Xweibo的下載地址為,下載安裝頁(yè)面如圖5所示。安裝時(shí)需要配合技術(shù)部門(mén),做好前期的溝通和準備工作。技術(shù)人員按照下載包中的說(shuō)明在企業(yè)內網(wǎng)完成安裝后,需要進(jìn)行初始化工作,主要包括以下幾個(gè)方面。
·設置企業(yè)微博名稱(chēng)·設置企業(yè)微博與新浪微博的關(guān)系·微博頁(yè)面布局設計·內容規則建立等與其他系統集成、安裝、初始化完成后,企業(yè)微博可以直接應用。但是,為了更好地發(fā)揮作用,通常需要與企業(yè)的其他業(yè)務(wù)系統進(jìn)行集成。特別是與學(xué)習管理系統和公司現有的BBS論壇系統深度融合,更方便員工使用。微博提供了一些內置的系統集成工具,企業(yè)可以使用這些工具進(jìn)行簡(jiǎn)單的集成。
1.定義主頁(yè)鏈接功能:通過(guò)該功能可以在微博主頁(yè)上集成相關(guān)學(xué)習系統的鏈接。
2.外部論壇插件功能:通過(guò)該功能,微博可以與企業(yè)內部BBS論壇同步登錄更新。
3.外部調用工具功能:可以將“轉發(fā)碼”和“異地調用碼”嵌入到學(xué)習管理系統、博客、郵箱、OA等其他系統中,讓微博的內容可以在其他系統中以各種形式顯示。
如果企業(yè)需要更深入的集成和增加個(gè)性化功能,開(kāi)發(fā)者需要對微博進(jìn)行高級二次開(kāi)發(fā)。
推廣應用 只有大規模應用,才能發(fā)揮社會(huì )學(xué)習的力量。培訓經(jīng)理可根據業(yè)務(wù)需要制定推廣應用策略和計劃。通過(guò)企業(yè)微博推行社會(huì )學(xué)習,要調動(dòng)員工的參與和積極性。根據微博的特點(diǎn),企業(yè)可以建立以下三種機制,開(kāi)啟快速應用的局面。
互聯(lián)機制將微博與新浪微博鏈接,所有擁有新浪微博賬號的員工都可以與微博同步數據。除了微博內容,“粉絲”也可以統一?;ヂ?lián)機制可以降低微博的使用難度,簡(jiǎn)化申請流程。但需要注意的是,有些企業(yè)不希望員工發(fā)布的某些內容同步到互聯(lián)網(wǎng)上,企業(yè)可以通過(guò)技術(shù)和制度對其進(jìn)行約束。
認證機制在企業(yè)內部開(kāi)展“微博+V認證”,培訓管理者可以通過(guò)這種方式提高員工參與度。微博的認證可以分類(lèi),比如可以分為技術(shù)專(zhuān)家、內部講師、工作專(zhuān)家等不同類(lèi)別(見(jiàn)圖表6)。同時(shí)也可以與“名人”合作管理”功能,監控各類(lèi)內部組織,有效管理先進(jìn)專(zhuān)業(yè)群體。Xweibo認證機制也是發(fā)現和梳理內部專(zhuān)家的最佳途徑之一,將為企業(yè)的實(shí)施提供有效的支持和幫助。知識管理。
活動(dòng)機制 在企業(yè)內部微博上開(kāi)展各種活動(dòng),提升微博知名度,活躍氣氛。微博內置兩個(gè)活動(dòng)功能模塊:一個(gè)是“線(xiàn)上直播”,主要輔助企業(yè)大型活動(dòng),活動(dòng)狀態(tài)在微博平臺直播。同時(shí),活動(dòng)現場(chǎng)可以與微博參與者進(jìn)行互動(dòng);在線(xiàn)采訪(fǎng)”,與新浪微博的“微采訪(fǎng)”功能基本相同。管理者可以通過(guò)該功能設計和安排在線(xiàn)面試節目,員工可以通過(guò)微博實(shí)時(shí)觀(guān)看和參與互動(dòng)。
此外,培訓管理者可以考慮將日常工作和各種活動(dòng)與企業(yè)微博結合起來(lái)。例如,在培訓項目的設計、實(shí)施、管理和評估方面,企業(yè)微博都有發(fā)揮的作用。內部微博在輔助培訓和員工學(xué)習中的應用僅僅是個(gè)開(kāi)始。作為企業(yè)內部的社交軟件,它將成為員工之間溝通協(xié)作的重要工具。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,有什么方式?)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 61 次瀏覽 ? 2022-02-25 12:01
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,實(shí)現網(wǎng)站微博同步;或者可以嘗試一下,將微博標簽作為一個(gè)指向網(wǎng)站站點(diǎn)的節點(diǎn),訪(fǎng)問(wèn)站點(diǎn)的自有網(wǎng)站就能同步。
你在新浪上發(fā)布的微博內容,
兩個(gè)社交平臺各有社交圈,本身已經(jīng)通過(guò)有他人需要的內容,當發(fā)布微博時(shí),即在兩個(gè)平臺上構建一個(gè)同步的鏈接。但假如你的目的是希望兩個(gè)平臺的內容同步,其實(shí)用第三方微博的新浪客戶(hù)端可能是一個(gè)更好的選擇,多個(gè)微博客戶(hù)端之間可以隨意切換即可。
發(fā)布微博到一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog等,和發(fā)布新浪/騰訊的微博到任何一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog/微博號一樣。
私聊我
這個(gè)理解是有問(wèn)題的微博在網(wǎng)站上傳遞需要兩個(gè)地方
1)網(wǎng)站
2)微博兩個(gè)地方同步有什么方式?
1)轉發(fā)這個(gè)是網(wǎng)站做的事情這個(gè)是騰訊做的事情
2)分享兩個(gè)地方同步都有叫做微轉+微博
微博平臺最早就是把所有微博的博客放在一個(gè)服務(wù)器上出了blog(國內最早的網(wǎng)站“微博會(huì )議室”),后來(lái)woocommerce為了獲得用戶(hù)數量,結果他們的收費排名第一的notify無(wú)法排名第一,一開(kāi)始他們想的是可以從中間找出各個(gè)平臺給分擔,后來(lái)他們想著(zhù)怎么樣把這些平臺運營(yíng)好(bmw、網(wǎng)易、qq空間等等),然后總結發(fā)現兩個(gè)平臺還是不方便兩個(gè)平臺的。
這樣最終就有了ugc的理念,最終都放在一個(gè)服務(wù)器上,通過(guò)postbin實(shí)現,ugc幾乎無(wú)限。所以個(gè)人覺(jué)得ugc時(shí)代,會(huì )在不久的將來(lái)將會(huì )到來(lái)。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,有什么方式?)
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,實(shí)現網(wǎng)站微博同步;或者可以嘗試一下,將微博標簽作為一個(gè)指向網(wǎng)站站點(diǎn)的節點(diǎn),訪(fǎng)問(wèn)站點(diǎn)的自有網(wǎng)站就能同步。
你在新浪上發(fā)布的微博內容,
兩個(gè)社交平臺各有社交圈,本身已經(jīng)通過(guò)有他人需要的內容,當發(fā)布微博時(shí),即在兩個(gè)平臺上構建一個(gè)同步的鏈接。但假如你的目的是希望兩個(gè)平臺的內容同步,其實(shí)用第三方微博的新浪客戶(hù)端可能是一個(gè)更好的選擇,多個(gè)微博客戶(hù)端之間可以隨意切換即可。
發(fā)布微博到一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog等,和發(fā)布新浪/騰訊的微博到任何一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog/微博號一樣。
私聊我
這個(gè)理解是有問(wèn)題的微博在網(wǎng)站上傳遞需要兩個(gè)地方
1)網(wǎng)站
2)微博兩個(gè)地方同步有什么方式?
1)轉發(fā)這個(gè)是網(wǎng)站做的事情這個(gè)是騰訊做的事情
2)分享兩個(gè)地方同步都有叫做微轉+微博
微博平臺最早就是把所有微博的博客放在一個(gè)服務(wù)器上出了blog(國內最早的網(wǎng)站“微博會(huì )議室”),后來(lái)woocommerce為了獲得用戶(hù)數量,結果他們的收費排名第一的notify無(wú)法排名第一,一開(kāi)始他們想的是可以從中間找出各個(gè)平臺給分擔,后來(lái)他們想著(zhù)怎么樣把這些平臺運營(yíng)好(bmw、網(wǎng)易、qq空間等等),然后總結發(fā)現兩個(gè)平臺還是不方便兩個(gè)平臺的。
這樣最終就有了ugc的理念,最終都放在一個(gè)服務(wù)器上,通過(guò)postbin實(shí)現,ugc幾乎無(wú)限。所以個(gè)人覺(jué)得ugc時(shí)代,會(huì )在不久的將來(lái)將會(huì )到來(lái)。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API關(guān)閉,想用微博RSS轉化RSS方法數據導出 )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 103 次瀏覽 ? 2022-02-25 04:02
)
我之前一直在使用新浪微博的API進(jìn)行數據同步。今年年初,1月8日左右,微博API不知為何突然不可用,接口調用不斷出現403錯誤。私信聯(lián)系“微博”“開(kāi)發(fā)平臺”一直是機器回復。
因此,我猜新浪微博關(guān)閉了它的API。我猜可能是因為微博太難賺錢(qián)了,所以向騰訊學(xué)習,封閉數據賺大錢(qián)。
不過(guò)我在微博上發(fā)布了很多數據,但是微博到現在連數據備份都沒(méi)有,所以我還是需要另尋出路來(lái)進(jìn)行數據同步和備份操作,所以想用微博來(lái)轉換RSS。數據輸出。
11年前做過(guò)一個(gè)PHP微博轉RSS的項目,但是時(shí)間太長(cháng)了,里面的數據結構已經(jīng)徹底改了,不能用了,于是上網(wǎng)搜了一下,有沒(méi)有沒(méi)有現成的項目,結果發(fā)現github上有一個(gè)weibo-rss項目可以使用,但是它的部署使用的是Node.js,這個(gè)我之前沒(méi)用過(guò)。
我在國外購買(mǎi)的云服務(wù)器使用的是LNMP(Linux-Nginx-MySQL-PHP)環(huán)境,web服務(wù)器是Nginx,小巧穩定,占用資源極少。低配置服務(wù)器可以執行動(dòng)態(tài) 網(wǎng)站@ >。我只是嘗試將此 Node.js 項目部署到此服務(wù)器。
服務(wù)器沒(méi)有安裝Node.js,所以需要先安裝環(huán)境。面板中有一個(gè)“PM2管理器”,它是一個(gè)node.js管理器。內置node.js + npm + nvm + pm2,一鍵安裝。
安裝環(huán)境后,按照項目說(shuō)明開(kāi)始手動(dòng)部署。安裝前部署php的思路是把它部署到wwwroot下的一個(gè)目錄下。從網(wǎng)頁(yè)訪(fǎng)問(wèn)后,頁(yè)面可以出來(lái),但是RSS提示“獲取數據失敗”。
咨詢(xún)項目作者后發(fā)現,項目部署到了??3000端口,而不是Nginx的80和443端口,我用3000端口的地址訪(fǎng)問(wèn),可以正常獲取數據。
當然,最后還是希望在 Nginx 下使用,在 Nginx 中設置反向代理,映射一個(gè)目錄到 3000 端口,然后在 80 和 443 端口訪(fǎng)問(wèn)這個(gè) Node.js 項目。
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API關(guān)閉,想用微博RSS轉化RSS方法數據導出
)
我之前一直在使用新浪微博的API進(jìn)行數據同步。今年年初,1月8日左右,微博API不知為何突然不可用,接口調用不斷出現403錯誤。私信聯(lián)系“微博”“開(kāi)發(fā)平臺”一直是機器回復。
因此,我猜新浪微博關(guān)閉了它的API。我猜可能是因為微博太難賺錢(qián)了,所以向騰訊學(xué)習,封閉數據賺大錢(qián)。
不過(guò)我在微博上發(fā)布了很多數據,但是微博到現在連數據備份都沒(méi)有,所以我還是需要另尋出路來(lái)進(jìn)行數據同步和備份操作,所以想用微博來(lái)轉換RSS。數據輸出。
11年前做過(guò)一個(gè)PHP微博轉RSS的項目,但是時(shí)間太長(cháng)了,里面的數據結構已經(jīng)徹底改了,不能用了,于是上網(wǎng)搜了一下,有沒(méi)有沒(méi)有現成的項目,結果發(fā)現github上有一個(gè)weibo-rss項目可以使用,但是它的部署使用的是Node.js,這個(gè)我之前沒(méi)用過(guò)。
我在國外購買(mǎi)的云服務(wù)器使用的是LNMP(Linux-Nginx-MySQL-PHP)環(huán)境,web服務(wù)器是Nginx,小巧穩定,占用資源極少。低配置服務(wù)器可以執行動(dòng)態(tài) 網(wǎng)站@ >。我只是嘗試將此 Node.js 項目部署到此服務(wù)器。
服務(wù)器沒(méi)有安裝Node.js,所以需要先安裝環(huán)境。面板中有一個(gè)“PM2管理器”,它是一個(gè)node.js管理器。內置node.js + npm + nvm + pm2,一鍵安裝。
安裝環(huán)境后,按照項目說(shuō)明開(kāi)始手動(dòng)部署。安裝前部署php的思路是把它部署到wwwroot下的一個(gè)目錄下。從網(wǎng)頁(yè)訪(fǎng)問(wèn)后,頁(yè)面可以出來(lái),但是RSS提示“獲取數據失敗”。
咨詢(xún)項目作者后發(fā)現,項目部署到了??3000端口,而不是Nginx的80和443端口,我用3000端口的地址訪(fǎng)問(wèn),可以正常獲取數據。
當然,最后還是希望在 Nginx 下使用,在 Nginx 中設置反向代理,映射一個(gè)目錄到 3000 端口,然后在 80 和 443 端口訪(fǎng)問(wèn)這個(gè) Node.js 項目。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(2020年P(guān)ython+IFTTTWebhooks+Crontab定時(shí)抓取微博到DayOne)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 90 次瀏覽 ? 2022-02-25 00:07
本來(lái)我一直在用IFTTT自動(dòng)同步微博到Day One,這樣我就可以很方便的把我的日常筆記記錄在日記里了。不過(guò)從2020年開(kāi)始,微博不會(huì )開(kāi)放這個(gè)API接口。
自從失敗以來(lái),它一直被忽略。最近一時(shí)興起,在網(wǎng)上搜了一下,找到了一種方法——Python + IFTTT Webhooks + Crontab 定期抓取微博到Day One。
分三步:
1、下載你的微博內容
您無(wú)需編寫(xiě)代碼即可抓取微博。Github 上有現成的腳本,非常強大。將代碼下載到本地,然后步驟如下:
1、打開(kāi)powershell,切換到weibo-crawler的路徑。
2、安裝依賴(lài)。前提是安裝了python和pip。
pip install -r requirements.txt
3、修改配置文件config.json,將user_id_list改成自己的微博id。since_date 設置為 1,表示只取過(guò)去 1 天的微博。
4、運行爬蟲(chóng),如果微博數據可以下載到本地CSV文件,則表示成功。
python weibo.py
2、使用 IFTTT 發(fā)送 Day OneIFTTT 網(wǎng)站設置
在 IFTTT 網(wǎng)站 上設置操作:如果收到 Web 請求,則創(chuàng )建日志。
本地 Python 腳本
然后在本地weibo-crawler文件夾中創(chuàng )建一個(gè)ifttt.py文件,將以下內容復制進(jìn)去,注意根據自己的情況修改path、event_name、key。
import weibo
import csv
import requests
import json
import os
class Ifttt(object):
def __init__(self, path, event_name, key):
self.path = path
self.event_name = event_name
self.key = key
self.text = []
self.image = []
self.num = 0
# 解析本地 CSV 文件
def parse_post_info(self, path):
with open(path, 'r', encoding='UTF-8') as f:
csv_reader = csv.reader(f, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print("Header")
else:
self.text.append(row[2])
self.image.append(row[4].split(",",1))
line_count += 1
self.num = line_count - 1
print(self.text)
print(self.image)
print("Total posts: ", self.num)
# 發(fā)送給 IFTTT
def send_notice(self):
url = f"https://maker.ifttt.com/trigger/{self.event_name}/with/key/{self.key}"
for num in range(0, self.num):
payload = {"value1": self.text[num], "value2": self.image[num]}
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
print(payload)
def main():
config = weibo.get_config()
wb = weibo.Weibo(config)
wb.start()
path = 'weibo/微博名/1234567.csv' # 爬蟲(chóng)爬下來(lái)的csv路徑
event_name = 'DayOne' # Webhooks 觸發(fā)器名字
key = 'IF17vD4nqU6wO' # Webhooks 的 key,每個(gè)人不同
ifttt = Ifttt(path, event_name, key)
ifttt.parse_post_info(path)
ifttt.send_notice()
os.remove(path)
if __name__ == '__main__':
main()
3、Win10每日定時(shí)任務(wù)創(chuàng )建
前兩步完成后,功能已經(jīng)實(shí)現了,然后每次手動(dòng)觸發(fā)顯然太麻煩了,所以我決定用Win10定時(shí)任務(wù)每天自動(dòng)運行一次,下載微博到本地CSV 進(jìn)行保護,將其發(fā)送到 Day One,然后清除本地 CSV 文件。
設置定時(shí)任務(wù)的方法如下:
在計算機-管理-系統工具-任務(wù)計劃程序庫-微軟下右鍵,創(chuàng )建基本任務(wù),設置計劃任務(wù)名稱(chēng)、觸發(fā)時(shí)間、觸發(fā)頻率、觸發(fā)程序、觸發(fā)程序代碼和觸發(fā)程序代碼所在路徑位于。注意觸發(fā)代碼所在的路徑一定不能寫(xiě),否則運行時(shí)無(wú)法自動(dòng)刪除最后生成的CSV。
參考Win10定時(shí)任務(wù)自動(dòng)運行python程序
注:本文同時(shí)發(fā)表于個(gè)人博客。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(2020年P(guān)ython+IFTTTWebhooks+Crontab定時(shí)抓取微博到DayOne)
本來(lái)我一直在用IFTTT自動(dòng)同步微博到Day One,這樣我就可以很方便的把我的日常筆記記錄在日記里了。不過(guò)從2020年開(kāi)始,微博不會(huì )開(kāi)放這個(gè)API接口。
自從失敗以來(lái),它一直被忽略。最近一時(shí)興起,在網(wǎng)上搜了一下,找到了一種方法——Python + IFTTT Webhooks + Crontab 定期抓取微博到Day One。
分三步:
1、下載你的微博內容
您無(wú)需編寫(xiě)代碼即可抓取微博。Github 上有現成的腳本,非常強大。將代碼下載到本地,然后步驟如下:
1、打開(kāi)powershell,切換到weibo-crawler的路徑。
2、安裝依賴(lài)。前提是安裝了python和pip。
pip install -r requirements.txt
3、修改配置文件config.json,將user_id_list改成自己的微博id。since_date 設置為 1,表示只取過(guò)去 1 天的微博。
4、運行爬蟲(chóng),如果微博數據可以下載到本地CSV文件,則表示成功。
python weibo.py
2、使用 IFTTT 發(fā)送 Day OneIFTTT 網(wǎng)站設置
在 IFTTT 網(wǎng)站 上設置操作:如果收到 Web 請求,則創(chuàng )建日志。
本地 Python 腳本
然后在本地weibo-crawler文件夾中創(chuàng )建一個(gè)ifttt.py文件,將以下內容復制進(jìn)去,注意根據自己的情況修改path、event_name、key。
import weibo
import csv
import requests
import json
import os
class Ifttt(object):
def __init__(self, path, event_name, key):
self.path = path
self.event_name = event_name
self.key = key
self.text = []
self.image = []
self.num = 0
# 解析本地 CSV 文件
def parse_post_info(self, path):
with open(path, 'r', encoding='UTF-8') as f:
csv_reader = csv.reader(f, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print("Header")
else:
self.text.append(row[2])
self.image.append(row[4].split(",",1))
line_count += 1
self.num = line_count - 1
print(self.text)
print(self.image)
print("Total posts: ", self.num)
# 發(fā)送給 IFTTT
def send_notice(self):
url = f"https://maker.ifttt.com/trigger/{self.event_name}/with/key/{self.key}"
for num in range(0, self.num):
payload = {"value1": self.text[num], "value2": self.image[num]}
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
print(payload)
def main():
config = weibo.get_config()
wb = weibo.Weibo(config)
wb.start()
path = 'weibo/微博名/1234567.csv' # 爬蟲(chóng)爬下來(lái)的csv路徑
event_name = 'DayOne' # Webhooks 觸發(fā)器名字
key = 'IF17vD4nqU6wO' # Webhooks 的 key,每個(gè)人不同
ifttt = Ifttt(path, event_name, key)
ifttt.parse_post_info(path)
ifttt.send_notice()
os.remove(path)
if __name__ == '__main__':
main()
3、Win10每日定時(shí)任務(wù)創(chuàng )建
前兩步完成后,功能已經(jīng)實(shí)現了,然后每次手動(dòng)觸發(fā)顯然太麻煩了,所以我決定用Win10定時(shí)任務(wù)每天自動(dòng)運行一次,下載微博到本地CSV 進(jìn)行保護,將其發(fā)送到 Day One,然后清除本地 CSV 文件。
設置定時(shí)任務(wù)的方法如下:
在計算機-管理-系統工具-任務(wù)計劃程序庫-微軟下右鍵,創(chuàng )建基本任務(wù),設置計劃任務(wù)名稱(chēng)、觸發(fā)時(shí)間、觸發(fā)頻率、觸發(fā)程序、觸發(fā)程序代碼和觸發(fā)程序代碼所在路徑位于。注意觸發(fā)代碼所在的路徑一定不能寫(xiě),否則運行時(shí)無(wú)法自動(dòng)刪除最后生成的CSV。
參考Win10定時(shí)任務(wù)自動(dòng)運行python程序
注:本文同時(shí)發(fā)表于個(gè)人博客。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(api發(fā)新微博網(wǎng)上現有教程中的發(fā)送微博接口(updateStatus),)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 57 次瀏覽 ? 2022-02-23 21:02
最近有個(gè)項目需要調用微博api發(fā)送一條新的微博。在網(wǎng)上找了很多相關(guān)的教程,遇到了很多坑。后來(lái)發(fā)郵件給官方發(fā)現微博官方早在2017年3月就已經(jīng)調整了相關(guān)接口,取消了現有在線(xiàn)教程中發(fā)送微博的接口(updateStatus)。結果再次調用該接口會(huì )提示權限不足。,折騰了很久。特此發(fā)一個(gè)新的文章,希望大家不要入坑。
1.登錄開(kāi)放平臺創(chuàng )建應用
首先,需要到微博開(kāi)放平臺申請開(kāi)發(fā)者賬號,創(chuàng )建新應用。你可以直接用你的微博賬號登錄。登錄后,點(diǎn)擊微鏈接選擇其他選項,根據自己的需要新建應用程序(客戶(hù)端、Web應用程序和瀏覽器插件)。
2.應用相關(guān)設置
首先,在應用信息中編輯應用的基本信息,包括應用介紹和用途,一定要填寫(xiě)安全域名。您可以填寫(xiě)域名進(jìn)行自己的測試。企業(yè)申請,填寫(xiě)企業(yè)相關(guān)域名。
還需要在應用高級信息中設置OAuth2.0的授權回調頁(yè)面。這個(gè)測試也可以隨便填。應用發(fā)起用戶(hù)授權時(shí),重定向的頁(yè)面地址成功或取消。
三、下載微博java sdk
點(diǎn)擊sdk下載地址后會(huì )跳轉回github頁(yè)面。頁(yè)面也有例子提示如何使用,下載即可。下載后,將其導入代碼編輯器。最重要的一步:修改config.properties文件中的字段值。值的來(lái)源在應用程序信息中。
四、運行實(shí)例獲取授權碼
配置文件修改后,首先打開(kāi)examples包下的oauth2.0下的OAuth4Code.java文件,直接運行main方法。此時(shí)默認瀏覽器會(huì )打開(kāi)用戶(hù)授權頁(yè)面。授權后,瀏覽器地址中會(huì )多出一個(gè)code=******。復制代碼并粘貼到編輯器的控制臺中,然后回車(chē)返回授權信息。
復制返回的授權信息中accessToken的值,即授權碼。
AccessToken [accessToken=2.00******, expireIn=11255**, refreshToken=,uid=****]有了這個(gè)授權碼,我們就可以正式運營(yíng)微博了。
注意:微博api中的所有操作都需要OAuth2.0授權。調用每個(gè)方法都需要一個(gè)授權碼。未經(jīng)審核的應用授權碼僅在一天內有效。通過(guò)后有30天,如果得到應用開(kāi)發(fā)者的授權則有5年。因此,開(kāi)發(fā)者在調用時(shí)需要判斷授權碼的有效期,到期后引導用戶(hù)重新授權。
5.api應用微博
示例包中全是微博官方api實(shí)例,之前發(fā)送微博的接口在weibo4j.examples.timeline下。UpdateStatus.java 和 Upload.java 一個(gè)是發(fā)送微博文本,另一個(gè)是發(fā)送帶圖片的微博實(shí)例。打開(kāi)后發(fā)現調用了 Weibo4j.Timeline.java 類(lèi)發(fā)送微博。
不過(guò)微博官方已經(jīng)取消了updateStatus等相關(guān)的發(fā)送微博接口,這些接口不能再調用了,但是由于java sdk是2014版本,所以里面還是有這些方法的。然后替換之前的updateStatus界面為statuss/share(第三方分享鏈接微博)
我們使用這個(gè)接口發(fā)送一條微博。由于java sdk是2014版本的,這個(gè)版本沒(méi)有這個(gè)接口方法,所以我們需要根據他的調用方法寫(xiě)一個(gè)新的接口。由于這個(gè)接口只有兩個(gè)必填參數,一個(gè)微博文本和一個(gè)授權碼,類(lèi)似于updateStatus。所以我們可以打開(kāi)weibo4j.Timeline.java找到updateStatus方法,復制修改方法名,替換json。至此,無(wú)圖發(fā)微博的方法就完成了。
1?
2
公共狀態(tài) updateStatus(String status) 拋出 WeiboException {
return new Status(client.post(WeiboConfig.getValue("baseURL")
新 PostParameter[] { new PostParameter("status", status) },
訪(fǎng)問(wèn)令牌));
}
/** 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(api發(fā)新微博網(wǎng)上現有教程中的發(fā)送微博接口(updateStatus),)
最近有個(gè)項目需要調用微博api發(fā)送一條新的微博。在網(wǎng)上找了很多相關(guān)的教程,遇到了很多坑。后來(lái)發(fā)郵件給官方發(fā)現微博官方早在2017年3月就已經(jīng)調整了相關(guān)接口,取消了現有在線(xiàn)教程中發(fā)送微博的接口(updateStatus)。結果再次調用該接口會(huì )提示權限不足。,折騰了很久。特此發(fā)一個(gè)新的文章,希望大家不要入坑。
1.登錄開(kāi)放平臺創(chuàng )建應用
首先,需要到微博開(kāi)放平臺申請開(kāi)發(fā)者賬號,創(chuàng )建新應用。你可以直接用你的微博賬號登錄。登錄后,點(diǎn)擊微鏈接選擇其他選項,根據自己的需要新建應用程序(客戶(hù)端、Web應用程序和瀏覽器插件)。
2.應用相關(guān)設置
首先,在應用信息中編輯應用的基本信息,包括應用介紹和用途,一定要填寫(xiě)安全域名。您可以填寫(xiě)域名進(jìn)行自己的測試。企業(yè)申請,填寫(xiě)企業(yè)相關(guān)域名。
還需要在應用高級信息中設置OAuth2.0的授權回調頁(yè)面。這個(gè)測試也可以隨便填。應用發(fā)起用戶(hù)授權時(shí),重定向的頁(yè)面地址成功或取消。
三、下載微博java sdk
點(diǎn)擊sdk下載地址后會(huì )跳轉回github頁(yè)面。頁(yè)面也有例子提示如何使用,下載即可。下載后,將其導入代碼編輯器。最重要的一步:修改config.properties文件中的字段值。值的來(lái)源在應用程序信息中。
四、運行實(shí)例獲取授權碼
配置文件修改后,首先打開(kāi)examples包下的oauth2.0下的OAuth4Code.java文件,直接運行main方法。此時(shí)默認瀏覽器會(huì )打開(kāi)用戶(hù)授權頁(yè)面。授權后,瀏覽器地址中會(huì )多出一個(gè)code=******。復制代碼并粘貼到編輯器的控制臺中,然后回車(chē)返回授權信息。
復制返回的授權信息中accessToken的值,即授權碼。
AccessToken [accessToken=2.00******, expireIn=11255**, refreshToken=,uid=****]有了這個(gè)授權碼,我們就可以正式運營(yíng)微博了。
注意:微博api中的所有操作都需要OAuth2.0授權。調用每個(gè)方法都需要一個(gè)授權碼。未經(jīng)審核的應用授權碼僅在一天內有效。通過(guò)后有30天,如果得到應用開(kāi)發(fā)者的授權則有5年。因此,開(kāi)發(fā)者在調用時(shí)需要判斷授權碼的有效期,到期后引導用戶(hù)重新授權。
5.api應用微博
示例包中全是微博官方api實(shí)例,之前發(fā)送微博的接口在weibo4j.examples.timeline下。UpdateStatus.java 和 Upload.java 一個(gè)是發(fā)送微博文本,另一個(gè)是發(fā)送帶圖片的微博實(shí)例。打開(kāi)后發(fā)現調用了 Weibo4j.Timeline.java 類(lèi)發(fā)送微博。
不過(guò)微博官方已經(jīng)取消了updateStatus等相關(guān)的發(fā)送微博接口,這些接口不能再調用了,但是由于java sdk是2014版本,所以里面還是有這些方法的。然后替換之前的updateStatus界面為statuss/share(第三方分享鏈接微博)
我們使用這個(gè)接口發(fā)送一條微博。由于java sdk是2014版本的,這個(gè)版本沒(méi)有這個(gè)接口方法,所以我們需要根據他的調用方法寫(xiě)一個(gè)新的接口。由于這個(gè)接口只有兩個(gè)必填參數,一個(gè)微博文本和一個(gè)授權碼,類(lèi)似于updateStatus。所以我們可以打開(kāi)weibo4j.Timeline.java找到updateStatus方法,復制修改方法名,替換json。至此,無(wú)圖發(fā)微博的方法就完成了。
1?
2
公共狀態(tài) updateStatus(String status) 拋出 WeiboException {
return new Status(client.post(WeiboConfig.getValue("baseURL")
新 PostParameter[] { new PostParameter("status", status) },
訪(fǎng)問(wèn)令牌));
}
/**
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 72 次瀏覽 ? 2022-02-23 16:04
裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行程序開(kāi)發(fā)
前段時(shí)間抓取微博的數據,想著(zhù)用htmlunit模擬登錄新浪微博抓取數據。這兩天看了新浪微博的官方API,發(fā)現可以通過(guò)新浪微博的官方API獲取。新浪微博信息,更全面更簡(jiǎn)單。以下是從注冊新浪微博,到完善新浪微博開(kāi)放平臺開(kāi)發(fā)者信息,再創(chuàng )建應用獲取Access Token,最后開(kāi)發(fā)自己的應用。
1注冊126個(gè)郵箱
02注冊新浪微博
03 登錄新浪微博
04登陸新浪開(kāi)放平臺
05查看微博接口
06 可以看到獲得用戶(hù)關(guān)注的用戶(hù)信息列表
07 打開(kāi)api測試工具
08 創(chuàng )建應用獲取AccessToken
09 創(chuàng )建應用程序
10選擇應用類(lèi)型
11填寫(xiě)開(kāi)發(fā)者信息(如果之前已經(jīng)填寫(xiě)過(guò)開(kāi)發(fā)者信息,則跳過(guò)此步驟)
12完整的開(kāi)發(fā)者信息
13 完成電子郵件確認
14 創(chuàng )建應用程序
15 成功創(chuàng )建應用(這里的Appkey暫時(shí)不可用)
16 回到這個(gè)地方進(jìn)行用戶(hù)關(guān)系的API測試
17 找到我的uid(在個(gè)人主頁(yè),后面最后一個(gè)數字是個(gè)人uid)
18 看到這個(gè)用戶(hù)就關(guān)注它
19的最終結果,調用新浪微博的api查看獲取到的json格式數據
以上完成后,在網(wǎng)頁(yè)上成功調用新浪微博提供的api接口。接下來(lái),您需要編寫(xiě)一個(gè)程序來(lái)實(shí)現這一點(diǎn)。程序是模擬這個(gè)網(wǎng)頁(yè)發(fā)送請求,返回的數據是json格式的數據。字段已定義。
比如模擬這個(gè)請求,然后解析數據:
完成后,開(kāi)始正式開(kāi)發(fā)微博數據分析程序。
發(fā)表于 2016-02-23 14:251130136248read(409)comments(0)edit 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行(組圖))
裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行程序開(kāi)發(fā)
前段時(shí)間抓取微博的數據,想著(zhù)用htmlunit模擬登錄新浪微博抓取數據。這兩天看了新浪微博的官方API,發(fā)現可以通過(guò)新浪微博的官方API獲取。新浪微博信息,更全面更簡(jiǎn)單。以下是從注冊新浪微博,到完善新浪微博開(kāi)放平臺開(kāi)發(fā)者信息,再創(chuàng )建應用獲取Access Token,最后開(kāi)發(fā)自己的應用。
1注冊126個(gè)郵箱

02注冊新浪微博

03 登錄新浪微博

04登陸新浪開(kāi)放平臺

05查看微博接口

06 可以看到獲得用戶(hù)關(guān)注的用戶(hù)信息列表

07 打開(kāi)api測試工具

08 創(chuàng )建應用獲取AccessToken

09 創(chuàng )建應用程序

10選擇應用類(lèi)型

11填寫(xiě)開(kāi)發(fā)者信息(如果之前已經(jīng)填寫(xiě)過(guò)開(kāi)發(fā)者信息,則跳過(guò)此步驟)

12完整的開(kāi)發(fā)者信息

13 完成電子郵件確認

14 創(chuàng )建應用程序

15 成功創(chuàng )建應用(這里的Appkey暫時(shí)不可用)

16 回到這個(gè)地方進(jìn)行用戶(hù)關(guān)系的API測試

17 找到我的uid(在個(gè)人主頁(yè),后面最后一個(gè)數字是個(gè)人uid)

18 看到這個(gè)用戶(hù)就關(guān)注它

19的最終結果,調用新浪微博的api查看獲取到的json格式數據

以上完成后,在網(wǎng)頁(yè)上成功調用新浪微博提供的api接口。接下來(lái),您需要編寫(xiě)一個(gè)程序來(lái)實(shí)現這一點(diǎn)。程序是模擬這個(gè)網(wǎng)頁(yè)發(fā)送請求,返回的數據是json格式的數據。字段已定義。
比如模擬這個(gè)請求,然后解析數據:

完成后,開(kāi)始正式開(kāi)發(fā)微博數據分析程序。
發(fā)表于 2016-02-23 14:251130136248read(409)comments(0)edit
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博python的安裝方式及解決方案 )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 82 次瀏覽 ? 2022-02-22 18:04
)
一:獲取app-key和app-secret
使用自己的微博賬號登錄微博開(kāi)放平臺(),在微博開(kāi)放中心的“創(chuàng )建應用”下創(chuàng )建應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您所需要的只是應用程序密鑰。和應用程序秘密
二:設置授權回調頁(yè)面
在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側的“應用信息”欄,會(huì )看到“App key”和“App Secret”,這兩個(gè)東西是后面程序中用到的。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
三:安裝微博python SDK
有兩種安裝方法:
1:下載新浪微博SDK
2:python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
四:實(shí)例驗證,獲取當前登錄用戶(hù)和他關(guān)注的用戶(hù)的最新微博(授權)
這里需要注意的是,當瀏覽器中彈出一個(gè)頁(yè)面時(shí),必須先點(diǎn)擊“授權”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面定向到新浪服務(wù)器,然后用戶(hù)將信息輸入新浪服務(wù)器并授權給我的應用訪(fǎng)問(wèn)用戶(hù)數據,這里我授權微博給下面的程序),授權后瀏覽器中的URL類(lèi)似:將代碼后面的代碼復制到控件中側面,程序需要讀取數據2024222384d5dc88316d21675259d73a
注意:如果要獲取其他信息,只需修改
statuses = client.statuses__friends_timeline()['statuses']
中的 statuss__friends_timeline
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser #python內置的包
APP_KEY = 'xxxxxxxx'#注意替換這里為自己申請的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = 'https://api.weibo.com/oauth2/d ... 3B%23回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
#可以打印下看看里面都有什么東西
statuses = client.statuses__friends_timeline()['statuses'] #獲取當前登錄用戶(hù)以及所關(guān)注用戶(hù)(已授權)的微博
length = len(statuses)
print length
#輸出了部分信息
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']
結果如下(截取部分數據):
以下是我的關(guān)注者的微博:
以上面的代碼為例,我們這里得到的信息是:
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博python的安裝方式及解決方案
)
一:獲取app-key和app-secret
使用自己的微博賬號登錄微博開(kāi)放平臺(),在微博開(kāi)放中心的“創(chuàng )建應用”下創(chuàng )建應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您所需要的只是應用程序密鑰。和應用程序秘密
二:設置授權回調頁(yè)面
在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側的“應用信息”欄,會(huì )看到“App key”和“App Secret”,這兩個(gè)東西是后面程序中用到的。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
三:安裝微博python SDK
有兩種安裝方法:
1:下載新浪微博SDK
2:python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
四:實(shí)例驗證,獲取當前登錄用戶(hù)和他關(guān)注的用戶(hù)的最新微博(授權)
這里需要注意的是,當瀏覽器中彈出一個(gè)頁(yè)面時(shí),必須先點(diǎn)擊“授權”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面定向到新浪服務(wù)器,然后用戶(hù)將信息輸入新浪服務(wù)器并授權給我的應用訪(fǎng)問(wèn)用戶(hù)數據,這里我授權微博給下面的程序),授權后瀏覽器中的URL類(lèi)似:將代碼后面的代碼復制到控件中側面,程序需要讀取數據2024222384d5dc88316d21675259d73a
注意:如果要獲取其他信息,只需修改
statuses = client.statuses__friends_timeline()['statuses']
中的 statuss__friends_timeline
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser #python內置的包
APP_KEY = 'xxxxxxxx'#注意替換這里為自己申請的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = 'https://api.weibo.com/oauth2/d ... 3B%23回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
#可以打印下看看里面都有什么東西
statuses = client.statuses__friends_timeline()['statuses'] #獲取當前登錄用戶(hù)以及所關(guān)注用戶(hù)(已授權)的微博
length = len(statuses)
print length
#輸出了部分信息
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']
結果如下(截取部分數據):
以下是我的關(guān)注者的微博:
以上面的代碼為例,我們這里得到的信息是:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博登錄訪(fǎng)問(wèn)第三方網(wǎng)站的高級進(jìn)階干貨需要注意哪些? )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 63 次瀏覽 ? 2022-02-22 18:00
)
在平時(shí)的項目開(kāi)發(fā)過(guò)程中,除了注冊這個(gè)網(wǎng)站賬號登錄外,還可以調用第三方接口登錄網(wǎng)站。這里我們以微博登錄為例。微博登錄包括身份認證、用戶(hù)關(guān)系和內容傳播。允許用戶(hù)登錄微博訪(fǎng)問(wèn)第三方網(wǎng)站、分享內容、同步信息。
1、首先需要將需要授權的用戶(hù)引導到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用戶(hù)同意授權,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、接下來(lái)需要根據上面得到的代碼兌換Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:
JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用獲取到的OAuth2.0 Access Token調用API獲取用戶(hù)身份,完成用戶(hù)登錄。
為了方便,我們先將get和post封裝到application下的common.php中:
應用通用文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器處理代碼Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博應用安全域名***/?backurl=***項目本地域名***/home/login/webLogin?";
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登錄成功";
}
}
}</p>
模板代碼 login.html:
DOCTYPE html>
微博登錄
點(diǎn)擊這里進(jìn)行微博登錄
渲染:
希望以上內容對您有所幫助。很多PHPer進(jìn)階的時(shí)候總會(huì )遇到一些問(wèn)題和瓶頸。編寫(xiě)業(yè)務(wù)代碼時(shí)沒(méi)有方向感。我不知道從哪里開(kāi)始改進(jìn)。我整理了其中一些。材料,包括但不限于:分布式架構、高擴展性、高性能、高并發(fā)、服務(wù)器性能調優(yōu)、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx和其他進(jìn)階干貨知識點(diǎn)可以免費分享給大家,需要的可以點(diǎn)這里鏈接或者關(guān)注下方我們的專(zhuān)欄
轉載:
轉載:
----------------------------------- ---------- ------------自有項目-------------- --------- ----------------------------------------- ----------------
//新浪授權登錄
public function weibo_login()
{
$key = "3700xxx";
$redirect_uri = "http://xxxx.xxxxx.com/wpapi/re ... 3B%3B
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return $this->fetch('weibo_register');
}
//新浪授權登錄--回到地址
public function web_login_back(){
$key = "370xxx";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "7124de4bdaa82ca2ccc52xxxxx";
$redirect_uri = "http://xxx.xxxxx.com/wpapi/reg ... 3B%3B
$url_post = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url_post);
$response->getStatusCode(); // 200
$response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$data = json_decode($response->getBody(), true);
// dump($data);die;
// $token = json_decode($data, true);
$token = $data;
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url_get = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$response_get = $client->request('get', $url_get);
$response_get->getStatusCode(); // 200
$response_get->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$info_info = json_decode($response_get->getBody(), true);
$info = $info_info;
dump($info);
if($info){
echo "登錄成功";
}
}
DOCTYPE html>
Title
微博授權登錄
點(diǎn)擊登錄
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博登錄訪(fǎng)問(wèn)第三方網(wǎng)站的高級進(jìn)階干貨需要注意哪些?
)
在平時(shí)的項目開(kāi)發(fā)過(guò)程中,除了注冊這個(gè)網(wǎng)站賬號登錄外,還可以調用第三方接口登錄網(wǎng)站。這里我們以微博登錄為例。微博登錄包括身份認證、用戶(hù)關(guān)系和內容傳播。允許用戶(hù)登錄微博訪(fǎng)問(wèn)第三方網(wǎng)站、分享內容、同步信息。
1、首先需要將需要授權的用戶(hù)引導到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用戶(hù)同意授權,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、接下來(lái)需要根據上面得到的代碼兌換Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:
JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用獲取到的OAuth2.0 Access Token調用API獲取用戶(hù)身份,完成用戶(hù)登錄。
為了方便,我們先將get和post封裝到application下的common.php中:
應用通用文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器處理代碼Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博應用安全域名***/?backurl=***項目本地域名***/home/login/webLogin?";
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登錄成功";
}
}
}</p>
模板代碼 login.html:
DOCTYPE html>
微博登錄
點(diǎn)擊這里進(jìn)行微博登錄
渲染:



希望以上內容對您有所幫助。很多PHPer進(jìn)階的時(shí)候總會(huì )遇到一些問(wèn)題和瓶頸。編寫(xiě)業(yè)務(wù)代碼時(shí)沒(méi)有方向感。我不知道從哪里開(kāi)始改進(jìn)。我整理了其中一些。材料,包括但不限于:分布式架構、高擴展性、高性能、高并發(fā)、服務(wù)器性能調優(yōu)、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx和其他進(jìn)階干貨知識點(diǎn)可以免費分享給大家,需要的可以點(diǎn)這里鏈接或者關(guān)注下方我們的專(zhuān)欄
轉載:
轉載:
----------------------------------- ---------- ------------自有項目-------------- --------- ----------------------------------------- ----------------
//新浪授權登錄
public function weibo_login()
{
$key = "3700xxx";
$redirect_uri = "http://xxxx.xxxxx.com/wpapi/re ... 3B%3B
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return $this->fetch('weibo_register');
}
//新浪授權登錄--回到地址
public function web_login_back(){
$key = "370xxx";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "7124de4bdaa82ca2ccc52xxxxx";
$redirect_uri = "http://xxx.xxxxx.com/wpapi/reg ... 3B%3B
$url_post = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url_post);
$response->getStatusCode(); // 200
$response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$data = json_decode($response->getBody(), true);
// dump($data);die;
// $token = json_decode($data, true);
$token = $data;
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url_get = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$response_get = $client->request('get', $url_get);
$response_get->getStatusCode(); // 200
$response_get->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$info_info = json_decode($response_get->getBody(), true);
$info = $info_info;
dump($info);
if($info){
echo "登錄成功";
}
}
DOCTYPE html>
Title
微博授權登錄
點(diǎn)擊登錄

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)發(fā)的api,1.第三方)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 73 次瀏覽 ? 2022-02-22 17:20
首先我們要拿到新浪微博開(kāi)發(fā)的API,然后仔細閱讀一些文檔規范,這樣就可以知道如果第三方應用想要分享內容到新浪微博平臺,
1.第三方申請需在新浪微博開(kāi)放平臺審核通過(guò)
client_ID=*****
client_SERCRET=*****
配置到config.properties,信息如下:
client_ID=*****
client_SERCRET=*****
redirect_URI=http://apps.weibo.com/ceshidemo
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https://rm.api.weibo.com/2/
response_type=code
2.用從新浪微博開(kāi)放平臺獲取的client_ID和client_SERCRET獲取AccessToken,
3.然后帶著(zhù)獲取的AccessToken訪(fǎng)問(wèn)新浪微博、發(fā)送體驗微博或者獲取當前用戶(hù)信息等
代碼如下:
public class WeiBoUtil2 extends WeiBoUtil {
public static final String POST_WEIBO_URL_WITH_CONTENT = "https://api.weibo.com/2/status ... 3B%3B
private static final Logger logger = Logger.getLogger(WeiBoUtil2.class);
public static Map header = new HashMap();
static {
header.put("Accept-Language", "zh-CN,zh;q=0.8");
header.put("User-Agent", "test sina api");
header.put("Accept-Charset", "utf-8;q=0.7,*;q=0.3");
}
/**
* 獲取當前用戶(hù)信息
*
* @param uid
*
*/
public static void showUser(String uid) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();// 通過(guò)code回去通行令類(lèi)
Users um = new Users();
um.client.setToken(accessToken.getAccessToken());// 設置通行令然后發(fā)布微博
try {
User user = um.showUserById(uid);// 獲取用戶(hù)
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
/**
* 獲取用戶(hù)的粉絲列表
*
* @param name
* @throws WeiboException
* when Weibo service or network is unavailable
*/
public static void findFriendsByScreenName(String name) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();
Friendships fm = new Friendships();
fm.client.setToken(accessToken.getAccessToken());
try {
UserWapper users = fm.getFollowersByName(name);
for (User u : users.getUsers()) {
Log.logInfo(u.toString());
}
} catch (WeiboException e) {
Log.logErr(null+ ":" + e.getMessage());
}
}
/**
* 獲取通行令方法
*
* @param userid
* 用戶(hù)名
* @param password
* 密碼
* @return AccessToken 通行令
* @throws WeiboException
* when userId or password is not OAuth HttpException when Weibo
* service or network is unavailable
* @author
*/
public static AccessToken refreshToken(String userid, String password) {
try {
String url = WeiboConfig.getValue("authorizeURL");// 微博認證授權地址
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("client_id", WeiboConfig
.getValue("client_ID"));// your client id
postMethod.addParameter("redirect_uri", WeiboConfig
.getValue("redirect_URI"));// your url
postMethod.addParameter("userId", userid);// 獲取微薄的useid
postMethod.addParameter("passwd", password);
postMethod.addParameter("isLoginSina", "0");
postMethod.addParameter("action", "submit");
postMethod.addParameter("response_type", WeiboConfig
.getValue("response_type"));// code
// 獲取post方法的參數
HttpMethodParams param = postMethod.getParams();
param.setContentCharset("UTF-8");// 進(jìn)行編碼轉換
List headers = new ArrayList();
// 偽造請求頭信頭
headers.add(new Header(
"Referer",
"https://api.weibo.com/oauth2/a ... 6quot;));
headers.add(new Header("Host", "api.weibo.com"));
// headers
// .add(new Header("User-Agent",
// "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"));
headers.add(new Header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)"));
ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
Protocol.registerProtocol("https", new Protocol("https", fcty, 443));
//HttpClient客戶(hù)端apache下面的api
HttpClient client = new HttpClient();
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
client.executeMethod(postMethod);
//獲得響應的狀態(tài)碼
int status = postMethod.getStatusCode();
if (status != 200 && status != 302) {
Log.logErr("請求Token返回的狀態(tài)碼:" + status);
}
// 獲取響應的頭信息中的 地址信息
Header location = postMethod.getResponseHeader("Location");
// 下面的方法是取出code
if (location != null) {
String retUrl = location.getValue();
int begin = retUrl.indexOf("code=");
if (begin != -1) {
int end = retUrl.indexOf("&", begin);
if (end == -1)
end = retUrl.length();
String code = retUrl.substring(begin + 5, end);
if (code != null) {
// 通過(guò)getAccessTokenByCode方法返回accessToken
Log.logInfo("location's code is :" + code);
return new Oauth().getAccessTokenByCode(code);
}
}
} else {
Log.logErr("location's code is :"+location);
}
} catch (WeiboException e) {
Log.logErr(e.getMessage());
} catch (HttpException e) {
Log.logErr(null);
} catch (IOException e) {
Log.logErr(e.getMessage());
}
Log.logErr("refresh token failed");
return null;
}
/**
* 發(fā)布一篇微博方法
*
* @param str
* 發(fā)送的微博正文
* @param userid
* 用戶(hù)ID
* @param password
* 用戶(hù)密碼
* @return String post請求返回的response內容
*/
public static String sendWeibo(String str, String userid, String password,
String accessToken) throws WeiboException {
Map params = new HashMap();
params.put("access_token", accessToken);
params.put("status", str);
params.put("lat", "39.920063467669495");
params.put("long", "116.46009815979004");
String respStr = postMethodRequestWithOutFile(POST_WEIBO_URL_WITH_CONTENT, params, header);
Log.logInfo("postMethodRequestWithOutFile responce-->" + respStr);
return respStr;
}
/**
* post請求發(fā)送方法
*
* @param url
* 發(fā)布微博的地址
* @param params
* 請求消息頭中的參數值
* @param header
* 請求頭信息
* @return 服務(wù)器端的響應信息
* @throws WeiboException
* when userId or password is not OAuth HttpException
* Exception when Weibo service or network is unavailable
*/
public static String postMethodRequestWithOutFile(String url,
Map params, Map header) {
Log.logInfo("post request is begin! url =" + url);
HttpClient hc = new HttpClient();
try {
PostMethod pm = new PostMethod(url);
if (header != null) {
for (String head_key : header.keySet()) {
if (head_key == null || header.get(head_key) == null)
continue;
pm.addRequestHeader(head_key, header.get(head_key));
}
}
if (params != null) {
for (String param_key : params.keySet()) {
if (param_key == null || params.get(param_key) == null)
continue;
pm.addParameter(param_key, params.get(param_key));
}
}
// 獲取params,然后進(jìn)行編碼,編成utf8格式
pm.getParams().setContentCharset("utf8");
hc.executeMethod(pm);
String ret = pm.getResponseBodyAsString();// 獲取響應體的字符串
Log.logInfo("post請求發(fā)出后返回的信息:" + ret);
return ret;
} catch (HttpException e) {
Log.logErr(null);
} catch (Exception e) {
Log.logErr(null);
} finally {
Log.logInfo("post request is end! url =" + url);
}
return null;
}
如果您有興趣獲取更多信息:添加以下請求:378437335 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)發(fā)的api,1.第三方)
首先我們要拿到新浪微博開(kāi)發(fā)的API,然后仔細閱讀一些文檔規范,這樣就可以知道如果第三方應用想要分享內容到新浪微博平臺,
1.第三方申請需在新浪微博開(kāi)放平臺審核通過(guò)
client_ID=*****
client_SERCRET=*****
配置到config.properties,信息如下:
client_ID=*****
client_SERCRET=*****
redirect_URI=http://apps.weibo.com/ceshidemo
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https://rm.api.weibo.com/2/
response_type=code
2.用從新浪微博開(kāi)放平臺獲取的client_ID和client_SERCRET獲取AccessToken,
3.然后帶著(zhù)獲取的AccessToken訪(fǎng)問(wèn)新浪微博、發(fā)送體驗微博或者獲取當前用戶(hù)信息等
代碼如下:
public class WeiBoUtil2 extends WeiBoUtil {
public static final String POST_WEIBO_URL_WITH_CONTENT = "https://api.weibo.com/2/status ... 3B%3B
private static final Logger logger = Logger.getLogger(WeiBoUtil2.class);
public static Map header = new HashMap();
static {
header.put("Accept-Language", "zh-CN,zh;q=0.8");
header.put("User-Agent", "test sina api");
header.put("Accept-Charset", "utf-8;q=0.7,*;q=0.3");
}
/**
* 獲取當前用戶(hù)信息
*
* @param uid
*
*/
public static void showUser(String uid) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();// 通過(guò)code回去通行令類(lèi)
Users um = new Users();
um.client.setToken(accessToken.getAccessToken());// 設置通行令然后發(fā)布微博
try {
User user = um.showUserById(uid);// 獲取用戶(hù)
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
/**
* 獲取用戶(hù)的粉絲列表
*
* @param name
* @throws WeiboException
* when Weibo service or network is unavailable
*/
public static void findFriendsByScreenName(String name) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();
Friendships fm = new Friendships();
fm.client.setToken(accessToken.getAccessToken());
try {
UserWapper users = fm.getFollowersByName(name);
for (User u : users.getUsers()) {
Log.logInfo(u.toString());
}
} catch (WeiboException e) {
Log.logErr(null+ ":" + e.getMessage());
}
}
/**
* 獲取通行令方法
*
* @param userid
* 用戶(hù)名
* @param password
* 密碼
* @return AccessToken 通行令
* @throws WeiboException
* when userId or password is not OAuth HttpException when Weibo
* service or network is unavailable
* @author
*/
public static AccessToken refreshToken(String userid, String password) {
try {
String url = WeiboConfig.getValue("authorizeURL");// 微博認證授權地址
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("client_id", WeiboConfig
.getValue("client_ID"));// your client id
postMethod.addParameter("redirect_uri", WeiboConfig
.getValue("redirect_URI"));// your url
postMethod.addParameter("userId", userid);// 獲取微薄的useid
postMethod.addParameter("passwd", password);
postMethod.addParameter("isLoginSina", "0");
postMethod.addParameter("action", "submit");
postMethod.addParameter("response_type", WeiboConfig
.getValue("response_type"));// code
// 獲取post方法的參數
HttpMethodParams param = postMethod.getParams();
param.setContentCharset("UTF-8");// 進(jìn)行編碼轉換
List headers = new ArrayList();
// 偽造請求頭信頭
headers.add(new Header(
"Referer",
"https://api.weibo.com/oauth2/a ... 6quot;));
headers.add(new Header("Host", "api.weibo.com"));
// headers
// .add(new Header("User-Agent",
// "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"));
headers.add(new Header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)"));
ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
Protocol.registerProtocol("https", new Protocol("https", fcty, 443));
//HttpClient客戶(hù)端apache下面的api
HttpClient client = new HttpClient();
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
client.executeMethod(postMethod);
//獲得響應的狀態(tài)碼
int status = postMethod.getStatusCode();
if (status != 200 && status != 302) {
Log.logErr("請求Token返回的狀態(tài)碼:" + status);
}
// 獲取響應的頭信息中的 地址信息
Header location = postMethod.getResponseHeader("Location");
// 下面的方法是取出code
if (location != null) {
String retUrl = location.getValue();
int begin = retUrl.indexOf("code=");
if (begin != -1) {
int end = retUrl.indexOf("&", begin);
if (end == -1)
end = retUrl.length();
String code = retUrl.substring(begin + 5, end);
if (code != null) {
// 通過(guò)getAccessTokenByCode方法返回accessToken
Log.logInfo("location's code is :" + code);
return new Oauth().getAccessTokenByCode(code);
}
}
} else {
Log.logErr("location's code is :"+location);
}
} catch (WeiboException e) {
Log.logErr(e.getMessage());
} catch (HttpException e) {
Log.logErr(null);
} catch (IOException e) {
Log.logErr(e.getMessage());
}
Log.logErr("refresh token failed");
return null;
}
/**
* 發(fā)布一篇微博方法
*
* @param str
* 發(fā)送的微博正文
* @param userid
* 用戶(hù)ID
* @param password
* 用戶(hù)密碼
* @return String post請求返回的response內容
*/
public static String sendWeibo(String str, String userid, String password,
String accessToken) throws WeiboException {
Map params = new HashMap();
params.put("access_token", accessToken);
params.put("status", str);
params.put("lat", "39.920063467669495");
params.put("long", "116.46009815979004");
String respStr = postMethodRequestWithOutFile(POST_WEIBO_URL_WITH_CONTENT, params, header);
Log.logInfo("postMethodRequestWithOutFile responce-->" + respStr);
return respStr;
}
/**
* post請求發(fā)送方法
*
* @param url
* 發(fā)布微博的地址
* @param params
* 請求消息頭中的參數值
* @param header
* 請求頭信息
* @return 服務(wù)器端的響應信息
* @throws WeiboException
* when userId or password is not OAuth HttpException
* Exception when Weibo service or network is unavailable
*/
public static String postMethodRequestWithOutFile(String url,
Map params, Map header) {
Log.logInfo("post request is begin! url =" + url);
HttpClient hc = new HttpClient();
try {
PostMethod pm = new PostMethod(url);
if (header != null) {
for (String head_key : header.keySet()) {
if (head_key == null || header.get(head_key) == null)
continue;
pm.addRequestHeader(head_key, header.get(head_key));
}
}
if (params != null) {
for (String param_key : params.keySet()) {
if (param_key == null || params.get(param_key) == null)
continue;
pm.addParameter(param_key, params.get(param_key));
}
}
// 獲取params,然后進(jìn)行編碼,編成utf8格式
pm.getParams().setContentCharset("utf8");
hc.executeMethod(pm);
String ret = pm.getResponseBodyAsString();// 獲取響應體的字符串
Log.logInfo("post請求發(fā)出后返回的信息:" + ret);
return ret;
} catch (HttpException e) {
Log.logErr(null);
} catch (Exception e) {
Log.logErr(null);
} finally {
Log.logInfo("post request is end! url =" + url);
}
return null;
}
如果您有興趣獲取更多信息:添加以下請求:378437335
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(中國的微博客正在醞釀一場(chǎng)新的大戰(圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-02-20 05:17
中國的微博似乎正在醞釀一場(chǎng)新的戰爭。
剛剛在推特上看到了 Moonlight Blog 的所有者 williamlong 的消息:
尊敬的開(kāi)發(fā)者您好:您的應用程序“@”使用的接口已關(guān)閉。原因是向其他社交平臺同步內容的功能違反了相關(guān)法律法規和政策。請根據我們的建議和《微博開(kāi)放平臺應用審核規范》對您的應用進(jìn)行調整,并提交重新開(kāi)放界面的申請。感謝您的支持與合作。
同時(shí),知名的新浪微博第三方同步客戶(hù)端fawave和微博通也確認使用的新浪微博API服務(wù)已被凍結。
那么這些第三方客戶(hù)違反了哪些法律法規呢?
fawave 的作者認為可能有以下原因導致被封:
五、競爭限制 b) 新浪開(kāi)放平臺插件應用產(chǎn)生的數據,禁止以任何形式查看或與開(kāi)放平臺外的任何數據進(jìn)行交互;…
2. 插件應用程序提供商的權利和義務(wù)。以任何方式開(kāi)發(fā)機器人外掛應用,包括但不限于綁定多平臺微博賬號、將新浪微博信息同步到其他微博平臺等。
微博說(shuō):
新浪微博欺負人,玩過(guò)河拆橋大游戲:據開(kāi)發(fā)者介紹,很多基于新浪微博開(kāi)放平臺接口開(kāi)發(fā)的應用已經(jīng)從數據接口禁用,新浪微博準備過(guò)河河,拆橋!期待更多的開(kāi)發(fā)者關(guān)注這件事,說(shuō)不定你的應用就是下一個(gè)被停止的應用。
微博是一個(gè)生態(tài)系統,平臺是一方面,而那些基于微博平臺開(kāi)發(fā)應用的第三方開(kāi)發(fā)者對于平臺的成功至關(guān)重要。36氪將密切關(guān)注此事并進(jìn)行更新。善待開(kāi)發(fā)者就是善待自己。
更新 1:fawave 現在功能齊全。
更新 2:(在微博上更新)fawave 的作者之一(@Python 愛(ài)好者)說(shuō) fawave 又回來(lái)了,但是,在某些時(shí)候,你可能會(huì )發(fā)現缺少一些東西。另外,我了解新浪微博開(kāi)放平臺。
相關(guān)新聞:新浪微博被迫撤出大量特殊微博賬號
以下為新浪微博應用開(kāi)發(fā)者協(xié)議:
新浪微博應用開(kāi)發(fā)者協(xié)議
一、定義
1.新浪開(kāi)放平臺
a) 新浪開(kāi)放平臺是指新浪擁有和提供的一些軟件、文檔和技術(shù)服務(wù),插件應用提供商基于這些軟件、文檔和技術(shù)服務(wù)向新浪提供插件應用;
b) 新浪開(kāi)放平臺收錄的技術(shù)服務(wù)包括但不限于:為插件應用提供數據接口服務(wù)、為插件應用提供數據統計服務(wù)、提供支付渠道和計費系統、提供營(yíng)銷(xiāo)解決方案和營(yíng)銷(xiāo)服務(wù)。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(中國的微博客正在醞釀一場(chǎng)新的大戰(圖))
中國的微博似乎正在醞釀一場(chǎng)新的戰爭。
剛剛在推特上看到了 Moonlight Blog 的所有者 williamlong 的消息:
尊敬的開(kāi)發(fā)者您好:您的應用程序“@”使用的接口已關(guān)閉。原因是向其他社交平臺同步內容的功能違反了相關(guān)法律法規和政策。請根據我們的建議和《微博開(kāi)放平臺應用審核規范》對您的應用進(jìn)行調整,并提交重新開(kāi)放界面的申請。感謝您的支持與合作。
同時(shí),知名的新浪微博第三方同步客戶(hù)端fawave和微博通也確認使用的新浪微博API服務(wù)已被凍結。
那么這些第三方客戶(hù)違反了哪些法律法規呢?
fawave 的作者認為可能有以下原因導致被封:
五、競爭限制 b) 新浪開(kāi)放平臺插件應用產(chǎn)生的數據,禁止以任何形式查看或與開(kāi)放平臺外的任何數據進(jìn)行交互;…
2. 插件應用程序提供商的權利和義務(wù)。以任何方式開(kāi)發(fā)機器人外掛應用,包括但不限于綁定多平臺微博賬號、將新浪微博信息同步到其他微博平臺等。
微博說(shuō):
新浪微博欺負人,玩過(guò)河拆橋大游戲:據開(kāi)發(fā)者介紹,很多基于新浪微博開(kāi)放平臺接口開(kāi)發(fā)的應用已經(jīng)從數據接口禁用,新浪微博準備過(guò)河河,拆橋!期待更多的開(kāi)發(fā)者關(guān)注這件事,說(shuō)不定你的應用就是下一個(gè)被停止的應用。
微博是一個(gè)生態(tài)系統,平臺是一方面,而那些基于微博平臺開(kāi)發(fā)應用的第三方開(kāi)發(fā)者對于平臺的成功至關(guān)重要。36氪將密切關(guān)注此事并進(jìn)行更新。善待開(kāi)發(fā)者就是善待自己。
更新 1:fawave 現在功能齊全。
更新 2:(在微博上更新)fawave 的作者之一(@Python 愛(ài)好者)說(shuō) fawave 又回來(lái)了,但是,在某些時(shí)候,你可能會(huì )發(fā)現缺少一些東西。另外,我了解新浪微博開(kāi)放平臺。
相關(guān)新聞:新浪微博被迫撤出大量特殊微博賬號
以下為新浪微博應用開(kāi)發(fā)者協(xié)議:
新浪微博應用開(kāi)發(fā)者協(xié)議
一、定義
1.新浪開(kāi)放平臺
a) 新浪開(kāi)放平臺是指新浪擁有和提供的一些軟件、文檔和技術(shù)服務(wù),插件應用提供商基于這些軟件、文檔和技術(shù)服務(wù)向新浪提供插件應用;
b) 新浪開(kāi)放平臺收錄的技術(shù)服務(wù)包括但不限于:為插件應用提供數據接口服務(wù)、為插件應用提供數據統計服務(wù)、提供支付渠道和計費系統、提供營(yíng)銷(xiāo)解決方案和營(yíng)銷(xiāo)服務(wù)。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 71 次瀏覽 ? 2022-02-19 14:03
想了解新浪微博API開(kāi)發(fā)入門(mén)中的用戶(hù)授權(PHP基礎)嗎?在本文中,我將講解新浪微博API開(kāi)發(fā)的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。我們先來(lái)關(guān)注一下:新浪微博,API開(kāi)發(fā),一起來(lái)學(xué)習。
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。一不小心接觸到新浪微博API開(kāi)發(fā)。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺,網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和介紹、各種語(yǔ)言的API功能介紹文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的使用PHP開(kāi)發(fā)新浪微博API。內容組織和解釋?zhuān)?br /> 新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。大家可以去查一下,我會(huì )從例子開(kāi)發(fā)的角度來(lái)介紹和講解。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號,或者直接用我們的新浪微博賬號登錄,進(jìn)入我的應用,然后按照提示創(chuàng )建我們自己的第三方應用。創(chuàng )建完成后,我們可以得到兩個(gè)授權App Key和App Secret值,這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵。
獲取到授權值后,我們就可以使用上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中。
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。在我們得到 $aurl 之后,我們可以使用 header() 直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后,會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:你可以將此鏈接設置為上一頁(yè),這樣授權完成后,會(huì )再次自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值,這是獲取下面授權的Access Token所必需的。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯,一般是這個(gè)問(wèn)題。你沒(méi)有設置 session keys 的值,當然下面無(wú)法獲取 Access Token 的值。必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上述代碼最終得到用戶(hù)授權的Access Token,一共有兩個(gè)值,存放在$last_key數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。至此基本完成,這就是一個(gè)完整的新浪微博用戶(hù)授權流程。
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里簡(jiǎn)單介紹一下獲取最新微博記錄的接口,其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為:public_timeline()。示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常我們拿到用戶(hù)授權的Access Token值后,保存在我們的用戶(hù)表中,對應我們應用中的賬號。之后,我們就不需要每次都去新浪微博的各個(gè)api接口了。認證。
上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里使用的是php進(jìn)行開(kāi)發(fā),所以使用Json格式數據有先天優(yōu)勢,如果返回Json格式數據,直接使用php函數json_decode () 可以轉換成php常用的數組格式。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇))
想了解新浪微博API開(kāi)發(fā)入門(mén)中的用戶(hù)授權(PHP基礎)嗎?在本文中,我將講解新浪微博API開(kāi)發(fā)的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。我們先來(lái)關(guān)注一下:新浪微博,API開(kāi)發(fā),一起來(lái)學(xué)習。
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。一不小心接觸到新浪微博API開(kāi)發(fā)。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺,網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和介紹、各種語(yǔ)言的API功能介紹文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的使用PHP開(kāi)發(fā)新浪微博API。內容組織和解釋?zhuān)?br /> 新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。大家可以去查一下,我會(huì )從例子開(kāi)發(fā)的角度來(lái)介紹和講解。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號,或者直接用我們的新浪微博賬號登錄,進(jìn)入我的應用,然后按照提示創(chuàng )建我們自己的第三方應用。創(chuàng )建完成后,我們可以得到兩個(gè)授權App Key和App Secret值,這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵。
獲取到授權值后,我們就可以使用上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中。
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。在我們得到 $aurl 之后,我們可以使用 header() 直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后,會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:你可以將此鏈接設置為上一頁(yè),這樣授權完成后,會(huì )再次自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值,這是獲取下面授權的Access Token所必需的。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯,一般是這個(gè)問(wèn)題。你沒(méi)有設置 session keys 的值,當然下面無(wú)法獲取 Access Token 的值。必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上述代碼最終得到用戶(hù)授權的Access Token,一共有兩個(gè)值,存放在$last_key數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。至此基本完成,這就是一個(gè)完整的新浪微博用戶(hù)授權流程。
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里簡(jiǎn)單介紹一下獲取最新微博記錄的接口,其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為:public_timeline()。示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常我們拿到用戶(hù)授權的Access Token值后,保存在我們的用戶(hù)表中,對應我們應用中的賬號。之后,我們就不需要每次都去新浪微博的各個(gè)api接口了。認證。
上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里使用的是php進(jìn)行開(kāi)發(fā),所以使用Json格式數據有先天優(yōu)勢,如果返回Json格式數據,直接使用php函數json_decode () 可以轉換成php常用的數組格式。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Google+Hangout新功能曝光:屏幕共享、谷歌文檔)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 88 次瀏覽 ? 2022-03-05 03:15
9月21日消息,據外媒報道,隨著(zhù)Google+正式向公眾開(kāi)放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同時(shí)也為開(kāi)發(fā)者開(kāi)放了Hangouts API接口。
大約一周前,媒體預測 Google+ 的 API 至少需要幾個(gè)月的時(shí)間。然而,預測后的第二天,谷歌就招募了“值得信賴(lài)的”開(kāi)發(fā)人員對 Google+ API 進(jìn)行內部測試。谷歌當時(shí)不喜歡這個(gè)消息,并試圖尋找告密者。然而,今天,這些 API 已被確認正式開(kāi)放。
據了解,Hangouts API 目前僅處于“開(kāi)發(fā)者預覽”階段,產(chǎn)品尚未成熟,僅開(kāi)放用于測試目的。這些新的 API 允許開(kāi)發(fā)人員在環(huán)聊或 Google 的 YouTube 播放器等實(shí)時(shí)應用程序中創(chuàng )建自己的體驗。Youtube 播放器使 Google+ 用戶(hù)可以通過(guò)環(huán)聊功能同時(shí)觀(guān)看視頻節目。
Google 今天還宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 編輯和繪圖,激勵開(kāi)發(fā)人員充分利用 Hangouts API 來(lái)開(kāi)發(fā)更具創(chuàng )意的應用程序。
API開(kāi)放的消息已經(jīng)在Google+官方博客上看到了。目前,API 開(kāi)發(fā)的重點(diǎn)是共享公共信息,而不是訪(fǎng)問(wèn)用戶(hù)的社交圈。API 的權限是“只讀的”,但這對于喜歡 Google+ 的開(kāi)發(fā)者來(lái)說(shuō)已經(jīng)足夠了。
Google+的核心是圈子,所以只有能夠訪(fǎng)問(wèn)朋友圈的API才是開(kāi)發(fā)者真正期待的。但是,這樣的 API 可能需要等待很長(cháng)時(shí)間,因為它過(guò)于復雜并且涉及棘手的隱私問(wèn)題。
要使用這些 API,開(kāi)發(fā)人員需要創(chuàng )建一個(gè) Web 應用程序并在 Google 注冊。開(kāi)發(fā)者還需要指定允許加載應用程序的開(kāi)發(fā)者,然后程序就可以像普通的 Web 應用程序一樣運行,并且可以同步使用 API。通過(guò)為應用創(chuàng )建“共享狀態(tài)”,用戶(hù)可以即時(shí)獲取參與共享者的狀態(tài)信息。這包括多媒體播放 API 的狀態(tài)信息,Hangout 參與者可以即時(shí)更新其他人的“靜音”、“影評”等信息。
至于 Hangouts,媒體對 Google+ Hangouts 的高度關(guān)注源于 Facebook 提供了許多類(lèi)似的功能,這迫使 Google+ 的受歡迎程度下降。不難想象,谷歌肯定會(huì )推廣新的環(huán)聊功能,并認為這是 Facebook 所沒(méi)有的服務(wù)。雖然 Facebook 已經(jīng)通過(guò)與 Skype 的集成來(lái)提供視頻聊天,但它僅限于兩個(gè)人,而不是一個(gè)群組。
環(huán)聊對開(kāi)發(fā)者來(lái)說(shuō)很有趣,開(kāi)發(fā)者可以創(chuàng )建在線(xiàn)會(huì )議、網(wǎng)絡(luò )播客、在線(xiàn)教程、在線(xiàn)游戲等應用程序,這些應用程序可能會(huì )成為那些付費應用程序的潛在替代品。
谷歌工程師克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上寫(xiě)道,“這些 API 接口允許用戶(hù)獲取發(fā)布在 Google+ 上的公共信息,這對我們來(lái)說(shuō)是一個(gè)開(kāi)始。世界上沒(méi)有好的東西。它建立在一個(gè)真空,現在我們有了這個(gè)基礎,我們可以討論如何讓 Google+ 變得更好?!? 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(Google+Hangout新功能曝光:屏幕共享、谷歌文檔)
9月21日消息,據外媒報道,隨著(zhù)Google+正式向公眾開(kāi)放,谷歌今天在其官方博客中宣布了一系列新的Hangout功能,同時(shí)也為開(kāi)發(fā)者開(kāi)放了Hangouts API接口。

大約一周前,媒體預測 Google+ 的 API 至少需要幾個(gè)月的時(shí)間。然而,預測后的第二天,谷歌就招募了“值得信賴(lài)的”開(kāi)發(fā)人員對 Google+ API 進(jìn)行內部測試。谷歌當時(shí)不喜歡這個(gè)消息,并試圖尋找告密者。然而,今天,這些 API 已被確認正式開(kāi)放。
據了解,Hangouts API 目前僅處于“開(kāi)發(fā)者預覽”階段,產(chǎn)品尚未成熟,僅開(kāi)放用于測試目的。這些新的 API 允許開(kāi)發(fā)人員在環(huán)聊或 Google 的 YouTube 播放器等實(shí)時(shí)應用程序中創(chuàng )建自己的體驗。Youtube 播放器使 Google+ 用戶(hù)可以通過(guò)環(huán)聊功能同時(shí)觀(guān)看視頻節目。
Google 今天還宣布了 Google+ Hangout 的新功能,例如屏幕共享、Google Docs 編輯和繪圖,激勵開(kāi)發(fā)人員充分利用 Hangouts API 來(lái)開(kāi)發(fā)更具創(chuàng )意的應用程序。
API開(kāi)放的消息已經(jīng)在Google+官方博客上看到了。目前,API 開(kāi)發(fā)的重點(diǎn)是共享公共信息,而不是訪(fǎng)問(wèn)用戶(hù)的社交圈。API 的權限是“只讀的”,但這對于喜歡 Google+ 的開(kāi)發(fā)者來(lái)說(shuō)已經(jīng)足夠了。
Google+的核心是圈子,所以只有能夠訪(fǎng)問(wèn)朋友圈的API才是開(kāi)發(fā)者真正期待的。但是,這樣的 API 可能需要等待很長(cháng)時(shí)間,因為它過(guò)于復雜并且涉及棘手的隱私問(wèn)題。
要使用這些 API,開(kāi)發(fā)人員需要創(chuàng )建一個(gè) Web 應用程序并在 Google 注冊。開(kāi)發(fā)者還需要指定允許加載應用程序的開(kāi)發(fā)者,然后程序就可以像普通的 Web 應用程序一樣運行,并且可以同步使用 API。通過(guò)為應用創(chuàng )建“共享狀態(tài)”,用戶(hù)可以即時(shí)獲取參與共享者的狀態(tài)信息。這包括多媒體播放 API 的狀態(tài)信息,Hangout 參與者可以即時(shí)更新其他人的“靜音”、“影評”等信息。
至于 Hangouts,媒體對 Google+ Hangouts 的高度關(guān)注源于 Facebook 提供了許多類(lèi)似的功能,這迫使 Google+ 的受歡迎程度下降。不難想象,谷歌肯定會(huì )推廣新的環(huán)聊功能,并認為這是 Facebook 所沒(méi)有的服務(wù)。雖然 Facebook 已經(jīng)通過(guò)與 Skype 的集成來(lái)提供視頻聊天,但它僅限于兩個(gè)人,而不是一個(gè)群組。
環(huán)聊對開(kāi)發(fā)者來(lái)說(shuō)很有趣,開(kāi)發(fā)者可以創(chuàng )建在線(xiàn)會(huì )議、網(wǎng)絡(luò )播客、在線(xiàn)教程、在線(xiàn)游戲等應用程序,這些應用程序可能會(huì )成為那些付費應用程序的潛在替代品。
谷歌工程師克里斯·查博特 (Chris Chabot) 在 Google+ 官方博客上寫(xiě)道,“這些 API 接口允許用戶(hù)獲取發(fā)布在 Google+ 上的公共信息,這對我們來(lái)說(shuō)是一個(gè)開(kāi)始。世界上沒(méi)有好的東西。它建立在一個(gè)真空,現在我們有了這個(gè)基礎,我們可以討論如何讓 Google+ 變得更好?!?
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(APPKEY和APPSECRET寫(xiě)進(jìn)去.php訪(fǎng)問(wèn))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 92 次瀏覽 ? 2022-03-04 12:16
1.訪(fǎng)問(wèn),選擇我是開(kāi)發(fā)者,選擇創(chuàng )建應用,填寫(xiě)開(kāi)發(fā)者信息,成功后獲取你的APP KEY和APP SECRET,復制,保存。
2.到接口文檔下載SDK文檔,選擇PHP語(yǔ)言,看到“authentication through OAuth”,我用的是這個(gè),點(diǎn)擊下面鏈接下載解壓到本地應用網(wǎng)站 的根目錄。
3.配置文件config.php,將你的APP KEY和APP SECRET寫(xiě)入其中。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件
此時(shí)你會(huì )發(fā)現出錯了: 注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php 第13行
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,忽略它,點(diǎn)擊下面的鏈接,然后報錯:對不起,那個(gè)頁(yè)面不存在!
仔細查看 index.php。剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此我們不難想到這個(gè)過(guò)程:首先獲取本地配置文件config.php中的APP KEY和APP SECRET,然后我們要驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面上寫(xiě)微博,最后點(diǎn)擊發(fā)布,從新浪官方微博登錄,就可以看到剛才的消息發(fā)布文章消息,下面要標注“from xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,就是它所在目錄的虛擬域名的地址,這樣就可以返回callback.php,這樣就找不到頁(yè)面了。錯誤的。例如:我的本地虛擬凹陷是指向文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那么我將$_SERVER['SCRIPT_URI']改成,連接到下面的/callback.php 就可以了。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weebolist.php。進(jìn)入后你會(huì )驚訝:挺粗糙的,沒(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)入。我的微博,去微博發(fā)布和列表頁(yè)weibolist.php,然后發(fā)布微博,就OK了。剩下的文件weibooauth.php是一個(gè)類(lèi)文件,里面有很多類(lèi)和函數,都是之前用到的。如果你有興趣,你可以研究它,但你可以忽略它。還有一個(gè)我一無(wú)所知的 .DS_Stor。打開(kāi)就是亂碼,我不在乎。估計沒(méi)用。
另外提醒大家注意頁(yè)面的編碼格式,如果出現亂碼請耐心調試。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(APPKEY和APPSECRET寫(xiě)進(jìn)去.php訪(fǎng)問(wèn))
1.訪(fǎng)問(wèn),選擇我是開(kāi)發(fā)者,選擇創(chuàng )建應用,填寫(xiě)開(kāi)發(fā)者信息,成功后獲取你的APP KEY和APP SECRET,復制,保存。
2.到接口文檔下載SDK文檔,選擇PHP語(yǔ)言,看到“authentication through OAuth”,我用的是這個(gè),點(diǎn)擊下面鏈接下載解壓到本地應用網(wǎng)站 的根目錄。
3.配置文件config.php,將你的APP KEY和APP SECRET寫(xiě)入其中。在瀏覽器中打開(kāi)這一層目錄,自動(dòng)運行index.php文件
此時(shí)你會(huì )發(fā)現出錯了: 注意:Undefined index: SCRIPT_URI in D:\www\weibodemo\index.php 第13行
打開(kāi)index.php,發(fā)現$_SERVER['SCRIPT_URI'],$_SERVER的參數根本沒(méi)有這個(gè)SCRIPT_URI,忽略它,點(diǎn)擊下面的鏈接,然后報錯:對不起,那個(gè)頁(yè)面不存在!
仔細查看 index.php。剛才點(diǎn)擊的鏈接地址是由WeiboOAuth類(lèi)中的getAuthorizeURL方法生成的,和下一個(gè)回調函數相關(guān),就是callback.php文件。
由此我們不難想到這個(gè)過(guò)程:首先獲取本地配置文件config.php中的APP KEY和APP SECRET,然后我們要驗證APP KEY是否合法,并詢(xún)問(wèn)我們是否授權應用同步更新微博,如果條件成立,則通過(guò)callback.php返回本地,我們可以在這個(gè)回調頁(yè)面上寫(xiě)微博,最后點(diǎn)擊發(fā)布,從新浪官方微博登錄,就可以看到剛才的消息發(fā)布文章消息,下面要標注“from xxx”
這個(gè)道理不難理解。把$_SERVER['SCRIPT_URI']改成我們本地的地址,就是它所在目錄的虛擬域名的地址,這樣就可以返回callback.php,這樣就找不到頁(yè)面了。錯誤的。例如:我的本地虛擬凹陷是指向文件夾d:/www/,而我的weibodemo文件夾放在/www/下,那么我將$_SERVER['SCRIPT_URI']改成,連接到下面的/callback.php 就可以了。
這樣你就可以在顯示“授權完成”后點(diǎn)擊進(jìn)入你的微博界面weebolist.php。進(jìn)入后你會(huì )驚訝:挺粗糙的,沒(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)入。我的微博,去微博發(fā)布和列表頁(yè)weibolist.php,然后發(fā)布微博,就OK了。剩下的文件weibooauth.php是一個(gè)類(lèi)文件,里面有很多類(lèi)和函數,都是之前用到的。如果你有興趣,你可以研究它,但你可以忽略它。還有一個(gè)我一無(wú)所知的 .DS_Stor。打開(kāi)就是亂碼,我不在乎。估計沒(méi)用。
另外提醒大家注意頁(yè)面的編碼格式,如果出現亂碼請耐心調試。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇)的相關(guān)內容嗎)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2022-03-02 09:23
想了解新浪微博API開(kāi)發(fā)的用戶(hù)授權(PHP基礎)?、API開(kāi)發(fā)一起學(xué)習
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。開(kāi)發(fā)者平臺的網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和各種語(yǔ)言的API功能介紹、文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天就簡(jiǎn)單整理一下在開(kāi)發(fā)學(xué)習過(guò)程中使用PHP開(kāi)發(fā)新浪微博API的內容。和描述
新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上非常清晰完整。我們可以去檢查一下。這里我將從示例開(kāi)發(fā)的角度來(lái)介紹和解釋。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號或者直接使用我們的新浪微博賬號登錄我的app,按照提示創(chuàng )建自己的第三方app。創(chuàng )建完成后,我們可以得到兩個(gè)授權的App Keys和App Secret值這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵
獲取到授權值后,我們可以使用上面的代碼獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。獲取到$aurl后,我們可以使用header()直接跳轉到授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:可以將此鏈接設置為上一頁(yè),這樣授權完成后會(huì )自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值。需要獲取下方授權的Access Token。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,發(fā)現總是出錯。都是關(guān)于這個(gè)問(wèn)題的。您尚未設置會(huì )話(huà)密鑰值。當然,你不能得到下面的Access Token的值。你必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上面的代碼最終得到了用戶(hù)授權的Access Token的兩個(gè)值。它們存儲在 $last_key 數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。這基本完成了。這是新浪微博用戶(hù)授權的完整流程
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。在這里,我將獲得最新的微博記錄。這個(gè)界面會(huì )給出一個(gè)簡(jiǎn)單的解釋。其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為: public_timeline() 示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常,我們在獲取到用戶(hù)授權的Access Token值后,將其保存在我們的用戶(hù)表中,并對應于我們應用程序中的賬戶(hù)。我們調用新浪微博的各個(gè)api接口后,不需要每次都進(jìn)行認證。
上面的代碼很簡(jiǎn)單,就是將 WeiboClient 對象實(shí)例化,然后直接調用接口函數 public_timeline 來(lái)獲取返回的信息。如果沒(méi)有報錯,新浪微博api接口返回的數據格式一般是Json格式或者xml格式,我們這里使用php。對于開(kāi)發(fā)來(lái)說(shuō),使用 Json 格式的數據具有先天的優(yōu)勢。如果返回Json格式數據,可以直接使用php函數json_decode()將其轉換為php常用的數組格式。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇)的相關(guān)內容嗎)
想了解新浪微博API開(kāi)發(fā)的用戶(hù)授權(PHP基礎)?、API開(kāi)發(fā)一起學(xué)習
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。開(kāi)發(fā)者平臺的網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和各種語(yǔ)言的API功能介紹、文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天就簡(jiǎn)單整理一下在開(kāi)發(fā)學(xué)習過(guò)程中使用PHP開(kāi)發(fā)新浪微博API的內容。和描述
新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上非常清晰完整。我們可以去檢查一下。這里我將從示例開(kāi)發(fā)的角度來(lái)介紹和解釋。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號或者直接使用我們的新浪微博賬號登錄我的app,按照提示創(chuàng )建自己的第三方app。創(chuàng )建完成后,我們可以得到兩個(gè)授權的App Keys和App Secret值這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵
獲取到授權值后,我們可以使用上面的代碼獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。獲取到$aurl后,我們可以使用header()直接跳轉到授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:可以將此鏈接設置為上一頁(yè),這樣授權完成后會(huì )自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值。需要獲取下方授權的Access Token。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,發(fā)現總是出錯。都是關(guān)于這個(gè)問(wèn)題的。您尚未設置會(huì )話(huà)密鑰值。當然,你不能得到下面的Access Token的值。你必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上面的代碼最終得到了用戶(hù)授權的Access Token的兩個(gè)值。它們存儲在 $last_key 數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。這基本完成了。這是新浪微博用戶(hù)授權的完整流程
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。在這里,我將獲得最新的微博記錄。這個(gè)界面會(huì )給出一個(gè)簡(jiǎn)單的解釋。其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為: public_timeline() 示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常,我們在獲取到用戶(hù)授權的Access Token值后,將其保存在我們的用戶(hù)表中,并對應于我們應用程序中的賬戶(hù)。我們調用新浪微博的各個(gè)api接口后,不需要每次都進(jìn)行認證。
上面的代碼很簡(jiǎn)單,就是將 WeiboClient 對象實(shí)例化,然后直接調用接口函數 public_timeline 來(lái)獲取返回的信息。如果沒(méi)有報錯,新浪微博api接口返回的數據格式一般是Json格式或者xml格式,我們這里使用php。對于開(kāi)發(fā)來(lái)說(shuō),使用 Json 格式的數據具有先天的優(yōu)勢。如果返回Json格式數據,可以直接使用php函數json_decode()將其轉換為php常用的數組格式。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 78 次瀏覽 ? 2022-03-01 18:27
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 81 次瀏覽 ? 2022-03-01 18:27
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(這時(shí)候微博同步工具介紹、FaWave、微博通、瑪撒)
隨著(zhù)微博成為各種門(mén)戶(hù)和大小的標準網(wǎng)站,微博正在成為常態(tài),2010年成為國內微博爆發(fā)之年。隨著(zhù)微博的使用越來(lái)越多,問(wèn)題就出現了。比如我用推特、新浪微博、騰訊微博、凡夫、仙果聯(lián)博等很多微博,當然沒(méi)精力在每個(gè)博客上說(shuō)相同或相似的話(huà),那我需要一個(gè)多微博同步工具可用。本文將介紹follow5、FaWave、微博通、馬薩和恒派微博通等多微博同步工具。
一、微博同步工具
有很多專(zhuān)門(mén)的微博同步工具,這里有四個(gè)如FaWave。
1.Chrome 擴展 FaWave
如果你使用 Chrome 瀏覽器,那么你有福了,你可以輕松使用這個(gè) FaWave 擴展在網(wǎng)頁(yè)內輕松發(fā)送和接收微博。FaWave擴展由女學(xué)生李華宇開(kāi)發(fā),支持騰訊微博、新浪微博、推特等多個(gè)平臺。
FaWave不是一個(gè)簡(jiǎn)單的微博同步工具,而是一個(gè)微博管理平臺,可以讓你在Chorme瀏覽器中查看每條微博的更新條目,同時(shí)回復、更新和同步,非常方便,但它是同步推特非常方便。當你需要使用自己的api時(shí),在窗口中彈出最新的微博提示也有點(diǎn)煩人。
2.微博
微博通是集風(fēng)網(wǎng)開(kāi)發(fā)的多微博同步工具。功能齊全,支持多達22個(gè)微博平臺同步。也可以綁定Gtalk、QQ、MSN機器人,及時(shí)同步。
微博通還提供了Chrome瀏覽器擴展,以及android和webOS客戶(hù)端,還有分享插件,功能比較齊全。然而,也許我們想要的只是及時(shí)、安全和完美的同步。
3.馬薩內特
是一個(gè)微博聚合平臺。雖然它支持的平臺不如微博通多(目前支持15個(gè)),支持的平臺和應用也不如微博通那么完善,但提供了相對獨特的服務(wù)。那就是數據展示業(yè)務(wù),可以看到自己微博的各種統計數據,還提供評論、分享、回復等功能,值得一試。
4.微博分享
也叫微博通,域名有些相似,但是向派微博通更注重各個(gè)平臺的應用。除了網(wǎng)頁(yè)版微博,我們還提供跨平臺應用微博空中版,支持在Windows、Mac和Linux上運行。同時(shí)在手機客戶(hù)端也表現不錯,提供S60V3、S60、iPHone、Android和iPad版本的微博,幾乎所有平臺都能找到合適的應用。
二、支持微博與微博同步
有些微博本身并不知名,但原生支持與其他知名微博同步,可以作為多微博同步的工具。
1.關(guān)注5
follow5是我目前使用的微博同步應用。follow5的5步大同,可以綁定26條微博。授權后可以自動(dòng)同步到各個(gè)微博。支持Gtalk和QQ機器人發(fā)布,follow5最大的優(yōu)點(diǎn)是可以自動(dòng)同步到twitter,不需要api之類(lèi)的翻墻。
2. 喃喃自語(yǔ),怎么辦
這個(gè)相信不用多介紹了,包括凡夫、耳語(yǔ)、怎么辦等。作為國內較早模仿推特的獨立微博網(wǎng)站,還有很大的發(fā)展空間,但它已經(jīng)經(jīng)歷了很長(cháng)時(shí)間。被維護后,雖然回來(lái)了,但所有的門(mén)戶(hù)網(wǎng)站都陸續進(jìn)入微博,占據了很大的市場(chǎng)。于是,回來(lái)的粉絲也逐漸被遺忘了,耳語(yǔ)和做事被當作與微博同步的微博。偶爾會(huì )提到博。
三、其他多微博同步應用
1.一堆微博同步工具
一堆微博是iSouth開(kāi)發(fā)的微博同步小程序。界面和使用都非常簡(jiǎn)單。最大的好處是可以自由選擇同步到那些微博。
2.Wordpress 博客文章同步到多微博
鄭勇的博客介紹了一種利用微博通和wp-tsina插件同步wordpress文章到各種微博的方法,非常實(shí)用。原文在這里,這里不再贅述。
3.使用Ubiquity同步多條微博
讓我介紹另一種從黑白天空中衍生出來(lái)的方法。Ubiquity用于同步騰訊微博網(wǎng)站等18條微博。我看起來(lái)有點(diǎn)負責,喜歡折騰的朋友可以試試。
四、使用多微博同步的幾點(diǎn)建議
1.盡量只使用一種微博同步方式。不管你用的是哪一種多微博同步工具,最好都選一個(gè),一直用,防止多次同步和無(wú)限同步循環(huán)。
2.謹慎使用同步工具來(lái)發(fā)推文。既然要同步到每條微博,當然需要一些有價(jià)值的東西。比如你原本在新浪微博上回復了別人的內容,但是卻同步到每條微博,當然會(huì )讓人一頭霧水。其次,每條微博的用戶(hù)群不同,除了同步,還需要重點(diǎn)關(guān)注。
3.就個(gè)人而言,我目前使用 FaWave。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(比較簡(jiǎn)單的操作,老鳥(niǎo)可飛過(guò),只為新手指路!)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 405 次瀏覽 ? 2022-03-01 12:17
換句話(huà)說(shuō),我一年前就想寫(xiě)這個(gè),我從來(lái)沒(méi)有想過(guò)。最近發(fā)現很多人都在做這方面的申請(雖然RR傷心,陌陌準備出發(fā)),但還是總結一下自己的經(jīng)驗,分享給有需要的朋友!其實(shí)也是比較簡(jiǎn)單的操作,老鳥(niǎo)會(huì )飛,只適合新手。
QQ同時(shí)登錄
將上述地址放在前端頁(yè)面點(diǎn)擊鏈接調用TX第三方對應的登錄界面(有PAD、手機、PC類(lèi)型),輸入TX賬號登錄并授權(前提是您的站點(diǎn)已通過(guò)認證),否則只能使用測試賬號登錄(申請注冊的賬號)。
授權完成后,可以進(jìn)入回調頁(yè)面進(jìn)行操作或獲取用戶(hù)信息等。獲取登錄用戶(hù)信息的接口為get_user_info,調用如下:
1
https://graph.qq.com/user/get_ ... PENID
將access_token替換為登錄后返回地址欄的access_token,oauth_consumer_key為申請的appid,openid在授權過(guò)程中生成,可直接獲取。調用 $->get_openid() 來(lái)獲取它。這是一個(gè)簡(jiǎn)單的TX登錄授權和獲取用戶(hù)信息。
同步登錄新浪
將獲取的登錄地址放在前端,點(diǎn)擊跳轉微博第三方登錄界面。這里還可以設置各種終端的來(lái)電顯示效果。比較完美的一點(diǎn)是提供了各種調用結果錯誤碼的解釋?zhuān)梢詭椭率指旄行У氖褂?。授權完成后,可以調用回調頁(yè)面獲取用戶(hù)信息等操作。由于微博的接口功能比較多,就不一一舉例了(附在SDK文末)。
RR 同步登錄
和上面兩個(gè)例子一樣,操作完成后,對應的回調頁(yè)面就可以處理結果了?。ǜ皆赟DK文章末尾)
SDK下載:QQSDK、WBSDK、RRSDK
?。ńY束) 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(比較簡(jiǎn)單的操作,老鳥(niǎo)可飛過(guò),只為新手指路!)
換句話(huà)說(shuō),我一年前就想寫(xiě)這個(gè),我從來(lái)沒(méi)有想過(guò)。最近發(fā)現很多人都在做這方面的申請(雖然RR傷心,陌陌準備出發(fā)),但還是總結一下自己的經(jīng)驗,分享給有需要的朋友!其實(shí)也是比較簡(jiǎn)單的操作,老鳥(niǎo)會(huì )飛,只適合新手。
QQ同時(shí)登錄
將上述地址放在前端頁(yè)面點(diǎn)擊鏈接調用TX第三方對應的登錄界面(有PAD、手機、PC類(lèi)型),輸入TX賬號登錄并授權(前提是您的站點(diǎn)已通過(guò)認證),否則只能使用測試賬號登錄(申請注冊的賬號)。
授權完成后,可以進(jìn)入回調頁(yè)面進(jìn)行操作或獲取用戶(hù)信息等。獲取登錄用戶(hù)信息的接口為get_user_info,調用如下:
1
https://graph.qq.com/user/get_ ... PENID
將access_token替換為登錄后返回地址欄的access_token,oauth_consumer_key為申請的appid,openid在授權過(guò)程中生成,可直接獲取。調用 $->get_openid() 來(lái)獲取它。這是一個(gè)簡(jiǎn)單的TX登錄授權和獲取用戶(hù)信息。
同步登錄新浪
將獲取的登錄地址放在前端,點(diǎn)擊跳轉微博第三方登錄界面。這里還可以設置各種終端的來(lái)電顯示效果。比較完美的一點(diǎn)是提供了各種調用結果錯誤碼的解釋?zhuān)梢詭椭率指旄行У氖褂?。授權完成后,可以調用回調頁(yè)面獲取用戶(hù)信息等操作。由于微博的接口功能比較多,就不一一舉例了(附在SDK文末)。
RR 同步登錄
和上面兩個(gè)例子一樣,操作完成后,對應的回調頁(yè)面就可以處理結果了?。ǜ皆赟DK文章末尾)
SDK下載:QQSDK、WBSDK、RRSDK
?。ńY束)
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博ID獲取用戶(hù)發(fā)布過(guò)的歷史微博內容研究了)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 77 次瀏覽 ? 2022-02-28 05:07
上面調用的是通過(guò)微博ID獲取用戶(hù)發(fā)布的歷史微博內容,所以研究了一下新浪微博提供的API。
1 首先,在微博開(kāi)放中心下的“創(chuàng )建應用”下創(chuàng )建一個(gè)應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您只需要應用程序密鑰和應用程序秘密
2 在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側“應用信息”一欄,會(huì )看到“應用密鑰”和“應用程序秘密”。稍后將在程序中使用這些東西。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
3 去下載新浪微博SDK,python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
4 實(shí)例驗證碼,通過(guò)微博提供的API抓取授權用戶(hù)及其關(guān)注者的微博:這里需要注意的是,當瀏覽器彈出頁(yè)面時(shí),必須先點(diǎn)擊“授權”(OAuth 2認證在這里執行,我了解到,用戶(hù)訪(fǎng)問(wèn)我的應用程序后,頁(yè)面被定向到新浪服務(wù)器,然后用戶(hù)向新浪服務(wù)器輸入信息,授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據,網(wǎng)址類(lèi)似:復制代碼后代碼到控制端,程序需要讀取數據2024222384d5dc88316d21675259d73a
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser#python內置的包
import pymongo
from pymongo import MongoClient
APP_KEY = '剛才那個(gè)App Key'#注意替換這里為自己申請的App信息
APP_SECRET = '剛才那個(gè)App Secret'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'#回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
'''
#可以打印下看看里面都有什么東西
#print client.statuses__public_timeline()
statuses = client.statuses__public_timeline()['statuses']
length = len(statuses)
#輸出了部分信息
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']
'''
#獲取授權用戶(hù)及其關(guān)注好友的微博信息并寫(xiě)入mongo數據庫
pagenum=1#微博API返回的微博數據是分頁(yè)形式的,在A(yíng)PI中通過(guò)設置頁(yè)碼來(lái)讀取數據
write_location=MongoClient('localhost',27017)['data']['weiboapi_test']#這里是我自己的mongo數據庫,不用mongo存儲可以注釋掉
while(True):
data=client.statuses.friends_timeline.get(page=pagenum)['statuses']
if data:
pagenum+=1#不斷獲取新的頁(yè)面
for i in range(len(data)):
write_location.insert(data[i])#不用mongo存儲可以注釋掉,直接改為print data[i]打印微博數據
else:#如果讀取完數據則結束
break
在命令行執行:
python weibo_api.py #假設上述程序文件名為weibo_api.py
將出現以下文本:
輸入url中code后面的內容,按回車(chē)鍵:
在現有瀏覽器會(huì )話(huà)中創(chuàng )建了一個(gè)新窗口。
2024222384d5dc88316d21675259d73a #注意這里要在上面授權瀏覽器的URL中輸入code后面的東西
最后,mongo 中的數據如下所示:
in_reply_to_screen_name”:“”,“user”:{“bi_followers_count”:99,“domain”:“rebo??l”,“avatar_large”:“”,“verified_source”:“”,“ptype”:3,“statuses_count”:5902 ,“allow_all_comment”:true,“id”:1614282004,“verified_reason_url”:“”,“city”:“1”,“province”:“71”,“block_app”:0,“follow_me”:false,“verified_reason 》:《銀聯(lián)移動(dòng)支付首席產(chǎn)品架構師;《Programming》和《Java Sleepless》的作者,“followers_count”:100833,“l(fā)ocation”:“臺灣臺北市”,“verified_trade”:“”,“mbtype”:2,“
新浪微博API無(wú)法通過(guò)指定ID提取用戶(hù)的微博內容,除非是高級授權用戶(hù)。像我這樣的刁四沒(méi)有這樣的福氣。要捕獲少量用戶(hù),可以關(guān)注所有捕獲的用戶(hù),然后授權用戶(hù)捕獲自己和朋友的微博。不太可行??磥?lái),對于大量用戶(hù)來(lái)說(shuō),獲取微博數據的唯一方法就是編寫(xiě)爬蟲(chóng)來(lái)解析頁(yè)面。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博ID獲取用戶(hù)發(fā)布過(guò)的歷史微博內容研究了)
上面調用的是通過(guò)微博ID獲取用戶(hù)發(fā)布的歷史微博內容,所以研究了一下新浪微博提供的API。
1 首先,在微博開(kāi)放中心下的“創(chuàng )建應用”下創(chuàng )建一個(gè)應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您只需要應用程序密鑰和應用程序秘密
2 在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側“應用信息”一欄,會(huì )看到“應用密鑰”和“應用程序秘密”。稍后將在程序中使用這些東西。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
3 去下載新浪微博SDK,python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
4 實(shí)例驗證碼,通過(guò)微博提供的API抓取授權用戶(hù)及其關(guān)注者的微博:這里需要注意的是,當瀏覽器彈出頁(yè)面時(shí),必須先點(diǎn)擊“授權”(OAuth 2認證在這里執行,我了解到,用戶(hù)訪(fǎng)問(wèn)我的應用程序后,頁(yè)面被定向到新浪服務(wù)器,然后用戶(hù)向新浪服務(wù)器輸入信息,授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據,網(wǎng)址類(lèi)似:復制代碼后代碼到控制端,程序需要讀取數據2024222384d5dc88316d21675259d73a
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser#python內置的包
import pymongo
from pymongo import MongoClient
APP_KEY = '剛才那個(gè)App Key'#注意替換這里為自己申請的App信息
APP_SECRET = '剛才那個(gè)App Secret'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'#回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
'''
#可以打印下看看里面都有什么東西
#print client.statuses__public_timeline()
statuses = client.statuses__public_timeline()['statuses']
length = len(statuses)
#輸出了部分信息
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']
'''
#獲取授權用戶(hù)及其關(guān)注好友的微博信息并寫(xiě)入mongo數據庫
pagenum=1#微博API返回的微博數據是分頁(yè)形式的,在A(yíng)PI中通過(guò)設置頁(yè)碼來(lái)讀取數據
write_location=MongoClient('localhost',27017)['data']['weiboapi_test']#這里是我自己的mongo數據庫,不用mongo存儲可以注釋掉
while(True):
data=client.statuses.friends_timeline.get(page=pagenum)['statuses']
if data:
pagenum+=1#不斷獲取新的頁(yè)面
for i in range(len(data)):
write_location.insert(data[i])#不用mongo存儲可以注釋掉,直接改為print data[i]打印微博數據
else:#如果讀取完數據則結束
break
在命令行執行:
python weibo_api.py #假設上述程序文件名為weibo_api.py
將出現以下文本:
輸入url中code后面的內容,按回車(chē)鍵:
在現有瀏覽器會(huì )話(huà)中創(chuàng )建了一個(gè)新窗口。
2024222384d5dc88316d21675259d73a #注意這里要在上面授權瀏覽器的URL中輸入code后面的東西
最后,mongo 中的數據如下所示:
in_reply_to_screen_name”:“”,“user”:{“bi_followers_count”:99,“domain”:“rebo??l”,“avatar_large”:“”,“verified_source”:“”,“ptype”:3,“statuses_count”:5902 ,“allow_all_comment”:true,“id”:1614282004,“verified_reason_url”:“”,“city”:“1”,“province”:“71”,“block_app”:0,“follow_me”:false,“verified_reason 》:《銀聯(lián)移動(dòng)支付首席產(chǎn)品架構師;《Programming》和《Java Sleepless》的作者,“followers_count”:100833,“l(fā)ocation”:“臺灣臺北市”,“verified_trade”:“”,“mbtype”:2,“
新浪微博API無(wú)法通過(guò)指定ID提取用戶(hù)的微博內容,除非是高級授權用戶(hù)。像我這樣的刁四沒(méi)有這樣的福氣。要捕獲少量用戶(hù),可以關(guān)注所有捕獲的用戶(hù),然后授權用戶(hù)捕獲自己和朋友的微博。不太可行??磥?lái),對于大量用戶(hù)來(lái)說(shuō),獲取微博數據的唯一方法就是編寫(xiě)爬蟲(chóng)來(lái)解析頁(yè)面。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博SDK支持多種語(yǔ)言.0創(chuàng )建應用應用創(chuàng )建成功(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 69 次瀏覽 ? 2022-02-28 05:06
當采集微博數據時(shí),我們可以使用微博API進(jìn)行調用。調用微博API有兩個(gè)任務(wù),第一步是創(chuàng )建應用程序,第二步是安裝微博SDK。
創(chuàng )建應用
創(chuàng )建應用的目的是獲取app-key和app-secret,設置授權回調頁(yè)面。
登錄微博開(kāi)放平臺創(chuàng )建應用
應用名稱(chēng)及后續信息隨便填寫(xiě)即可。填寫(xiě)后,無(wú)需提交審核。您所需要的只是應用程序密鑰和應用程序秘密。應用創(chuàng )建成功后,在“我的應用”中可以看到剛剛創(chuàng )建的應用的詳細信息,在“應用信息”中可以找到App Key和App Secret,后面會(huì )用到。
然后打開(kāi)上方“申請信息”中的“高級信息”,然后點(diǎn)擊“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。至此,第一步已經(jīng)完成。
安裝微博SDK
微博SDK鏈接,微博SDK支持多種語(yǔ)言,本文以php為例說(shuō)明操作。
新浪微博的授權機制,即OAuth 2
API 調用需要用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權流程請參考如下流程圖,其中Client指的是第三方應用(即我們自己在第三步創(chuàng )建的應用),Resource Owner指的是用戶(hù),授權服務(wù)器是我們的授權服務(wù)器,資源服務(wù)器是API服務(wù)器。
從流程圖可以看出,為了調用API server內容,需要將access token告訴API server;訪(fǎng)問(wèn)令牌由新浪(授權服務(wù)器)在用戶(hù)授權后返回給我們創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們的應用首先要給用戶(hù)授權頁(yè)面(授權請求)。
獲取授權請求url
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$code_url = $o->getAuthorizeURL(WB_CALLBACK_URL);
在瀏覽器地址欄輸入授權url回車(chē),瀏覽器會(huì )彈出一個(gè)頁(yè)面,必須先點(diǎn)擊“Authorize”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面指向新浪服務(wù)器然后用戶(hù)將信息輸入新浪服務(wù)器并授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據后,這里我授權微博給如下程序),授權后瀏覽器中的URL類(lèi)似:
代碼是授權授予
獲取訪(fǎng)問(wèn)令牌
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)被用戶(hù)授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,我們就可以從API服務(wù)器獲取微博數據了。
$keys = 數組();
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$keys['code'] = '89c143736a55980bd2e82460b1092c88';
//fe080b632eec18452a9ec8eea3c4b748
$keys['redirect_uri'] = WB_CALLBACK_URL;
嘗試 {
$token = $o->getAccessToken('code', $keys);
}
捕捉(OAuthException $e){
echo "getAccessToken fail.reason:".$e->getMessage()."\n";
}
var_dump($token);//expire_in表示access_token的有效期
$accessToken = $token["access_token"];
3.獲取微博數據,編寫(xiě)代碼調用微博api
$accessToken = '2.00S_7idC0psiN42941abc2354ymrJC';
$c = 新 SaeTClientV2( WB_AKEY , WB_SKEY , $accessToken );
$ret = $c->show_user_by_name('小二來(lái)了一噸白菜');
2013年7月2日起,微博開(kāi)放平臺將升級用戶(hù)關(guān)系閱讀和微博內容閱讀界面;為保證您在線(xiàn)申請的正常運行,請在7月2日升級前更新以下界面;本次升級對微博客戶(hù)端和合規應用沒(méi)有影響。升級過(guò)程中,如果遇到任何問(wèn)題,請私信@微博開(kāi)放平臺,感謝您的理解與支持!具體調整界面如下:
獲取當前登錄用戶(hù)發(fā)布的微博消息列表(2/statuses/user_timeline)
獲取當前登錄用戶(hù)發(fā)布的微博消息ID列表(2/statuses/user_timeline/ids)
獲取用戶(hù)的關(guān)注列表(2/friendships/friends)
獲取常見(jiàn)關(guān)注者列表(2/friendships/friends/in_common)
獲取雙向關(guān)注列表(2/好友/好友/雙邊)
獲取雙邊關(guān)注者的UID列表(2/friendships/friends/bilateral/ids)
獲取用戶(hù)關(guān)注對象的UID列表(2/friendships/friends/ids)
獲取用戶(hù)的關(guān)注者列表(2/friendships/followers)
獲取用戶(hù)關(guān)注者 UID 列表(2/friendships/followers/ids)
獲取用戶(hù)優(yōu)質(zhì)關(guān)注者列表(2/好友/關(guān)注者/活躍)
即:接口升級后:uid和screen_name只能是當前授權用戶(hù),第三方微博客戶(hù)端不受影響 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博SDK支持多種語(yǔ)言.0創(chuàng )建應用應用創(chuàng )建成功(組圖))
當采集微博數據時(shí),我們可以使用微博API進(jìn)行調用。調用微博API有兩個(gè)任務(wù),第一步是創(chuàng )建應用程序,第二步是安裝微博SDK。
創(chuàng )建應用
創(chuàng )建應用的目的是獲取app-key和app-secret,設置授權回調頁(yè)面。
登錄微博開(kāi)放平臺創(chuàng )建應用
應用名稱(chēng)及后續信息隨便填寫(xiě)即可。填寫(xiě)后,無(wú)需提交審核。您所需要的只是應用程序密鑰和應用程序秘密。應用創(chuàng )建成功后,在“我的應用”中可以看到剛剛創(chuàng )建的應用的詳細信息,在“應用信息”中可以找到App Key和App Secret,后面會(huì )用到。

然后打開(kāi)上方“申請信息”中的“高級信息”,然后點(diǎn)擊“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。至此,第一步已經(jīng)完成。
安裝微博SDK
微博SDK鏈接,微博SDK支持多種語(yǔ)言,本文以php為例說(shuō)明操作。

新浪微博的授權機制,即OAuth 2
API 調用需要用戶(hù)認證(用戶(hù)授權)。目前,OAuth2.0主要用于微博開(kāi)放平臺上的用戶(hù)身份認證。
OAuth2.0協(xié)議的授權流程請參考如下流程圖,其中Client指的是第三方應用(即我們自己在第三步創(chuàng )建的應用),Resource Owner指的是用戶(hù),授權服務(wù)器是我們的授權服務(wù)器,資源服務(wù)器是API服務(wù)器。
從流程圖可以看出,為了調用API server內容,需要將access token告訴API server;訪(fǎng)問(wèn)令牌由新浪(授權服務(wù)器)在用戶(hù)授權后返回給我們創(chuàng )建的應用程序;為了完成用戶(hù)授權,我們的應用首先要給用戶(hù)授權頁(yè)面(授權請求)。
獲取授權請求url
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$code_url = $o->getAuthorizeURL(WB_CALLBACK_URL);
在瀏覽器地址欄輸入授權url回車(chē),瀏覽器會(huì )彈出一個(gè)頁(yè)面,必須先點(diǎn)擊“Authorize”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面指向新浪服務(wù)器然后用戶(hù)將信息輸入新浪服務(wù)器并授權我的應用程序訪(fǎng)問(wèn)用戶(hù)數據后,這里我授權微博給如下程序),授權后瀏覽器中的URL類(lèi)似:
代碼是授權授予
獲取訪(fǎng)問(wèn)令牌
我們需要將代碼后面的字符串提交給新浪授權服務(wù)器來(lái)獲取訪(fǎng)問(wèn)令牌。相當于告訴新浪服務(wù)器我們的應用已經(jīng)被用戶(hù)授權,現在可以訪(fǎng)問(wèn)用戶(hù)的數據了,所以授權服務(wù)器給了我們一個(gè)訪(fǎng)問(wèn)令牌,我們就可以從API服務(wù)器獲取微博數據了。
$keys = 數組();
$o = 新 SaeTOAuthV2(WB_AKEY, WB_SKEY);
$keys['code'] = '89c143736a55980bd2e82460b1092c88';
//fe080b632eec18452a9ec8eea3c4b748
$keys['redirect_uri'] = WB_CALLBACK_URL;
嘗試 {
$token = $o->getAccessToken('code', $keys);
}
捕捉(OAuthException $e){
echo "getAccessToken fail.reason:".$e->getMessage()."\n";
}
var_dump($token);//expire_in表示access_token的有效期
$accessToken = $token["access_token"];
3.獲取微博數據,編寫(xiě)代碼調用微博api
$accessToken = '2.00S_7idC0psiN42941abc2354ymrJC';
$c = 新 SaeTClientV2( WB_AKEY , WB_SKEY , $accessToken );
$ret = $c->show_user_by_name('小二來(lái)了一噸白菜');
2013年7月2日起,微博開(kāi)放平臺將升級用戶(hù)關(guān)系閱讀和微博內容閱讀界面;為保證您在線(xiàn)申請的正常運行,請在7月2日升級前更新以下界面;本次升級對微博客戶(hù)端和合規應用沒(méi)有影響。升級過(guò)程中,如果遇到任何問(wèn)題,請私信@微博開(kāi)放平臺,感謝您的理解與支持!具體調整界面如下:
獲取當前登錄用戶(hù)發(fā)布的微博消息列表(2/statuses/user_timeline)
獲取當前登錄用戶(hù)發(fā)布的微博消息ID列表(2/statuses/user_timeline/ids)
獲取用戶(hù)的關(guān)注列表(2/friendships/friends)
獲取常見(jiàn)關(guān)注者列表(2/friendships/friends/in_common)
獲取雙向關(guān)注列表(2/好友/好友/雙邊)
獲取雙邊關(guān)注者的UID列表(2/friendships/friends/bilateral/ids)
獲取用戶(hù)關(guān)注對象的UID列表(2/friendships/friends/ids)
獲取用戶(hù)的關(guān)注者列表(2/friendships/followers)
獲取用戶(hù)關(guān)注者 UID 列表(2/friendships/followers/ids)
獲取用戶(hù)優(yōu)質(zhì)關(guān)注者列表(2/好友/關(guān)注者/活躍)
即:接口升級后:uid和screen_name只能是當前授權用戶(hù),第三方微博客戶(hù)端不受影響
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(OAuth2未對微博的access_token導致任意用戶(hù)登陸這個(gè)問(wèn)題)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 96 次瀏覽 ? 2022-02-27 22:05
顯示結果
鑒于這篇文章寫(xiě)的亂七八糟,我真的怕有些同學(xué)因為保護視力而不會(huì )繼續閱讀,所以我先把通過(guò)后文描述的兩種方法發(fā)現的一小部分漏洞作為吸引力放出來(lái)。
OAuth2授權訪(fǎng)問(wèn)的隱式模式
首先我們來(lái)看看OAuth的定義:OAuth(Open Authorization)是一個(gè)開(kāi)放的標準,它允許用戶(hù)授權第三方網(wǎng)站訪(fǎng)問(wèn)他們存儲在另一個(gè)服務(wù)提供商上的信息,而不需要向Third提供用戶(hù)名和密碼各方網(wǎng)站或共享其數據的所有內容。
在大家測試的過(guò)程中,常見(jiàn)的快捷方式登錄是授權碼模式(authorization_code),即應用(QQ/微博)給出授權碼code,服務(wù)器將code換成access_token,然后進(jìn)行下一個(gè)請求。
從我們的外部來(lái)看,大致流程如下:
訪(fǎng)問(wèn)網(wǎng)站a,選擇微博快速登錄,跳轉到,微博用戶(hù)點(diǎn)擊授權,然后從攜帶code參數跳轉回網(wǎng)站a,我們的應用會(huì )在終端獲取到code調用第三方提供的api獲取uid和access_token,這里參考微博給出的api文檔
下一步可以繼續通過(guò)access_token請求其他第三方API,看一下account/get_uid
如上圖所示,通過(guò)access_token請求該接口即可返回uid。
上面的描述都是關(guān)于授權碼模式的。其實(shí)隱式模式和授權碼模式很相似,只是少了一步code="access_token。第三方會(huì )直接提供access_token給開(kāi)發(fā)者使用,不再給出code。
1.微博access_token校驗失敗,導致任意用戶(hù)登錄
這個(gè)問(wèn)題在多個(gè)應用中都出現過(guò),我測試過(guò)的應用中大約有10%的應用存在這個(gè)問(wèn)題,如果出現后果可能很?chē)乐?。此使用方式針對微博快速登錄的應用?br /> 應用中的微博快速登錄是通過(guò)調用微博應用請求,然后獲取請求的返回access_token和uid,所以應用中沒(méi)有微博快速登錄的代碼,這是我們的第一段。提到的隱式模式。獲取access_token的請求如下:
大部分應用會(huì )獲取返回的access_token,使用微博的api進(jìn)行操作,但應用只獲取uid,沒(méi)有驗證access_token,然后代入數據庫查詢(xún),存在任意登錄的問(wèn)題。
一個(gè)案例:
在這個(gè)應用中,點(diǎn)擊微博快速登錄,然后調出微博應用,注意上面截圖中的請求,修改請求返回的uid,釋放所有后續請求。
至此,微博綁定的賬號已經(jīng)無(wú)權限登錄,所有功能都可以使用。
原因如下,注意在應用中的請求中有一個(gè):,
這是最關(guān)鍵的set-cookie請求,其中請求參數open_id是剛剛返回的微博賬號的用戶(hù)uid,也就是我們剛才修改的返回包的值。
微信快速登錄也是這種隱式模式,但是這種攻擊方式并不適合微信快速登錄。首先,微信公眾號的open_id不是公開(kāi)內容。當然,如果你想自己搭建一個(gè)第三方登錄平臺,也可以獲取微信用戶(hù)的信息。open_id 也是不行的,因為同一個(gè)微信賬號為不同的app生成的open_id是不同的,所以不能使用。我喜歡這里的微信。
這里補充一下如何獲取指定微博賬號的uid,查看用戶(hù)頁(yè)面源碼搜索:$CONFIG['oid']
修復方法:
如果一定要使用uid,使用這個(gè)接口來(lái)驗證access_token:
要求獲取返回的 uid,不要相信用戶(hù)輸入給您的 uid。
2.微博access_token驗證不嚴格,導致交互后賬號被劫持
99%的應用都存在這種問(wèn)題,這種利用方式只針對微博的快速登錄。這種問(wèn)題的危害沒(méi)有第一種那么明顯。這是一種需要互動(dòng)的漏洞。我隨機提交了幾家公司來(lái)觀(guān)察廠(chǎng)商的反應。其中大部分為中風(fēng)險,少數為高風(fēng)險。一些制造商的家中有大量應用程序。有了這個(gè)問(wèn)題,打包提交也可以給出高風(fēng)險的獎勵。更多廠(chǎng)商評分,看你的投稿結果~
當應用程序沒(méi)有第二個(gè)問(wèn)題時(shí),它不一定是完全沒(méi)有風(fēng)險的??梢钥吹矫總€(gè)微博api請求只需要一個(gè)access_token憑證,不需要一些appid或者uid信息。
其中有一些非常簡(jiǎn)單的請求,例如:
如果客戶(hù)端獲取到微博賬號的uid和access_token,進(jìn)行檢查。但是,如果我們只是通過(guò)這樣一個(gè)類(lèi)似的接口通過(guò)access_token請求獲取uid,然后認為uid就是我們的用戶(hù),這是不正確的。
下面我們來(lái)看看如何使用它:
我像這樣在微博開(kāi)發(fā)者上構建了一個(gè)應用程序
Oauth2.0 授權回調頁(yè)面是攻擊者的站點(diǎn)。
這里的快速登錄鏈接是:
%3A%2F%2F%2f&狀態(tài)=30
登錄后會(huì )帶代碼進(jìn)入百度(其實(shí)就是進(jìn)入攻擊者的站點(diǎn)):
從官方手冊來(lái)看,代碼是這樣使用的:
此時(shí)攻擊者獲取到用戶(hù)的access_token和uid
回到第一個(gè)exploit方法:
這次如果同時(shí)更換access_token和uid,就可以登錄別人綁定的賬號了。
原因是這次不用同時(shí)更換access_token和uid就可以登錄別人綁定的賬號了。
原因是沒(méi)通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。
1.訪(fǎng)問(wèn)攻擊者微博快速登錄
2.攻擊者獲取代碼->獲取access_token和uid
3.其他應用賬號被劫持
修復方法:
通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。
最后
如今,國內外幾乎每個(gè)站點(diǎn)都有第三方快速登錄。中國的主流可能是QQ/微博/微信。當然,還有其他的快速登錄方式。多種快捷登錄漏洞。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(OAuth2未對微博的access_token導致任意用戶(hù)登陸這個(gè)問(wèn)題)
顯示結果
鑒于這篇文章寫(xiě)的亂七八糟,我真的怕有些同學(xué)因為保護視力而不會(huì )繼續閱讀,所以我先把通過(guò)后文描述的兩種方法發(fā)現的一小部分漏洞作為吸引力放出來(lái)。



OAuth2授權訪(fǎng)問(wèn)的隱式模式
首先我們來(lái)看看OAuth的定義:OAuth(Open Authorization)是一個(gè)開(kāi)放的標準,它允許用戶(hù)授權第三方網(wǎng)站訪(fǎng)問(wèn)他們存儲在另一個(gè)服務(wù)提供商上的信息,而不需要向Third提供用戶(hù)名和密碼各方網(wǎng)站或共享其數據的所有內容。
在大家測試的過(guò)程中,常見(jiàn)的快捷方式登錄是授權碼模式(authorization_code),即應用(QQ/微博)給出授權碼code,服務(wù)器將code換成access_token,然后進(jìn)行下一個(gè)請求。
從我們的外部來(lái)看,大致流程如下:

訪(fǎng)問(wèn)網(wǎng)站a,選擇微博快速登錄,跳轉到,微博用戶(hù)點(diǎn)擊授權,然后從攜帶code參數跳轉回網(wǎng)站a,我們的應用會(huì )在終端獲取到code調用第三方提供的api獲取uid和access_token,這里參考微博給出的api文檔
下一步可以繼續通過(guò)access_token請求其他第三方API,看一下account/get_uid

如上圖所示,通過(guò)access_token請求該接口即可返回uid。
上面的描述都是關(guān)于授權碼模式的。其實(shí)隱式模式和授權碼模式很相似,只是少了一步code="access_token。第三方會(huì )直接提供access_token給開(kāi)發(fā)者使用,不再給出code。
1.微博access_token校驗失敗,導致任意用戶(hù)登錄
這個(gè)問(wèn)題在多個(gè)應用中都出現過(guò),我測試過(guò)的應用中大約有10%的應用存在這個(gè)問(wèn)題,如果出現后果可能很?chē)乐?。此使用方式針對微博快速登錄的應用?br /> 應用中的微博快速登錄是通過(guò)調用微博應用請求,然后獲取請求的返回access_token和uid,所以應用中沒(méi)有微博快速登錄的代碼,這是我們的第一段。提到的隱式模式。獲取access_token的請求如下:

大部分應用會(huì )獲取返回的access_token,使用微博的api進(jìn)行操作,但應用只獲取uid,沒(méi)有驗證access_token,然后代入數據庫查詢(xún),存在任意登錄的問(wèn)題。
一個(gè)案例:
在這個(gè)應用中,點(diǎn)擊微博快速登錄,然后調出微博應用,注意上面截圖中的請求,修改請求返回的uid,釋放所有后續請求。

至此,微博綁定的賬號已經(jīng)無(wú)權限登錄,所有功能都可以使用。
原因如下,注意在應用中的請求中有一個(gè):,

這是最關(guān)鍵的set-cookie請求,其中請求參數open_id是剛剛返回的微博賬號的用戶(hù)uid,也就是我們剛才修改的返回包的值。
微信快速登錄也是這種隱式模式,但是這種攻擊方式并不適合微信快速登錄。首先,微信公眾號的open_id不是公開(kāi)內容。當然,如果你想自己搭建一個(gè)第三方登錄平臺,也可以獲取微信用戶(hù)的信息。open_id 也是不行的,因為同一個(gè)微信賬號為不同的app生成的open_id是不同的,所以不能使用。我喜歡這里的微信。
這里補充一下如何獲取指定微博賬號的uid,查看用戶(hù)頁(yè)面源碼搜索:$CONFIG['oid']

修復方法:
如果一定要使用uid,使用這個(gè)接口來(lái)驗證access_token:

要求獲取返回的 uid,不要相信用戶(hù)輸入給您的 uid。

2.微博access_token驗證不嚴格,導致交互后賬號被劫持
99%的應用都存在這種問(wèn)題,這種利用方式只針對微博的快速登錄。這種問(wèn)題的危害沒(méi)有第一種那么明顯。這是一種需要互動(dòng)的漏洞。我隨機提交了幾家公司來(lái)觀(guān)察廠(chǎng)商的反應。其中大部分為中風(fēng)險,少數為高風(fēng)險。一些制造商的家中有大量應用程序。有了這個(gè)問(wèn)題,打包提交也可以給出高風(fēng)險的獎勵。更多廠(chǎng)商評分,看你的投稿結果~
當應用程序沒(méi)有第二個(gè)問(wèn)題時(shí),它不一定是完全沒(méi)有風(fēng)險的??梢钥吹矫總€(gè)微博api請求只需要一個(gè)access_token憑證,不需要一些appid或者uid信息。
其中有一些非常簡(jiǎn)單的請求,例如:

如果客戶(hù)端獲取到微博賬號的uid和access_token,進(jìn)行檢查。但是,如果我們只是通過(guò)這樣一個(gè)類(lèi)似的接口通過(guò)access_token請求獲取uid,然后認為uid就是我們的用戶(hù),這是不正確的。
下面我們來(lái)看看如何使用它:
我像這樣在微博開(kāi)發(fā)者上構建了一個(gè)應用程序


Oauth2.0 授權回調頁(yè)面是攻擊者的站點(diǎn)。
這里的快速登錄鏈接是:
%3A%2F%2F%2f&狀態(tài)=30
登錄后會(huì )帶代碼進(jìn)入百度(其實(shí)就是進(jìn)入攻擊者的站點(diǎn)):

從官方手冊來(lái)看,代碼是這樣使用的:

此時(shí)攻擊者獲取到用戶(hù)的access_token和uid
回到第一個(gè)exploit方法:

這次如果同時(shí)更換access_token和uid,就可以登錄別人綁定的賬號了。
原因是這次不用同時(shí)更換access_token和uid就可以登錄別人綁定的賬號了。
原因是沒(méi)通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。
1.訪(fǎng)問(wèn)攻擊者微博快速登錄
2.攻擊者獲取代碼->獲取access_token和uid
3.其他應用賬號被劫持
修復方法:
通過(guò)
獲取 appkey 以驗證 access_token 是否真的由您的應用程序生成。

最后
如今,國內外幾乎每個(gè)站點(diǎn)都有第三方快速登錄。中國的主流可能是QQ/微博/微信。當然,還有其他的快速登錄方式。多種快捷登錄漏洞。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何把這種方法應用在組織學(xué)習中成為越來(lái)越的網(wǎng)絡(luò )應用)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2022-02-25 23:38
毫無(wú)疑問(wèn),微博已經(jīng)成為越來(lái)越流行的網(wǎng)絡(luò )應用。如何將這種方法應用到組織學(xué)習中,使其成為一種非正式的學(xué)習方式,是很多培訓管理者思考的問(wèn)題。
以新浪微博為例,大致可以分為兩種方式促進(jìn)企業(yè)學(xué)習:一是直接應用模式,即直接利用新浪微博輔助培訓業(yè)務(wù),是初級應用階段;二是內部實(shí)施模式,即通過(guò)在企業(yè)內部部署一套專(zhuān)屬的企業(yè)微博,并以此為基礎,開(kāi)始組織內部的社交學(xué)習。這個(gè)模型比較復雜,但意義深遠。是微博推動(dòng)企業(yè)學(xué)習的進(jìn)階階段。本文將詳細介紹這兩種模式的應用方法、內容和要點(diǎn)。
直接申請模式
直接應用模式的目標是通過(guò)微博輔助傳統培訓業(yè)務(wù)。培訓部門(mén)可以通過(guò)建立培訓部門(mén)微博賬號、協(xié)助培訓項目、推動(dòng)企業(yè)e-Learning學(xué)習等方式,達到直接應用模式的效果。
創(chuàng )建微博賬號 培訓部門(mén)是組織內的服務(wù)部門(mén)。一般公司的培訓部門(mén)沒(méi)有自己的網(wǎng)站,缺乏與員工的溝通。因此,創(chuàng )建培訓部門(mén)自己的微博可以起到在線(xiàn)服務(wù)窗口的作用。銀聯(lián)培訓中心、用友大學(xué)、吉利大學(xué)等企業(yè)培訓中心或企業(yè)大學(xué)均開(kāi)設了自己的微博賬號。
建立一個(gè)微博賬號非常簡(jiǎn)單,只需在新浪微博上申請。需要注意的是,最好申請新浪代理認證。通過(guò)認證后,將有更多微博功能可供使用,包括:展示培訓中心的視頻或圖片,專(zhuān)門(mén)設置咨詢(xún)、留言、表?yè)P和意見(jiàn)窗口,展示培訓團隊成員的風(fēng)采等。
多功能輔助培訓項目擁有專(zhuān)屬微博賬號后,培訓中心可深度應用各種微博功能,輔助傳統面授培訓項目。新浪微博聚合了數千個(gè)功能應用,其中很多可以輔助面對面培訓。我們列出了幾個(gè)可以幫助培訓的最常見(jiàn)的微博功能。
微博大屏“微博大屏”更適合參加人數眾多的培訓項目,其價(jià)值在于能夠激活培訓現場(chǎng)的互動(dòng)氛圍。培訓期間,可通過(guò)獨立投影將微博大屏的內容投射到培訓現場(chǎng)。講師可以通過(guò)大屏幕采集學(xué)員的意見(jiàn),學(xué)員可以通過(guò)手機微博參與培訓和互動(dòng)過(guò)程。有關(guān)示例,請參見(jiàn)圖 1。
微活動(dòng)“微活動(dòng)”是一款不錯的培訓營(yíng)銷(xiāo)工具,適合培訓項目前期招生。如果培訓對象的微博使用滲透率高,可以通過(guò)發(fā)起“微事件”的形式發(fā)布培訓節目。在“微活動(dòng)”中,可以設置有獎、有針對性的選擇粉絲等功能,并結合粉絲轉發(fā),起到培養營(yíng)銷(xiāo)的作用(見(jiàn)圖表2).
微群 微群可以設置并邀請固定成員加入,類(lèi)似QQ群的功能(見(jiàn)圖表3),適合輔助周期較長(cháng)的培訓項目。講師或培訓經(jīng)理可以通過(guò)微信群發(fā)布通知微群、3)@文章、上傳附件等,也可以請學(xué)生在微群中討論問(wèn)題或提交作業(yè)。培訓項目結束后,微群可以解散或保留成為積累培訓資源的平臺。
促進(jìn)企業(yè)e-Learning學(xué)習 通常,企業(yè)在線(xiàn)學(xué)習以自主學(xué)習為主,學(xué)習者之間缺乏互動(dòng)。雖然有些公司在學(xué)習平臺上開(kāi)設了BBS討論區,但大多數情況下都不是很受歡迎。培訓管理者可以考慮將微博與在線(xiàn)學(xué)習相結合,通過(guò)嵌入微博代碼等功能增強在線(xiàn)學(xué)習的互動(dòng)性。具體可以通過(guò)以下方式實(shí)現。
加強網(wǎng)絡(luò )課程互動(dòng)活動(dòng)。在微博上發(fā)布與在線(xiàn)課程主題相關(guān)的微博,引發(fā)學(xué)習者討論內容,并將討論地址鏈接到課程介紹等明顯的地方。本質(zhì)是為每個(gè)在線(xiàn)課程建立一個(gè)微博討論論壇。建立方式有兩種:一是培訓管理員可以在發(fā)布課程時(shí)創(chuàng )建微博并同步設置課程鏈接;您可以隨時(shí)進(jìn)入微博參與互動(dòng)。
聚合在線(xiàn)學(xué)習和網(wǎng)絡(luò )資源 通過(guò)微博關(guān)鍵詞聚合功能,可以將課件內容與微博平臺內容進(jìn)行關(guān)聯(lián)。在海量的微博內容中,所有與網(wǎng)絡(luò )課程相關(guān)的微博內容都可以提取出來(lái),按時(shí)間順序顯示在網(wǎng)絡(luò )課件的指定位置(見(jiàn)圖表4)。內容聚合可以讓互動(dòng)更加深入——深度,將學(xué)習交流不僅延伸到在線(xiàn)課程的學(xué)習者,也延伸到所有微博成員。
網(wǎng)絡(luò )課程的推廣和評價(jià)微博也可以用于網(wǎng)絡(luò )課程的營(yíng)銷(xiāo)推廣和評價(jià),實(shí)施方式比較簡(jiǎn)單。比如在課程開(kāi)始或結束時(shí),可以添加“微博轉發(fā)”功能,將課程的介紹、鏈接、簡(jiǎn)要評價(jià)轉發(fā)到學(xué)習者的微博,學(xué)習者的粉絲第一時(shí)間看到課程. 介紹和鏈接。為了擴大影響力,管理者還可以在新浪微博以外的其他社交網(wǎng)絡(luò )上添加分享鏈接。
內部執行模式 所謂內部執行模式,就是在企業(yè)內部建立一個(gè)獨立完整的微博系統,企業(yè)可以在內部微博系統中建立自己的規則,比如加入V認證、風(fēng)格設計、企業(yè)自己的規則。學(xué)習系統或其他信息系統有更深入的整合等。
建立微博內部實(shí)施的目的,不僅可以輔助傳統培訓業(yè)務(wù),還可以利用微博的實(shí)施和應用在企業(yè)內部進(jìn)行社會(huì )學(xué)習,使微博成為員工分享和學(xué)習的新平臺。
新浪微博提供免費的企業(yè)微博下載版——微博,企業(yè)內部可以安裝使用。企業(yè)版微博(Xweibo)雖然不如新浪微博全面,但具備微博發(fā)布、瀏覽、轉發(fā)、評論、采集、話(huà)題等基本功能,微博的功能也在不斷升級完善。本文以微博系統為例,介紹如何在企業(yè)內部實(shí)現、部署和應用。
下載安裝Xweibo的下載地址為,下載安裝頁(yè)面如圖5所示。安裝時(shí)需要配合技術(shù)部門(mén),做好前期的溝通和準備工作。技術(shù)人員按照下載包中的說(shuō)明在企業(yè)內網(wǎng)完成安裝后,需要進(jìn)行初始化工作,主要包括以下幾個(gè)方面。
·設置企業(yè)微博名稱(chēng)·設置企業(yè)微博與新浪微博的關(guān)系·微博頁(yè)面布局設計·內容規則建立等與其他系統集成、安裝、初始化完成后,企業(yè)微博可以直接應用。但是,為了更好地發(fā)揮作用,通常需要與企業(yè)的其他業(yè)務(wù)系統進(jìn)行集成。特別是與學(xué)習管理系統和公司現有的BBS論壇系統深度融合,更方便員工使用。微博提供了一些內置的系統集成工具,企業(yè)可以使用這些工具進(jìn)行簡(jiǎn)單的集成。
1.定義主頁(yè)鏈接功能:通過(guò)該功能可以在微博主頁(yè)上集成相關(guān)學(xué)習系統的鏈接。
2.外部論壇插件功能:通過(guò)該功能,微博可以與企業(yè)內部BBS論壇同步登錄更新。
3.外部調用工具功能:可以將“轉發(fā)碼”和“異地調用碼”嵌入到學(xué)習管理系統、博客、郵箱、OA等其他系統中,讓微博的內容可以在其他系統中以各種形式顯示。
如果企業(yè)需要更深入的集成和增加個(gè)性化功能,開(kāi)發(fā)者需要對微博進(jìn)行高級二次開(kāi)發(fā)。
推廣應用 只有大規模應用,才能發(fā)揮社會(huì )學(xué)習的力量。培訓經(jīng)理可根據業(yè)務(wù)需要制定推廣應用策略和計劃。通過(guò)企業(yè)微博推行社會(huì )學(xué)習,要調動(dòng)員工的參與和積極性。根據微博的特點(diǎn),企業(yè)可以建立以下三種機制,開(kāi)啟快速應用的局面。
互聯(lián)機制將微博與新浪微博鏈接,所有擁有新浪微博賬號的員工都可以與微博同步數據。除了微博內容,“粉絲”也可以統一?;ヂ?lián)機制可以降低微博的使用難度,簡(jiǎn)化申請流程。但需要注意的是,有些企業(yè)不希望員工發(fā)布的某些內容同步到互聯(lián)網(wǎng)上,企業(yè)可以通過(guò)技術(shù)和制度對其進(jìn)行約束。
認證機制在企業(yè)內部開(kāi)展“微博+V認證”,培訓管理者可以通過(guò)這種方式提高員工參與度。微博的認證可以分類(lèi),比如可以分為技術(shù)專(zhuān)家、內部講師、工作專(zhuān)家等不同類(lèi)別(見(jiàn)圖表6)。同時(shí)也可以與“名人”合作管理”功能,監控各類(lèi)內部組織,有效管理先進(jìn)專(zhuān)業(yè)群體。Xweibo認證機制也是發(fā)現和梳理內部專(zhuān)家的最佳途徑之一,將為企業(yè)的實(shí)施提供有效的支持和幫助。知識管理。
活動(dòng)機制 在企業(yè)內部微博上開(kāi)展各種活動(dòng),提升微博知名度,活躍氣氛。微博內置兩個(gè)活動(dòng)功能模塊:一個(gè)是“線(xiàn)上直播”,主要輔助企業(yè)大型活動(dòng),活動(dòng)狀態(tài)在微博平臺直播。同時(shí),活動(dòng)現場(chǎng)可以與微博參與者進(jìn)行互動(dòng);在線(xiàn)采訪(fǎng)”,與新浪微博的“微采訪(fǎng)”功能基本相同。管理者可以通過(guò)該功能設計和安排在線(xiàn)面試節目,員工可以通過(guò)微博實(shí)時(shí)觀(guān)看和參與互動(dòng)。
此外,培訓管理者可以考慮將日常工作和各種活動(dòng)與企業(yè)微博結合起來(lái)。例如,在培訓項目的設計、實(shí)施、管理和評估方面,企業(yè)微博都有發(fā)揮的作用。內部微博在輔助培訓和員工學(xué)習中的應用僅僅是個(gè)開(kāi)始。作為企業(yè)內部的社交軟件,它將成為員工之間溝通協(xié)作的重要工具。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何把這種方法應用在組織學(xué)習中成為越來(lái)越的網(wǎng)絡(luò )應用)
毫無(wú)疑問(wèn),微博已經(jīng)成為越來(lái)越流行的網(wǎng)絡(luò )應用。如何將這種方法應用到組織學(xué)習中,使其成為一種非正式的學(xué)習方式,是很多培訓管理者思考的問(wèn)題。
以新浪微博為例,大致可以分為兩種方式促進(jìn)企業(yè)學(xué)習:一是直接應用模式,即直接利用新浪微博輔助培訓業(yè)務(wù),是初級應用階段;二是內部實(shí)施模式,即通過(guò)在企業(yè)內部部署一套專(zhuān)屬的企業(yè)微博,并以此為基礎,開(kāi)始組織內部的社交學(xué)習。這個(gè)模型比較復雜,但意義深遠。是微博推動(dòng)企業(yè)學(xué)習的進(jìn)階階段。本文將詳細介紹這兩種模式的應用方法、內容和要點(diǎn)。


直接申請模式
直接應用模式的目標是通過(guò)微博輔助傳統培訓業(yè)務(wù)。培訓部門(mén)可以通過(guò)建立培訓部門(mén)微博賬號、協(xié)助培訓項目、推動(dòng)企業(yè)e-Learning學(xué)習等方式,達到直接應用模式的效果。
創(chuàng )建微博賬號 培訓部門(mén)是組織內的服務(wù)部門(mén)。一般公司的培訓部門(mén)沒(méi)有自己的網(wǎng)站,缺乏與員工的溝通。因此,創(chuàng )建培訓部門(mén)自己的微博可以起到在線(xiàn)服務(wù)窗口的作用。銀聯(lián)培訓中心、用友大學(xué)、吉利大學(xué)等企業(yè)培訓中心或企業(yè)大學(xué)均開(kāi)設了自己的微博賬號。
建立一個(gè)微博賬號非常簡(jiǎn)單,只需在新浪微博上申請。需要注意的是,最好申請新浪代理認證。通過(guò)認證后,將有更多微博功能可供使用,包括:展示培訓中心的視頻或圖片,專(zhuān)門(mén)設置咨詢(xún)、留言、表?yè)P和意見(jiàn)窗口,展示培訓團隊成員的風(fēng)采等。
多功能輔助培訓項目擁有專(zhuān)屬微博賬號后,培訓中心可深度應用各種微博功能,輔助傳統面授培訓項目。新浪微博聚合了數千個(gè)功能應用,其中很多可以輔助面對面培訓。我們列出了幾個(gè)可以幫助培訓的最常見(jiàn)的微博功能。
微博大屏“微博大屏”更適合參加人數眾多的培訓項目,其價(jià)值在于能夠激活培訓現場(chǎng)的互動(dòng)氛圍。培訓期間,可通過(guò)獨立投影將微博大屏的內容投射到培訓現場(chǎng)。講師可以通過(guò)大屏幕采集學(xué)員的意見(jiàn),學(xué)員可以通過(guò)手機微博參與培訓和互動(dòng)過(guò)程。有關(guān)示例,請參見(jiàn)圖 1。
微活動(dòng)“微活動(dòng)”是一款不錯的培訓營(yíng)銷(xiāo)工具,適合培訓項目前期招生。如果培訓對象的微博使用滲透率高,可以通過(guò)發(fā)起“微事件”的形式發(fā)布培訓節目。在“微活動(dòng)”中,可以設置有獎、有針對性的選擇粉絲等功能,并結合粉絲轉發(fā),起到培養營(yíng)銷(xiāo)的作用(見(jiàn)圖表2).
微群 微群可以設置并邀請固定成員加入,類(lèi)似QQ群的功能(見(jiàn)圖表3),適合輔助周期較長(cháng)的培訓項目。講師或培訓經(jīng)理可以通過(guò)微信群發(fā)布通知微群、3)@文章、上傳附件等,也可以請學(xué)生在微群中討論問(wèn)題或提交作業(yè)。培訓項目結束后,微群可以解散或保留成為積累培訓資源的平臺。
促進(jìn)企業(yè)e-Learning學(xué)習 通常,企業(yè)在線(xiàn)學(xué)習以自主學(xué)習為主,學(xué)習者之間缺乏互動(dòng)。雖然有些公司在學(xué)習平臺上開(kāi)設了BBS討論區,但大多數情況下都不是很受歡迎。培訓管理者可以考慮將微博與在線(xiàn)學(xué)習相結合,通過(guò)嵌入微博代碼等功能增強在線(xiàn)學(xué)習的互動(dòng)性。具體可以通過(guò)以下方式實(shí)現。
加強網(wǎng)絡(luò )課程互動(dòng)活動(dòng)。在微博上發(fā)布與在線(xiàn)課程主題相關(guān)的微博,引發(fā)學(xué)習者討論內容,并將討論地址鏈接到課程介紹等明顯的地方。本質(zhì)是為每個(gè)在線(xiàn)課程建立一個(gè)微博討論論壇。建立方式有兩種:一是培訓管理員可以在發(fā)布課程時(shí)創(chuàng )建微博并同步設置課程鏈接;您可以隨時(shí)進(jìn)入微博參與互動(dòng)。
聚合在線(xiàn)學(xué)習和網(wǎng)絡(luò )資源 通過(guò)微博關(guān)鍵詞聚合功能,可以將課件內容與微博平臺內容進(jìn)行關(guān)聯(lián)。在海量的微博內容中,所有與網(wǎng)絡(luò )課程相關(guān)的微博內容都可以提取出來(lái),按時(shí)間順序顯示在網(wǎng)絡(luò )課件的指定位置(見(jiàn)圖表4)。內容聚合可以讓互動(dòng)更加深入——深度,將學(xué)習交流不僅延伸到在線(xiàn)課程的學(xué)習者,也延伸到所有微博成員。
網(wǎng)絡(luò )課程的推廣和評價(jià)微博也可以用于網(wǎng)絡(luò )課程的營(yíng)銷(xiāo)推廣和評價(jià),實(shí)施方式比較簡(jiǎn)單。比如在課程開(kāi)始或結束時(shí),可以添加“微博轉發(fā)”功能,將課程的介紹、鏈接、簡(jiǎn)要評價(jià)轉發(fā)到學(xué)習者的微博,學(xué)習者的粉絲第一時(shí)間看到課程. 介紹和鏈接。為了擴大影響力,管理者還可以在新浪微博以外的其他社交網(wǎng)絡(luò )上添加分享鏈接。
內部執行模式 所謂內部執行模式,就是在企業(yè)內部建立一個(gè)獨立完整的微博系統,企業(yè)可以在內部微博系統中建立自己的規則,比如加入V認證、風(fēng)格設計、企業(yè)自己的規則。學(xué)習系統或其他信息系統有更深入的整合等。
建立微博內部實(shí)施的目的,不僅可以輔助傳統培訓業(yè)務(wù),還可以利用微博的實(shí)施和應用在企業(yè)內部進(jìn)行社會(huì )學(xué)習,使微博成為員工分享和學(xué)習的新平臺。
新浪微博提供免費的企業(yè)微博下載版——微博,企業(yè)內部可以安裝使用。企業(yè)版微博(Xweibo)雖然不如新浪微博全面,但具備微博發(fā)布、瀏覽、轉發(fā)、評論、采集、話(huà)題等基本功能,微博的功能也在不斷升級完善。本文以微博系統為例,介紹如何在企業(yè)內部實(shí)現、部署和應用。
下載安裝Xweibo的下載地址為,下載安裝頁(yè)面如圖5所示。安裝時(shí)需要配合技術(shù)部門(mén),做好前期的溝通和準備工作。技術(shù)人員按照下載包中的說(shuō)明在企業(yè)內網(wǎng)完成安裝后,需要進(jìn)行初始化工作,主要包括以下幾個(gè)方面。
·設置企業(yè)微博名稱(chēng)·設置企業(yè)微博與新浪微博的關(guān)系·微博頁(yè)面布局設計·內容規則建立等與其他系統集成、安裝、初始化完成后,企業(yè)微博可以直接應用。但是,為了更好地發(fā)揮作用,通常需要與企業(yè)的其他業(yè)務(wù)系統進(jìn)行集成。特別是與學(xué)習管理系統和公司現有的BBS論壇系統深度融合,更方便員工使用。微博提供了一些內置的系統集成工具,企業(yè)可以使用這些工具進(jìn)行簡(jiǎn)單的集成。
1.定義主頁(yè)鏈接功能:通過(guò)該功能可以在微博主頁(yè)上集成相關(guān)學(xué)習系統的鏈接。
2.外部論壇插件功能:通過(guò)該功能,微博可以與企業(yè)內部BBS論壇同步登錄更新。
3.外部調用工具功能:可以將“轉發(fā)碼”和“異地調用碼”嵌入到學(xué)習管理系統、博客、郵箱、OA等其他系統中,讓微博的內容可以在其他系統中以各種形式顯示。
如果企業(yè)需要更深入的集成和增加個(gè)性化功能,開(kāi)發(fā)者需要對微博進(jìn)行高級二次開(kāi)發(fā)。
推廣應用 只有大規模應用,才能發(fā)揮社會(huì )學(xué)習的力量。培訓經(jīng)理可根據業(yè)務(wù)需要制定推廣應用策略和計劃。通過(guò)企業(yè)微博推行社會(huì )學(xué)習,要調動(dòng)員工的參與和積極性。根據微博的特點(diǎn),企業(yè)可以建立以下三種機制,開(kāi)啟快速應用的局面。
互聯(lián)機制將微博與新浪微博鏈接,所有擁有新浪微博賬號的員工都可以與微博同步數據。除了微博內容,“粉絲”也可以統一?;ヂ?lián)機制可以降低微博的使用難度,簡(jiǎn)化申請流程。但需要注意的是,有些企業(yè)不希望員工發(fā)布的某些內容同步到互聯(lián)網(wǎng)上,企業(yè)可以通過(guò)技術(shù)和制度對其進(jìn)行約束。
認證機制在企業(yè)內部開(kāi)展“微博+V認證”,培訓管理者可以通過(guò)這種方式提高員工參與度。微博的認證可以分類(lèi),比如可以分為技術(shù)專(zhuān)家、內部講師、工作專(zhuān)家等不同類(lèi)別(見(jiàn)圖表6)。同時(shí)也可以與“名人”合作管理”功能,監控各類(lèi)內部組織,有效管理先進(jìn)專(zhuān)業(yè)群體。Xweibo認證機制也是發(fā)現和梳理內部專(zhuān)家的最佳途徑之一,將為企業(yè)的實(shí)施提供有效的支持和幫助。知識管理。
活動(dòng)機制 在企業(yè)內部微博上開(kāi)展各種活動(dòng),提升微博知名度,活躍氣氛。微博內置兩個(gè)活動(dòng)功能模塊:一個(gè)是“線(xiàn)上直播”,主要輔助企業(yè)大型活動(dòng),活動(dòng)狀態(tài)在微博平臺直播。同時(shí),活動(dòng)現場(chǎng)可以與微博參與者進(jìn)行互動(dòng);在線(xiàn)采訪(fǎng)”,與新浪微博的“微采訪(fǎng)”功能基本相同。管理者可以通過(guò)該功能設計和安排在線(xiàn)面試節目,員工可以通過(guò)微博實(shí)時(shí)觀(guān)看和參與互動(dòng)。
此外,培訓管理者可以考慮將日常工作和各種活動(dòng)與企業(yè)微博結合起來(lái)。例如,在培訓項目的設計、實(shí)施、管理和評估方面,企業(yè)微博都有發(fā)揮的作用。內部微博在輔助培訓和員工學(xué)習中的應用僅僅是個(gè)開(kāi)始。作為企業(yè)內部的社交軟件,它將成為員工之間溝通協(xié)作的重要工具。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,有什么方式?)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 61 次瀏覽 ? 2022-02-25 12:01
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,實(shí)現網(wǎng)站微博同步;或者可以嘗試一下,將微博標簽作為一個(gè)指向網(wǎng)站站點(diǎn)的節點(diǎn),訪(fǎng)問(wèn)站點(diǎn)的自有網(wǎng)站就能同步。
你在新浪上發(fā)布的微博內容,
兩個(gè)社交平臺各有社交圈,本身已經(jīng)通過(guò)有他人需要的內容,當發(fā)布微博時(shí),即在兩個(gè)平臺上構建一個(gè)同步的鏈接。但假如你的目的是希望兩個(gè)平臺的內容同步,其實(shí)用第三方微博的新浪客戶(hù)端可能是一個(gè)更好的選擇,多個(gè)微博客戶(hù)端之間可以隨意切換即可。
發(fā)布微博到一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog等,和發(fā)布新浪/騰訊的微博到任何一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog/微博號一樣。
私聊我
這個(gè)理解是有問(wèn)題的微博在網(wǎng)站上傳遞需要兩個(gè)地方
1)網(wǎng)站
2)微博兩個(gè)地方同步有什么方式?
1)轉發(fā)這個(gè)是網(wǎng)站做的事情這個(gè)是騰訊做的事情
2)分享兩個(gè)地方同步都有叫做微轉+微博
微博平臺最早就是把所有微博的博客放在一個(gè)服務(wù)器上出了blog(國內最早的網(wǎng)站“微博會(huì )議室”),后來(lái)woocommerce為了獲得用戶(hù)數量,結果他們的收費排名第一的notify無(wú)法排名第一,一開(kāi)始他們想的是可以從中間找出各個(gè)平臺給分擔,后來(lái)他們想著(zhù)怎么樣把這些平臺運營(yíng)好(bmw、網(wǎng)易、qq空間等等),然后總結發(fā)現兩個(gè)平臺還是不方便兩個(gè)平臺的。
這樣最終就有了ugc的理念,最終都放在一個(gè)服務(wù)器上,通過(guò)postbin實(shí)現,ugc幾乎無(wú)限。所以個(gè)人覺(jué)得ugc時(shí)代,會(huì )在不久的將來(lái)將會(huì )到來(lái)。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,有什么方式?)
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,實(shí)現網(wǎng)站微博同步;或者可以嘗試一下,將微博標簽作為一個(gè)指向網(wǎng)站站點(diǎn)的節點(diǎn),訪(fǎng)問(wèn)站點(diǎn)的自有網(wǎng)站就能同步。
你在新浪上發(fā)布的微博內容,
兩個(gè)社交平臺各有社交圈,本身已經(jīng)通過(guò)有他人需要的內容,當發(fā)布微博時(shí),即在兩個(gè)平臺上構建一個(gè)同步的鏈接。但假如你的目的是希望兩個(gè)平臺的內容同步,其實(shí)用第三方微博的新浪客戶(hù)端可能是一個(gè)更好的選擇,多個(gè)微博客戶(hù)端之間可以隨意切換即可。
發(fā)布微博到一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog等,和發(fā)布新浪/騰訊的微博到任何一個(gè)網(wǎng)站/博客/門(mén)戶(hù)/blog/微博號一樣。
私聊我
這個(gè)理解是有問(wèn)題的微博在網(wǎng)站上傳遞需要兩個(gè)地方
1)網(wǎng)站
2)微博兩個(gè)地方同步有什么方式?
1)轉發(fā)這個(gè)是網(wǎng)站做的事情這個(gè)是騰訊做的事情
2)分享兩個(gè)地方同步都有叫做微轉+微博
微博平臺最早就是把所有微博的博客放在一個(gè)服務(wù)器上出了blog(國內最早的網(wǎng)站“微博會(huì )議室”),后來(lái)woocommerce為了獲得用戶(hù)數量,結果他們的收費排名第一的notify無(wú)法排名第一,一開(kāi)始他們想的是可以從中間找出各個(gè)平臺給分擔,后來(lái)他們想著(zhù)怎么樣把這些平臺運營(yíng)好(bmw、網(wǎng)易、qq空間等等),然后總結發(fā)現兩個(gè)平臺還是不方便兩個(gè)平臺的。
這樣最終就有了ugc的理念,最終都放在一個(gè)服務(wù)器上,通過(guò)postbin實(shí)現,ugc幾乎無(wú)限。所以個(gè)人覺(jué)得ugc時(shí)代,會(huì )在不久的將來(lái)將會(huì )到來(lái)。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API關(guān)閉,想用微博RSS轉化RSS方法數據導出 )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 103 次瀏覽 ? 2022-02-25 04:02
)
我之前一直在使用新浪微博的API進(jìn)行數據同步。今年年初,1月8日左右,微博API不知為何突然不可用,接口調用不斷出現403錯誤。私信聯(lián)系“微博”“開(kāi)發(fā)平臺”一直是機器回復。
因此,我猜新浪微博關(guān)閉了它的API。我猜可能是因為微博太難賺錢(qián)了,所以向騰訊學(xué)習,封閉數據賺大錢(qián)。
不過(guò)我在微博上發(fā)布了很多數據,但是微博到現在連數據備份都沒(méi)有,所以我還是需要另尋出路來(lái)進(jìn)行數據同步和備份操作,所以想用微博來(lái)轉換RSS。數據輸出。
11年前做過(guò)一個(gè)PHP微博轉RSS的項目,但是時(shí)間太長(cháng)了,里面的數據結構已經(jīng)徹底改了,不能用了,于是上網(wǎng)搜了一下,有沒(méi)有沒(méi)有現成的項目,結果發(fā)現github上有一個(gè)weibo-rss項目可以使用,但是它的部署使用的是Node.js,這個(gè)我之前沒(méi)用過(guò)。
我在國外購買(mǎi)的云服務(wù)器使用的是LNMP(Linux-Nginx-MySQL-PHP)環(huán)境,web服務(wù)器是Nginx,小巧穩定,占用資源極少。低配置服務(wù)器可以執行動(dòng)態(tài) 網(wǎng)站@ >。我只是嘗試將此 Node.js 項目部署到此服務(wù)器。
服務(wù)器沒(méi)有安裝Node.js,所以需要先安裝環(huán)境。面板中有一個(gè)“PM2管理器”,它是一個(gè)node.js管理器。內置node.js + npm + nvm + pm2,一鍵安裝。
安裝環(huán)境后,按照項目說(shuō)明開(kāi)始手動(dòng)部署。安裝前部署php的思路是把它部署到wwwroot下的一個(gè)目錄下。從網(wǎng)頁(yè)訪(fǎng)問(wèn)后,頁(yè)面可以出來(lái),但是RSS提示“獲取數據失敗”。
咨詢(xún)項目作者后發(fā)現,項目部署到了??3000端口,而不是Nginx的80和443端口,我用3000端口的地址訪(fǎng)問(wèn),可以正常獲取數據。
當然,最后還是希望在 Nginx 下使用,在 Nginx 中設置反向代理,映射一個(gè)目錄到 3000 端口,然后在 80 和 443 端口訪(fǎng)問(wèn)這個(gè) Node.js 項目。
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API關(guān)閉,想用微博RSS轉化RSS方法數據導出
)
我之前一直在使用新浪微博的API進(jìn)行數據同步。今年年初,1月8日左右,微博API不知為何突然不可用,接口調用不斷出現403錯誤。私信聯(lián)系“微博”“開(kāi)發(fā)平臺”一直是機器回復。
因此,我猜新浪微博關(guān)閉了它的API。我猜可能是因為微博太難賺錢(qián)了,所以向騰訊學(xué)習,封閉數據賺大錢(qián)。
不過(guò)我在微博上發(fā)布了很多數據,但是微博到現在連數據備份都沒(méi)有,所以我還是需要另尋出路來(lái)進(jìn)行數據同步和備份操作,所以想用微博來(lái)轉換RSS。數據輸出。
11年前做過(guò)一個(gè)PHP微博轉RSS的項目,但是時(shí)間太長(cháng)了,里面的數據結構已經(jīng)徹底改了,不能用了,于是上網(wǎng)搜了一下,有沒(méi)有沒(méi)有現成的項目,結果發(fā)現github上有一個(gè)weibo-rss項目可以使用,但是它的部署使用的是Node.js,這個(gè)我之前沒(méi)用過(guò)。
我在國外購買(mǎi)的云服務(wù)器使用的是LNMP(Linux-Nginx-MySQL-PHP)環(huán)境,web服務(wù)器是Nginx,小巧穩定,占用資源極少。低配置服務(wù)器可以執行動(dòng)態(tài) 網(wǎng)站@ >。我只是嘗試將此 Node.js 項目部署到此服務(wù)器。
服務(wù)器沒(méi)有安裝Node.js,所以需要先安裝環(huán)境。面板中有一個(gè)“PM2管理器”,它是一個(gè)node.js管理器。內置node.js + npm + nvm + pm2,一鍵安裝。
安裝環(huán)境后,按照項目說(shuō)明開(kāi)始手動(dòng)部署。安裝前部署php的思路是把它部署到wwwroot下的一個(gè)目錄下。從網(wǎng)頁(yè)訪(fǎng)問(wèn)后,頁(yè)面可以出來(lái),但是RSS提示“獲取數據失敗”。
咨詢(xún)項目作者后發(fā)現,項目部署到了??3000端口,而不是Nginx的80和443端口,我用3000端口的地址訪(fǎng)問(wèn),可以正常獲取數據。
當然,最后還是希望在 Nginx 下使用,在 Nginx 中設置反向代理,映射一個(gè)目錄到 3000 端口,然后在 80 和 443 端口訪(fǎng)問(wèn)這個(gè) Node.js 項目。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(2020年P(guān)ython+IFTTTWebhooks+Crontab定時(shí)抓取微博到DayOne)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 90 次瀏覽 ? 2022-02-25 00:07
本來(lái)我一直在用IFTTT自動(dòng)同步微博到Day One,這樣我就可以很方便的把我的日常筆記記錄在日記里了。不過(guò)從2020年開(kāi)始,微博不會(huì )開(kāi)放這個(gè)API接口。
自從失敗以來(lái),它一直被忽略。最近一時(shí)興起,在網(wǎng)上搜了一下,找到了一種方法——Python + IFTTT Webhooks + Crontab 定期抓取微博到Day One。
分三步:
1、下載你的微博內容
您無(wú)需編寫(xiě)代碼即可抓取微博。Github 上有現成的腳本,非常強大。將代碼下載到本地,然后步驟如下:
1、打開(kāi)powershell,切換到weibo-crawler的路徑。
2、安裝依賴(lài)。前提是安裝了python和pip。
pip install -r requirements.txt
3、修改配置文件config.json,將user_id_list改成自己的微博id。since_date 設置為 1,表示只取過(guò)去 1 天的微博。
4、運行爬蟲(chóng),如果微博數據可以下載到本地CSV文件,則表示成功。
python weibo.py
2、使用 IFTTT 發(fā)送 Day OneIFTTT 網(wǎng)站設置
在 IFTTT 網(wǎng)站 上設置操作:如果收到 Web 請求,則創(chuàng )建日志。
本地 Python 腳本
然后在本地weibo-crawler文件夾中創(chuàng )建一個(gè)ifttt.py文件,將以下內容復制進(jìn)去,注意根據自己的情況修改path、event_name、key。
import weibo
import csv
import requests
import json
import os
class Ifttt(object):
def __init__(self, path, event_name, key):
self.path = path
self.event_name = event_name
self.key = key
self.text = []
self.image = []
self.num = 0
# 解析本地 CSV 文件
def parse_post_info(self, path):
with open(path, 'r', encoding='UTF-8') as f:
csv_reader = csv.reader(f, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print("Header")
else:
self.text.append(row[2])
self.image.append(row[4].split(",",1))
line_count += 1
self.num = line_count - 1
print(self.text)
print(self.image)
print("Total posts: ", self.num)
# 發(fā)送給 IFTTT
def send_notice(self):
url = f"https://maker.ifttt.com/trigger/{self.event_name}/with/key/{self.key}"
for num in range(0, self.num):
payload = {"value1": self.text[num], "value2": self.image[num]}
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
print(payload)
def main():
config = weibo.get_config()
wb = weibo.Weibo(config)
wb.start()
path = 'weibo/微博名/1234567.csv' # 爬蟲(chóng)爬下來(lái)的csv路徑
event_name = 'DayOne' # Webhooks 觸發(fā)器名字
key = 'IF17vD4nqU6wO' # Webhooks 的 key,每個(gè)人不同
ifttt = Ifttt(path, event_name, key)
ifttt.parse_post_info(path)
ifttt.send_notice()
os.remove(path)
if __name__ == '__main__':
main()
3、Win10每日定時(shí)任務(wù)創(chuàng )建
前兩步完成后,功能已經(jīng)實(shí)現了,然后每次手動(dòng)觸發(fā)顯然太麻煩了,所以我決定用Win10定時(shí)任務(wù)每天自動(dòng)運行一次,下載微博到本地CSV 進(jìn)行保護,將其發(fā)送到 Day One,然后清除本地 CSV 文件。
設置定時(shí)任務(wù)的方法如下:
在計算機-管理-系統工具-任務(wù)計劃程序庫-微軟下右鍵,創(chuàng )建基本任務(wù),設置計劃任務(wù)名稱(chēng)、觸發(fā)時(shí)間、觸發(fā)頻率、觸發(fā)程序、觸發(fā)程序代碼和觸發(fā)程序代碼所在路徑位于。注意觸發(fā)代碼所在的路徑一定不能寫(xiě),否則運行時(shí)無(wú)法自動(dòng)刪除最后生成的CSV。
參考Win10定時(shí)任務(wù)自動(dòng)運行python程序
注:本文同時(shí)發(fā)表于個(gè)人博客。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(2020年P(guān)ython+IFTTTWebhooks+Crontab定時(shí)抓取微博到DayOne)
本來(lái)我一直在用IFTTT自動(dòng)同步微博到Day One,這樣我就可以很方便的把我的日常筆記記錄在日記里了。不過(guò)從2020年開(kāi)始,微博不會(huì )開(kāi)放這個(gè)API接口。
自從失敗以來(lái),它一直被忽略。最近一時(shí)興起,在網(wǎng)上搜了一下,找到了一種方法——Python + IFTTT Webhooks + Crontab 定期抓取微博到Day One。
分三步:
1、下載你的微博內容
您無(wú)需編寫(xiě)代碼即可抓取微博。Github 上有現成的腳本,非常強大。將代碼下載到本地,然后步驟如下:
1、打開(kāi)powershell,切換到weibo-crawler的路徑。
2、安裝依賴(lài)。前提是安裝了python和pip。
pip install -r requirements.txt
3、修改配置文件config.json,將user_id_list改成自己的微博id。since_date 設置為 1,表示只取過(guò)去 1 天的微博。
4、運行爬蟲(chóng),如果微博數據可以下載到本地CSV文件,則表示成功。
python weibo.py
2、使用 IFTTT 發(fā)送 Day OneIFTTT 網(wǎng)站設置
在 IFTTT 網(wǎng)站 上設置操作:如果收到 Web 請求,則創(chuàng )建日志。
本地 Python 腳本
然后在本地weibo-crawler文件夾中創(chuàng )建一個(gè)ifttt.py文件,將以下內容復制進(jìn)去,注意根據自己的情況修改path、event_name、key。
import weibo
import csv
import requests
import json
import os
class Ifttt(object):
def __init__(self, path, event_name, key):
self.path = path
self.event_name = event_name
self.key = key
self.text = []
self.image = []
self.num = 0
# 解析本地 CSV 文件
def parse_post_info(self, path):
with open(path, 'r', encoding='UTF-8') as f:
csv_reader = csv.reader(f, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print("Header")
else:
self.text.append(row[2])
self.image.append(row[4].split(",",1))
line_count += 1
self.num = line_count - 1
print(self.text)
print(self.image)
print("Total posts: ", self.num)
# 發(fā)送給 IFTTT
def send_notice(self):
url = f"https://maker.ifttt.com/trigger/{self.event_name}/with/key/{self.key}"
for num in range(0, self.num):
payload = {"value1": self.text[num], "value2": self.image[num]}
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
print(payload)
def main():
config = weibo.get_config()
wb = weibo.Weibo(config)
wb.start()
path = 'weibo/微博名/1234567.csv' # 爬蟲(chóng)爬下來(lái)的csv路徑
event_name = 'DayOne' # Webhooks 觸發(fā)器名字
key = 'IF17vD4nqU6wO' # Webhooks 的 key,每個(gè)人不同
ifttt = Ifttt(path, event_name, key)
ifttt.parse_post_info(path)
ifttt.send_notice()
os.remove(path)
if __name__ == '__main__':
main()
3、Win10每日定時(shí)任務(wù)創(chuàng )建
前兩步完成后,功能已經(jīng)實(shí)現了,然后每次手動(dòng)觸發(fā)顯然太麻煩了,所以我決定用Win10定時(shí)任務(wù)每天自動(dòng)運行一次,下載微博到本地CSV 進(jìn)行保護,將其發(fā)送到 Day One,然后清除本地 CSV 文件。
設置定時(shí)任務(wù)的方法如下:
在計算機-管理-系統工具-任務(wù)計劃程序庫-微軟下右鍵,創(chuàng )建基本任務(wù),設置計劃任務(wù)名稱(chēng)、觸發(fā)時(shí)間、觸發(fā)頻率、觸發(fā)程序、觸發(fā)程序代碼和觸發(fā)程序代碼所在路徑位于。注意觸發(fā)代碼所在的路徑一定不能寫(xiě),否則運行時(shí)無(wú)法自動(dòng)刪除最后生成的CSV。
參考Win10定時(shí)任務(wù)自動(dòng)運行python程序
注:本文同時(shí)發(fā)表于個(gè)人博客。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(api發(fā)新微博網(wǎng)上現有教程中的發(fā)送微博接口(updateStatus),)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 57 次瀏覽 ? 2022-02-23 21:02
最近有個(gè)項目需要調用微博api發(fā)送一條新的微博。在網(wǎng)上找了很多相關(guān)的教程,遇到了很多坑。后來(lái)發(fā)郵件給官方發(fā)現微博官方早在2017年3月就已經(jīng)調整了相關(guān)接口,取消了現有在線(xiàn)教程中發(fā)送微博的接口(updateStatus)。結果再次調用該接口會(huì )提示權限不足。,折騰了很久。特此發(fā)一個(gè)新的文章,希望大家不要入坑。
1.登錄開(kāi)放平臺創(chuàng )建應用
首先,需要到微博開(kāi)放平臺申請開(kāi)發(fā)者賬號,創(chuàng )建新應用。你可以直接用你的微博賬號登錄。登錄后,點(diǎn)擊微鏈接選擇其他選項,根據自己的需要新建應用程序(客戶(hù)端、Web應用程序和瀏覽器插件)。
2.應用相關(guān)設置
首先,在應用信息中編輯應用的基本信息,包括應用介紹和用途,一定要填寫(xiě)安全域名。您可以填寫(xiě)域名進(jìn)行自己的測試。企業(yè)申請,填寫(xiě)企業(yè)相關(guān)域名。
還需要在應用高級信息中設置OAuth2.0的授權回調頁(yè)面。這個(gè)測試也可以隨便填。應用發(fā)起用戶(hù)授權時(shí),重定向的頁(yè)面地址成功或取消。
三、下載微博java sdk
點(diǎn)擊sdk下載地址后會(huì )跳轉回github頁(yè)面。頁(yè)面也有例子提示如何使用,下載即可。下載后,將其導入代碼編輯器。最重要的一步:修改config.properties文件中的字段值。值的來(lái)源在應用程序信息中。
四、運行實(shí)例獲取授權碼
配置文件修改后,首先打開(kāi)examples包下的oauth2.0下的OAuth4Code.java文件,直接運行main方法。此時(shí)默認瀏覽器會(huì )打開(kāi)用戶(hù)授權頁(yè)面。授權后,瀏覽器地址中會(huì )多出一個(gè)code=******。復制代碼并粘貼到編輯器的控制臺中,然后回車(chē)返回授權信息。
復制返回的授權信息中accessToken的值,即授權碼。
AccessToken [accessToken=2.00******, expireIn=11255**, refreshToken=,uid=****]有了這個(gè)授權碼,我們就可以正式運營(yíng)微博了。
注意:微博api中的所有操作都需要OAuth2.0授權。調用每個(gè)方法都需要一個(gè)授權碼。未經(jīng)審核的應用授權碼僅在一天內有效。通過(guò)后有30天,如果得到應用開(kāi)發(fā)者的授權則有5年。因此,開(kāi)發(fā)者在調用時(shí)需要判斷授權碼的有效期,到期后引導用戶(hù)重新授權。
5.api應用微博
示例包中全是微博官方api實(shí)例,之前發(fā)送微博的接口在weibo4j.examples.timeline下。UpdateStatus.java 和 Upload.java 一個(gè)是發(fā)送微博文本,另一個(gè)是發(fā)送帶圖片的微博實(shí)例。打開(kāi)后發(fā)現調用了 Weibo4j.Timeline.java 類(lèi)發(fā)送微博。
不過(guò)微博官方已經(jīng)取消了updateStatus等相關(guān)的發(fā)送微博接口,這些接口不能再調用了,但是由于java sdk是2014版本,所以里面還是有這些方法的。然后替換之前的updateStatus界面為statuss/share(第三方分享鏈接微博)
我們使用這個(gè)接口發(fā)送一條微博。由于java sdk是2014版本的,這個(gè)版本沒(méi)有這個(gè)接口方法,所以我們需要根據他的調用方法寫(xiě)一個(gè)新的接口。由于這個(gè)接口只有兩個(gè)必填參數,一個(gè)微博文本和一個(gè)授權碼,類(lèi)似于updateStatus。所以我們可以打開(kāi)weibo4j.Timeline.java找到updateStatus方法,復制修改方法名,替換json。至此,無(wú)圖發(fā)微博的方法就完成了。
1?
2
公共狀態(tài) updateStatus(String status) 拋出 WeiboException {
return new Status(client.post(WeiboConfig.getValue("baseURL")
新 PostParameter[] { new PostParameter("status", status) },
訪(fǎng)問(wèn)令牌));
}
/** 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(api發(fā)新微博網(wǎng)上現有教程中的發(fā)送微博接口(updateStatus),)
最近有個(gè)項目需要調用微博api發(fā)送一條新的微博。在網(wǎng)上找了很多相關(guān)的教程,遇到了很多坑。后來(lái)發(fā)郵件給官方發(fā)現微博官方早在2017年3月就已經(jīng)調整了相關(guān)接口,取消了現有在線(xiàn)教程中發(fā)送微博的接口(updateStatus)。結果再次調用該接口會(huì )提示權限不足。,折騰了很久。特此發(fā)一個(gè)新的文章,希望大家不要入坑。
1.登錄開(kāi)放平臺創(chuàng )建應用
首先,需要到微博開(kāi)放平臺申請開(kāi)發(fā)者賬號,創(chuàng )建新應用。你可以直接用你的微博賬號登錄。登錄后,點(diǎn)擊微鏈接選擇其他選項,根據自己的需要新建應用程序(客戶(hù)端、Web應用程序和瀏覽器插件)。
2.應用相關(guān)設置
首先,在應用信息中編輯應用的基本信息,包括應用介紹和用途,一定要填寫(xiě)安全域名。您可以填寫(xiě)域名進(jìn)行自己的測試。企業(yè)申請,填寫(xiě)企業(yè)相關(guān)域名。
還需要在應用高級信息中設置OAuth2.0的授權回調頁(yè)面。這個(gè)測試也可以隨便填。應用發(fā)起用戶(hù)授權時(shí),重定向的頁(yè)面地址成功或取消。
三、下載微博java sdk
點(diǎn)擊sdk下載地址后會(huì )跳轉回github頁(yè)面。頁(yè)面也有例子提示如何使用,下載即可。下載后,將其導入代碼編輯器。最重要的一步:修改config.properties文件中的字段值。值的來(lái)源在應用程序信息中。
四、運行實(shí)例獲取授權碼
配置文件修改后,首先打開(kāi)examples包下的oauth2.0下的OAuth4Code.java文件,直接運行main方法。此時(shí)默認瀏覽器會(huì )打開(kāi)用戶(hù)授權頁(yè)面。授權后,瀏覽器地址中會(huì )多出一個(gè)code=******。復制代碼并粘貼到編輯器的控制臺中,然后回車(chē)返回授權信息。
復制返回的授權信息中accessToken的值,即授權碼。
AccessToken [accessToken=2.00******, expireIn=11255**, refreshToken=,uid=****]有了這個(gè)授權碼,我們就可以正式運營(yíng)微博了。
注意:微博api中的所有操作都需要OAuth2.0授權。調用每個(gè)方法都需要一個(gè)授權碼。未經(jīng)審核的應用授權碼僅在一天內有效。通過(guò)后有30天,如果得到應用開(kāi)發(fā)者的授權則有5年。因此,開(kāi)發(fā)者在調用時(shí)需要判斷授權碼的有效期,到期后引導用戶(hù)重新授權。
5.api應用微博
示例包中全是微博官方api實(shí)例,之前發(fā)送微博的接口在weibo4j.examples.timeline下。UpdateStatus.java 和 Upload.java 一個(gè)是發(fā)送微博文本,另一個(gè)是發(fā)送帶圖片的微博實(shí)例。打開(kāi)后發(fā)現調用了 Weibo4j.Timeline.java 類(lèi)發(fā)送微博。
不過(guò)微博官方已經(jīng)取消了updateStatus等相關(guān)的發(fā)送微博接口,這些接口不能再調用了,但是由于java sdk是2014版本,所以里面還是有這些方法的。然后替換之前的updateStatus界面為statuss/share(第三方分享鏈接微博)
我們使用這個(gè)接口發(fā)送一條微博。由于java sdk是2014版本的,這個(gè)版本沒(méi)有這個(gè)接口方法,所以我們需要根據他的調用方法寫(xiě)一個(gè)新的接口。由于這個(gè)接口只有兩個(gè)必填參數,一個(gè)微博文本和一個(gè)授權碼,類(lèi)似于updateStatus。所以我們可以打開(kāi)weibo4j.Timeline.java找到updateStatus方法,復制修改方法名,替換json。至此,無(wú)圖發(fā)微博的方法就完成了。
1?
2
公共狀態(tài) updateStatus(String status) 拋出 WeiboException {
return new Status(client.post(WeiboConfig.getValue("baseURL")
新 PostParameter[] { new PostParameter("status", status) },
訪(fǎng)問(wèn)令牌));
}
/**
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行(組圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 72 次瀏覽 ? 2022-02-23 16:04
裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行程序開(kāi)發(fā)
前段時(shí)間抓取微博的數據,想著(zhù)用htmlunit模擬登錄新浪微博抓取數據。這兩天看了新浪微博的官方API,發(fā)現可以通過(guò)新浪微博的官方API獲取。新浪微博信息,更全面更簡(jiǎn)單。以下是從注冊新浪微博,到完善新浪微博開(kāi)放平臺開(kāi)發(fā)者信息,再創(chuàng )建應用獲取Access Token,最后開(kāi)發(fā)自己的應用。
1注冊126個(gè)郵箱
02注冊新浪微博
03 登錄新浪微博
04登陸新浪開(kāi)放平臺
05查看微博接口
06 可以看到獲得用戶(hù)關(guān)注的用戶(hù)信息列表
07 打開(kāi)api測試工具
08 創(chuàng )建應用獲取AccessToken
09 創(chuàng )建應用程序
10選擇應用類(lèi)型
11填寫(xiě)開(kāi)發(fā)者信息(如果之前已經(jīng)填寫(xiě)過(guò)開(kāi)發(fā)者信息,則跳過(guò)此步驟)
12完整的開(kāi)發(fā)者信息
13 完成電子郵件確認
14 創(chuàng )建應用程序
15 成功創(chuàng )建應用(這里的Appkey暫時(shí)不可用)
16 回到這個(gè)地方進(jìn)行用戶(hù)關(guān)系的API測試
17 找到我的uid(在個(gè)人主頁(yè),后面最后一個(gè)數字是個(gè)人uid)
18 看到這個(gè)用戶(hù)就關(guān)注它
19的最終結果,調用新浪微博的api查看獲取到的json格式數據
以上完成后,在網(wǎng)頁(yè)上成功調用新浪微博提供的api接口。接下來(lái),您需要編寫(xiě)一個(gè)程序來(lái)實(shí)現這一點(diǎn)。程序是模擬這個(gè)網(wǎng)頁(yè)發(fā)送請求,返回的數據是json格式的數據。字段已定義。
比如模擬這個(gè)請求,然后解析數據:
完成后,開(kāi)始正式開(kāi)發(fā)微博數據分析程序。
發(fā)表于 2016-02-23 14:251130136248read(409)comments(0)edit 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行(組圖))
裴東輝-如何使用新浪微博API開(kāi)放平臺進(jìn)行程序開(kāi)發(fā)
前段時(shí)間抓取微博的數據,想著(zhù)用htmlunit模擬登錄新浪微博抓取數據。這兩天看了新浪微博的官方API,發(fā)現可以通過(guò)新浪微博的官方API獲取。新浪微博信息,更全面更簡(jiǎn)單。以下是從注冊新浪微博,到完善新浪微博開(kāi)放平臺開(kāi)發(fā)者信息,再創(chuàng )建應用獲取Access Token,最后開(kāi)發(fā)自己的應用。
1注冊126個(gè)郵箱

02注冊新浪微博

03 登錄新浪微博

04登陸新浪開(kāi)放平臺

05查看微博接口

06 可以看到獲得用戶(hù)關(guān)注的用戶(hù)信息列表

07 打開(kāi)api測試工具

08 創(chuàng )建應用獲取AccessToken

09 創(chuàng )建應用程序

10選擇應用類(lèi)型

11填寫(xiě)開(kāi)發(fā)者信息(如果之前已經(jīng)填寫(xiě)過(guò)開(kāi)發(fā)者信息,則跳過(guò)此步驟)

12完整的開(kāi)發(fā)者信息

13 完成電子郵件確認

14 創(chuàng )建應用程序

15 成功創(chuàng )建應用(這里的Appkey暫時(shí)不可用)

16 回到這個(gè)地方進(jìn)行用戶(hù)關(guān)系的API測試

17 找到我的uid(在個(gè)人主頁(yè),后面最后一個(gè)數字是個(gè)人uid)

18 看到這個(gè)用戶(hù)就關(guān)注它

19的最終結果,調用新浪微博的api查看獲取到的json格式數據

以上完成后,在網(wǎng)頁(yè)上成功調用新浪微博提供的api接口。接下來(lái),您需要編寫(xiě)一個(gè)程序來(lái)實(shí)現這一點(diǎn)。程序是模擬這個(gè)網(wǎng)頁(yè)發(fā)送請求,返回的數據是json格式的數據。字段已定義。
比如模擬這個(gè)請求,然后解析數據:

完成后,開(kāi)始正式開(kāi)發(fā)微博數據分析程序。
發(fā)表于 2016-02-23 14:251130136248read(409)comments(0)edit
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博python的安裝方式及解決方案 )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 82 次瀏覽 ? 2022-02-22 18:04
)
一:獲取app-key和app-secret
使用自己的微博賬號登錄微博開(kāi)放平臺(),在微博開(kāi)放中心的“創(chuàng )建應用”下創(chuàng )建應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您所需要的只是應用程序密鑰。和應用程序秘密
二:設置授權回調頁(yè)面
在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側的“應用信息”欄,會(huì )看到“App key”和“App Secret”,這兩個(gè)東西是后面程序中用到的。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
三:安裝微博python SDK
有兩種安裝方法:
1:下載新浪微博SDK
2:python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
四:實(shí)例驗證,獲取當前登錄用戶(hù)和他關(guān)注的用戶(hù)的最新微博(授權)
這里需要注意的是,當瀏覽器中彈出一個(gè)頁(yè)面時(shí),必須先點(diǎn)擊“授權”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面定向到新浪服務(wù)器,然后用戶(hù)將信息輸入新浪服務(wù)器并授權給我的應用訪(fǎng)問(wèn)用戶(hù)數據,這里我授權微博給下面的程序),授權后瀏覽器中的URL類(lèi)似:將代碼后面的代碼復制到控件中側面,程序需要讀取數據2024222384d5dc88316d21675259d73a
注意:如果要獲取其他信息,只需修改
statuses = client.statuses__friends_timeline()['statuses']
中的 statuss__friends_timeline
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser #python內置的包
APP_KEY = 'xxxxxxxx'#注意替換這里為自己申請的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = 'https://api.weibo.com/oauth2/d ... 3B%23回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
#可以打印下看看里面都有什么東西
statuses = client.statuses__friends_timeline()['statuses'] #獲取當前登錄用戶(hù)以及所關(guān)注用戶(hù)(已授權)的微博
length = len(statuses)
print length
#輸出了部分信息
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']
結果如下(截取部分數據):
以下是我的關(guān)注者的微博:
以上面的代碼為例,我們這里得到的信息是:
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(安裝微博python的安裝方式及解決方案
)
一:獲取app-key和app-secret
使用自己的微博賬號登錄微博開(kāi)放平臺(),在微博開(kāi)放中心的“創(chuàng )建應用”下創(chuàng )建應用。根據需要填寫(xiě)申請信息。填寫(xiě)完成后,無(wú)需提交審核。您所需要的只是應用程序密鑰。和應用程序秘密
二:設置授權回調頁(yè)面
在“微博開(kāi)放平臺”的“管理中心”找到剛剛創(chuàng )建的應用,點(diǎn)擊應用,點(diǎn)擊左側的“應用信息”欄,會(huì )看到“App key”和“App Secret”,這兩個(gè)東西是后面程序中用到的。然后點(diǎn)擊“應用信息”下“高級信息”中的“編輯”按鈕,將“授權回調頁(yè)面”設置為:,“取消授權回調頁(yè)面”設置為:。
三:安裝微博python SDK
有兩種安裝方法:
1:下載新浪微博SDK
2:python有一個(gè)簡(jiǎn)單的安裝方法:直接在命令行輸入:
sudo pip install sinaweibopy
四:實(shí)例驗證,獲取當前登錄用戶(hù)和他關(guān)注的用戶(hù)的最新微博(授權)
這里需要注意的是,當瀏覽器中彈出一個(gè)頁(yè)面時(shí),必須先點(diǎn)擊“授權”(這里進(jìn)行的OAuth 2認證,我理解是用戶(hù)訪(fǎng)問(wèn)我的應用,將頁(yè)面定向到新浪服務(wù)器,然后用戶(hù)將信息輸入新浪服務(wù)器并授權給我的應用訪(fǎng)問(wèn)用戶(hù)數據,這里我授權微博給下面的程序),授權后瀏覽器中的URL類(lèi)似:將代碼后面的代碼復制到控件中側面,程序需要讀取數據2024222384d5dc88316d21675259d73a
注意:如果要獲取其他信息,只需修改
statuses = client.statuses__friends_timeline()['statuses']
中的 statuss__friends_timeline
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser #python內置的包
APP_KEY = 'xxxxxxxx'#注意替換這里為自己申請的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = 'https://api.weibo.com/oauth2/d ... 3B%23回調授權頁(yè)面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授權頁(yè)面的url,利用webbrowser打開(kāi)這個(gè)url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#獲取code=后面的內容
print '輸入url中code后面的內容后按回車(chē)鍵:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類(lèi)似abc123xyz456
expires_in = r.expires_in
# 設置得到的access_token
client.set_access_token(access_token, expires_in)
#可以打印下看看里面都有什么東西
statuses = client.statuses__friends_timeline()['statuses'] #獲取當前登錄用戶(hù)以及所關(guān)注用戶(hù)(已授權)的微博
length = len(statuses)
print length
#輸出了部分信息
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']
結果如下(截取部分數據):
以下是我的關(guān)注者的微博:
以上面的代碼為例,我們這里得到的信息是:
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博登錄訪(fǎng)問(wèn)第三方網(wǎng)站的高級進(jìn)階干貨需要注意哪些? )
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 63 次瀏覽 ? 2022-02-22 18:00
)
在平時(shí)的項目開(kāi)發(fā)過(guò)程中,除了注冊這個(gè)網(wǎng)站賬號登錄外,還可以調用第三方接口登錄網(wǎng)站。這里我們以微博登錄為例。微博登錄包括身份認證、用戶(hù)關(guān)系和內容傳播。允許用戶(hù)登錄微博訪(fǎng)問(wèn)第三方網(wǎng)站、分享內容、同步信息。
1、首先需要將需要授權的用戶(hù)引導到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用戶(hù)同意授權,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、接下來(lái)需要根據上面得到的代碼兌換Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:
JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用獲取到的OAuth2.0 Access Token調用API獲取用戶(hù)身份,完成用戶(hù)登錄。
為了方便,我們先將get和post封裝到application下的common.php中:
應用通用文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器處理代碼Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博應用安全域名***/?backurl=***項目本地域名***/home/login/webLogin?";
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登錄成功";
}
}
}</p>
模板代碼 login.html:
DOCTYPE html>
微博登錄
點(diǎn)擊這里進(jìn)行微博登錄
渲染:
希望以上內容對您有所幫助。很多PHPer進(jìn)階的時(shí)候總會(huì )遇到一些問(wèn)題和瓶頸。編寫(xiě)業(yè)務(wù)代碼時(shí)沒(méi)有方向感。我不知道從哪里開(kāi)始改進(jìn)。我整理了其中一些。材料,包括但不限于:分布式架構、高擴展性、高性能、高并發(fā)、服務(wù)器性能調優(yōu)、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx和其他進(jìn)階干貨知識點(diǎn)可以免費分享給大家,需要的可以點(diǎn)這里鏈接或者關(guān)注下方我們的專(zhuān)欄
轉載:
轉載:
----------------------------------- ---------- ------------自有項目-------------- --------- ----------------------------------------- ----------------
//新浪授權登錄
public function weibo_login()
{
$key = "3700xxx";
$redirect_uri = "http://xxxx.xxxxx.com/wpapi/re ... 3B%3B
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return $this->fetch('weibo_register');
}
//新浪授權登錄--回到地址
public function web_login_back(){
$key = "370xxx";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "7124de4bdaa82ca2ccc52xxxxx";
$redirect_uri = "http://xxx.xxxxx.com/wpapi/reg ... 3B%3B
$url_post = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url_post);
$response->getStatusCode(); // 200
$response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$data = json_decode($response->getBody(), true);
// dump($data);die;
// $token = json_decode($data, true);
$token = $data;
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url_get = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$response_get = $client->request('get', $url_get);
$response_get->getStatusCode(); // 200
$response_get->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$info_info = json_decode($response_get->getBody(), true);
$info = $info_info;
dump($info);
if($info){
echo "登錄成功";
}
}
DOCTYPE html>
Title
微博授權登錄
點(diǎn)擊登錄
查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博登錄訪(fǎng)問(wèn)第三方網(wǎng)站的高級進(jìn)階干貨需要注意哪些?
)
在平時(shí)的項目開(kāi)發(fā)過(guò)程中,除了注冊這個(gè)網(wǎng)站賬號登錄外,還可以調用第三方接口登錄網(wǎng)站。這里我們以微博登錄為例。微博登錄包括身份認證、用戶(hù)關(guān)系和內容傳播。允許用戶(hù)登錄微博訪(fǎng)問(wèn)第三方網(wǎng)站、分享內容、同步信息。
1、首先需要將需要授權的用戶(hù)引導到以下地址:
https://api.weibo.com/oauth2/a ... T_URI
如果用戶(hù)同意授權,頁(yè)面跳轉到YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
2、接下來(lái)需要根據上面得到的代碼兌換Access Token:
https://api.weibo.com/oauth2/a ... DCODE
返回值:
JSON
{
"access_token": "SlAV32hkKG",
"remind_in": 3600,
"expires_in": 3600
}
3、最后使用獲取到的OAuth2.0 Access Token調用API獲取用戶(hù)身份,完成用戶(hù)登錄。
為了方便,我們先將get和post封裝到application下的common.php中:
應用通用文件common.php:
function get( $url, $_header = NULL )
{
$curl = curl_init();
//curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false);
if( stripos($url, 'https://') !==FALSE )
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if ( $_header != NULL )
{
curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
}
$ret = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if( intval( $info["http_code"] ) == 200 )
{
return $ret;
}
return false;
}
/*
* post method
*/
function post( $url, $param )
{
$oCurl = curl_init ();
curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
if (stripos ( $url, "https://" ) !== FALSE) {
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
}
curl_setopt ( $oCurl, CURLOPT_URL, $url );
curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $oCurl, CURLOPT_POST, true );
curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
$sContent = curl_exec ( $oCurl );
$aStatus = curl_getinfo ( $oCurl );
curl_close ( $oCurl );
if (intval ( $aStatus ["http_code"] ) == 200) {
return $sContent;
} else {
return false;
}
}
控制器處理代碼Login.php:
class Login extends \think\Controller
{
public function index()
{
$key = "****";
$redirect_uri = "***微博應用安全域名***/?backurl=***項目本地域名***/home/login/webLogin?";
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return view('login');
}
public function webLogin(){
$key = "*****";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "********";
$redirect_uri = "********";
$url = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$token = post($url, array());
$token = json_decode($token, true);
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$info = get($url);
if($info){
echo "<p>登錄成功";
}
}
}</p>
模板代碼 login.html:
DOCTYPE html>
微博登錄
點(diǎn)擊這里進(jìn)行微博登錄
渲染:



希望以上內容對您有所幫助。很多PHPer進(jìn)階的時(shí)候總會(huì )遇到一些問(wèn)題和瓶頸。編寫(xiě)業(yè)務(wù)代碼時(shí)沒(méi)有方向感。我不知道從哪里開(kāi)始改進(jìn)。我整理了其中一些。材料,包括但不限于:分布式架構、高擴展性、高性能、高并發(fā)、服務(wù)器性能調優(yōu)、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx和其他進(jìn)階干貨知識點(diǎn)可以免費分享給大家,需要的可以點(diǎn)這里鏈接或者關(guān)注下方我們的專(zhuān)欄
轉載:
轉載:
----------------------------------- ---------- ------------自有項目-------------- --------- ----------------------------------------- ----------------
//新浪授權登錄
public function weibo_login()
{
$key = "3700xxx";
$redirect_uri = "http://xxxx.xxxxx.com/wpapi/re ... 3B%3B
//授權后將頁(yè)面重定向到本地項目
$redirect_uri = urlencode($redirect_uri);
$wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
$this -> assign('wb_url',$wb_url);
return $this->fetch('weibo_register');
}
//新浪授權登錄--回到地址
public function web_login_back(){
$key = "370xxx";
//接收code值
$code = input('get.code');
//換取Access Token: post方式請求 替換參數: client_id, client_secret,redirect_uri, code
$secret = "7124de4bdaa82ca2ccc52xxxxx";
$redirect_uri = "http://xxx.xxxxx.com/wpapi/reg ... 3B%3B
$url_post = "https://api.weibo.com/oauth2/a ... id%3D{$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url_post);
$response->getStatusCode(); // 200
$response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$data = json_decode($response->getBody(), true);
// dump($data);die;
// $token = json_decode($data, true);
$token = $data;
//獲取用戶(hù)信息 : get方法,替換參數: access_token, uid
$url_get = "https://api.weibo.com/2/users/ ... en%3D{$token['access_token']}&uid={$token['uid']}";
$response_get = $client->request('get', $url_get);
$response_get->getStatusCode(); // 200
$response_get->getHeaderLine('content-type'); // 'application/json; charset=utf8'
$info_info = json_decode($response_get->getBody(), true);
$info = $info_info;
dump($info);
if($info){
echo "登錄成功";
}
}
DOCTYPE html>
Title
微博授權登錄
點(diǎn)擊登錄

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)發(fā)的api,1.第三方)
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 73 次瀏覽 ? 2022-02-22 17:20
首先我們要拿到新浪微博開(kāi)發(fā)的API,然后仔細閱讀一些文檔規范,這樣就可以知道如果第三方應用想要分享內容到新浪微博平臺,
1.第三方申請需在新浪微博開(kāi)放平臺審核通過(guò)
client_ID=*****
client_SERCRET=*****
配置到config.properties,信息如下:
client_ID=*****
client_SERCRET=*****
redirect_URI=http://apps.weibo.com/ceshidemo
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https://rm.api.weibo.com/2/
response_type=code
2.用從新浪微博開(kāi)放平臺獲取的client_ID和client_SERCRET獲取AccessToken,
3.然后帶著(zhù)獲取的AccessToken訪(fǎng)問(wèn)新浪微博、發(fā)送體驗微博或者獲取當前用戶(hù)信息等
代碼如下:
public class WeiBoUtil2 extends WeiBoUtil {
public static final String POST_WEIBO_URL_WITH_CONTENT = "https://api.weibo.com/2/status ... 3B%3B
private static final Logger logger = Logger.getLogger(WeiBoUtil2.class);
public static Map header = new HashMap();
static {
header.put("Accept-Language", "zh-CN,zh;q=0.8");
header.put("User-Agent", "test sina api");
header.put("Accept-Charset", "utf-8;q=0.7,*;q=0.3");
}
/**
* 獲取當前用戶(hù)信息
*
* @param uid
*
*/
public static void showUser(String uid) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();// 通過(guò)code回去通行令類(lèi)
Users um = new Users();
um.client.setToken(accessToken.getAccessToken());// 設置通行令然后發(fā)布微博
try {
User user = um.showUserById(uid);// 獲取用戶(hù)
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
/**
* 獲取用戶(hù)的粉絲列表
*
* @param name
* @throws WeiboException
* when Weibo service or network is unavailable
*/
public static void findFriendsByScreenName(String name) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();
Friendships fm = new Friendships();
fm.client.setToken(accessToken.getAccessToken());
try {
UserWapper users = fm.getFollowersByName(name);
for (User u : users.getUsers()) {
Log.logInfo(u.toString());
}
} catch (WeiboException e) {
Log.logErr(null+ ":" + e.getMessage());
}
}
/**
* 獲取通行令方法
*
* @param userid
* 用戶(hù)名
* @param password
* 密碼
* @return AccessToken 通行令
* @throws WeiboException
* when userId or password is not OAuth HttpException when Weibo
* service or network is unavailable
* @author
*/
public static AccessToken refreshToken(String userid, String password) {
try {
String url = WeiboConfig.getValue("authorizeURL");// 微博認證授權地址
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("client_id", WeiboConfig
.getValue("client_ID"));// your client id
postMethod.addParameter("redirect_uri", WeiboConfig
.getValue("redirect_URI"));// your url
postMethod.addParameter("userId", userid);// 獲取微薄的useid
postMethod.addParameter("passwd", password);
postMethod.addParameter("isLoginSina", "0");
postMethod.addParameter("action", "submit");
postMethod.addParameter("response_type", WeiboConfig
.getValue("response_type"));// code
// 獲取post方法的參數
HttpMethodParams param = postMethod.getParams();
param.setContentCharset("UTF-8");// 進(jìn)行編碼轉換
List headers = new ArrayList();
// 偽造請求頭信頭
headers.add(new Header(
"Referer",
"https://api.weibo.com/oauth2/a ... 6quot;));
headers.add(new Header("Host", "api.weibo.com"));
// headers
// .add(new Header("User-Agent",
// "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"));
headers.add(new Header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)"));
ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
Protocol.registerProtocol("https", new Protocol("https", fcty, 443));
//HttpClient客戶(hù)端apache下面的api
HttpClient client = new HttpClient();
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
client.executeMethod(postMethod);
//獲得響應的狀態(tài)碼
int status = postMethod.getStatusCode();
if (status != 200 && status != 302) {
Log.logErr("請求Token返回的狀態(tài)碼:" + status);
}
// 獲取響應的頭信息中的 地址信息
Header location = postMethod.getResponseHeader("Location");
// 下面的方法是取出code
if (location != null) {
String retUrl = location.getValue();
int begin = retUrl.indexOf("code=");
if (begin != -1) {
int end = retUrl.indexOf("&", begin);
if (end == -1)
end = retUrl.length();
String code = retUrl.substring(begin + 5, end);
if (code != null) {
// 通過(guò)getAccessTokenByCode方法返回accessToken
Log.logInfo("location's code is :" + code);
return new Oauth().getAccessTokenByCode(code);
}
}
} else {
Log.logErr("location's code is :"+location);
}
} catch (WeiboException e) {
Log.logErr(e.getMessage());
} catch (HttpException e) {
Log.logErr(null);
} catch (IOException e) {
Log.logErr(e.getMessage());
}
Log.logErr("refresh token failed");
return null;
}
/**
* 發(fā)布一篇微博方法
*
* @param str
* 發(fā)送的微博正文
* @param userid
* 用戶(hù)ID
* @param password
* 用戶(hù)密碼
* @return String post請求返回的response內容
*/
public static String sendWeibo(String str, String userid, String password,
String accessToken) throws WeiboException {
Map params = new HashMap();
params.put("access_token", accessToken);
params.put("status", str);
params.put("lat", "39.920063467669495");
params.put("long", "116.46009815979004");
String respStr = postMethodRequestWithOutFile(POST_WEIBO_URL_WITH_CONTENT, params, header);
Log.logInfo("postMethodRequestWithOutFile responce-->" + respStr);
return respStr;
}
/**
* post請求發(fā)送方法
*
* @param url
* 發(fā)布微博的地址
* @param params
* 請求消息頭中的參數值
* @param header
* 請求頭信息
* @return 服務(wù)器端的響應信息
* @throws WeiboException
* when userId or password is not OAuth HttpException
* Exception when Weibo service or network is unavailable
*/
public static String postMethodRequestWithOutFile(String url,
Map params, Map header) {
Log.logInfo("post request is begin! url =" + url);
HttpClient hc = new HttpClient();
try {
PostMethod pm = new PostMethod(url);
if (header != null) {
for (String head_key : header.keySet()) {
if (head_key == null || header.get(head_key) == null)
continue;
pm.addRequestHeader(head_key, header.get(head_key));
}
}
if (params != null) {
for (String param_key : params.keySet()) {
if (param_key == null || params.get(param_key) == null)
continue;
pm.addParameter(param_key, params.get(param_key));
}
}
// 獲取params,然后進(jìn)行編碼,編成utf8格式
pm.getParams().setContentCharset("utf8");
hc.executeMethod(pm);
String ret = pm.getResponseBodyAsString();// 獲取響應體的字符串
Log.logInfo("post請求發(fā)出后返回的信息:" + ret);
return ret;
} catch (HttpException e) {
Log.logErr(null);
} catch (Exception e) {
Log.logErr(null);
} finally {
Log.logInfo("post request is end! url =" + url);
}
return null;
}
如果您有興趣獲取更多信息:添加以下請求:378437335 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)發(fā)的api,1.第三方)
首先我們要拿到新浪微博開(kāi)發(fā)的API,然后仔細閱讀一些文檔規范,這樣就可以知道如果第三方應用想要分享內容到新浪微博平臺,
1.第三方申請需在新浪微博開(kāi)放平臺審核通過(guò)
client_ID=*****
client_SERCRET=*****
配置到config.properties,信息如下:
client_ID=*****
client_SERCRET=*****
redirect_URI=http://apps.weibo.com/ceshidemo
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https://rm.api.weibo.com/2/
response_type=code
2.用從新浪微博開(kāi)放平臺獲取的client_ID和client_SERCRET獲取AccessToken,
3.然后帶著(zhù)獲取的AccessToken訪(fǎng)問(wèn)新浪微博、發(fā)送體驗微博或者獲取當前用戶(hù)信息等
代碼如下:
public class WeiBoUtil2 extends WeiBoUtil {
public static final String POST_WEIBO_URL_WITH_CONTENT = "https://api.weibo.com/2/status ... 3B%3B
private static final Logger logger = Logger.getLogger(WeiBoUtil2.class);
public static Map header = new HashMap();
static {
header.put("Accept-Language", "zh-CN,zh;q=0.8");
header.put("User-Agent", "test sina api");
header.put("Accept-Charset", "utf-8;q=0.7,*;q=0.3");
}
/**
* 獲取當前用戶(hù)信息
*
* @param uid
*
*/
public static void showUser(String uid) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();// 通過(guò)code回去通行令類(lèi)
Users um = new Users();
um.client.setToken(accessToken.getAccessToken());// 設置通行令然后發(fā)布微博
try {
User user = um.showUserById(uid);// 獲取用戶(hù)
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
/**
* 獲取用戶(hù)的粉絲列表
*
* @param name
* @throws WeiboException
* when Weibo service or network is unavailable
*/
public static void findFriendsByScreenName(String name) {
Weibo weibo = new Weibo();
AccessToken accessToken = weibo.getAccessToken();
Friendships fm = new Friendships();
fm.client.setToken(accessToken.getAccessToken());
try {
UserWapper users = fm.getFollowersByName(name);
for (User u : users.getUsers()) {
Log.logInfo(u.toString());
}
} catch (WeiboException e) {
Log.logErr(null+ ":" + e.getMessage());
}
}
/**
* 獲取通行令方法
*
* @param userid
* 用戶(hù)名
* @param password
* 密碼
* @return AccessToken 通行令
* @throws WeiboException
* when userId or password is not OAuth HttpException when Weibo
* service or network is unavailable
* @author
*/
public static AccessToken refreshToken(String userid, String password) {
try {
String url = WeiboConfig.getValue("authorizeURL");// 微博認證授權地址
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("client_id", WeiboConfig
.getValue("client_ID"));// your client id
postMethod.addParameter("redirect_uri", WeiboConfig
.getValue("redirect_URI"));// your url
postMethod.addParameter("userId", userid);// 獲取微薄的useid
postMethod.addParameter("passwd", password);
postMethod.addParameter("isLoginSina", "0");
postMethod.addParameter("action", "submit");
postMethod.addParameter("response_type", WeiboConfig
.getValue("response_type"));// code
// 獲取post方法的參數
HttpMethodParams param = postMethod.getParams();
param.setContentCharset("UTF-8");// 進(jìn)行編碼轉換
List headers = new ArrayList();
// 偽造請求頭信頭
headers.add(new Header(
"Referer",
"https://api.weibo.com/oauth2/a ... 6quot;));
headers.add(new Header("Host", "api.weibo.com"));
// headers
// .add(new Header("User-Agent",
// "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0"));
headers.add(new Header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)"));
ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
Protocol.registerProtocol("https", new Protocol("https", fcty, 443));
//HttpClient客戶(hù)端apache下面的api
HttpClient client = new HttpClient();
client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
client.executeMethod(postMethod);
//獲得響應的狀態(tài)碼
int status = postMethod.getStatusCode();
if (status != 200 && status != 302) {
Log.logErr("請求Token返回的狀態(tài)碼:" + status);
}
// 獲取響應的頭信息中的 地址信息
Header location = postMethod.getResponseHeader("Location");
// 下面的方法是取出code
if (location != null) {
String retUrl = location.getValue();
int begin = retUrl.indexOf("code=");
if (begin != -1) {
int end = retUrl.indexOf("&", begin);
if (end == -1)
end = retUrl.length();
String code = retUrl.substring(begin + 5, end);
if (code != null) {
// 通過(guò)getAccessTokenByCode方法返回accessToken
Log.logInfo("location's code is :" + code);
return new Oauth().getAccessTokenByCode(code);
}
}
} else {
Log.logErr("location's code is :"+location);
}
} catch (WeiboException e) {
Log.logErr(e.getMessage());
} catch (HttpException e) {
Log.logErr(null);
} catch (IOException e) {
Log.logErr(e.getMessage());
}
Log.logErr("refresh token failed");
return null;
}
/**
* 發(fā)布一篇微博方法
*
* @param str
* 發(fā)送的微博正文
* @param userid
* 用戶(hù)ID
* @param password
* 用戶(hù)密碼
* @return String post請求返回的response內容
*/
public static String sendWeibo(String str, String userid, String password,
String accessToken) throws WeiboException {
Map params = new HashMap();
params.put("access_token", accessToken);
params.put("status", str);
params.put("lat", "39.920063467669495");
params.put("long", "116.46009815979004");
String respStr = postMethodRequestWithOutFile(POST_WEIBO_URL_WITH_CONTENT, params, header);
Log.logInfo("postMethodRequestWithOutFile responce-->" + respStr);
return respStr;
}
/**
* post請求發(fā)送方法
*
* @param url
* 發(fā)布微博的地址
* @param params
* 請求消息頭中的參數值
* @param header
* 請求頭信息
* @return 服務(wù)器端的響應信息
* @throws WeiboException
* when userId or password is not OAuth HttpException
* Exception when Weibo service or network is unavailable
*/
public static String postMethodRequestWithOutFile(String url,
Map params, Map header) {
Log.logInfo("post request is begin! url =" + url);
HttpClient hc = new HttpClient();
try {
PostMethod pm = new PostMethod(url);
if (header != null) {
for (String head_key : header.keySet()) {
if (head_key == null || header.get(head_key) == null)
continue;
pm.addRequestHeader(head_key, header.get(head_key));
}
}
if (params != null) {
for (String param_key : params.keySet()) {
if (param_key == null || params.get(param_key) == null)
continue;
pm.addParameter(param_key, params.get(param_key));
}
}
// 獲取params,然后進(jìn)行編碼,編成utf8格式
pm.getParams().setContentCharset("utf8");
hc.executeMethod(pm);
String ret = pm.getResponseBodyAsString();// 獲取響應體的字符串
Log.logInfo("post請求發(fā)出后返回的信息:" + ret);
return ret;
} catch (HttpException e) {
Log.logErr(null);
} catch (Exception e) {
Log.logErr(null);
} finally {
Log.logInfo("post request is end! url =" + url);
}
return null;
}
如果您有興趣獲取更多信息:添加以下請求:378437335
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(中國的微博客正在醞釀一場(chǎng)新的大戰(圖))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-02-20 05:17
中國的微博似乎正在醞釀一場(chǎng)新的戰爭。
剛剛在推特上看到了 Moonlight Blog 的所有者 williamlong 的消息:
尊敬的開(kāi)發(fā)者您好:您的應用程序“@”使用的接口已關(guān)閉。原因是向其他社交平臺同步內容的功能違反了相關(guān)法律法規和政策。請根據我們的建議和《微博開(kāi)放平臺應用審核規范》對您的應用進(jìn)行調整,并提交重新開(kāi)放界面的申請。感謝您的支持與合作。
同時(shí),知名的新浪微博第三方同步客戶(hù)端fawave和微博通也確認使用的新浪微博API服務(wù)已被凍結。
那么這些第三方客戶(hù)違反了哪些法律法規呢?
fawave 的作者認為可能有以下原因導致被封:
五、競爭限制 b) 新浪開(kāi)放平臺插件應用產(chǎn)生的數據,禁止以任何形式查看或與開(kāi)放平臺外的任何數據進(jìn)行交互;…
2. 插件應用程序提供商的權利和義務(wù)。以任何方式開(kāi)發(fā)機器人外掛應用,包括但不限于綁定多平臺微博賬號、將新浪微博信息同步到其他微博平臺等。
微博說(shuō):
新浪微博欺負人,玩過(guò)河拆橋大游戲:據開(kāi)發(fā)者介紹,很多基于新浪微博開(kāi)放平臺接口開(kāi)發(fā)的應用已經(jīng)從數據接口禁用,新浪微博準備過(guò)河河,拆橋!期待更多的開(kāi)發(fā)者關(guān)注這件事,說(shuō)不定你的應用就是下一個(gè)被停止的應用。
微博是一個(gè)生態(tài)系統,平臺是一方面,而那些基于微博平臺開(kāi)發(fā)應用的第三方開(kāi)發(fā)者對于平臺的成功至關(guān)重要。36氪將密切關(guān)注此事并進(jìn)行更新。善待開(kāi)發(fā)者就是善待自己。
更新 1:fawave 現在功能齊全。
更新 2:(在微博上更新)fawave 的作者之一(@Python 愛(ài)好者)說(shuō) fawave 又回來(lái)了,但是,在某些時(shí)候,你可能會(huì )發(fā)現缺少一些東西。另外,我了解新浪微博開(kāi)放平臺。
相關(guān)新聞:新浪微博被迫撤出大量特殊微博賬號
以下為新浪微博應用開(kāi)發(fā)者協(xié)議:
新浪微博應用開(kāi)發(fā)者協(xié)議
一、定義
1.新浪開(kāi)放平臺
a) 新浪開(kāi)放平臺是指新浪擁有和提供的一些軟件、文檔和技術(shù)服務(wù),插件應用提供商基于這些軟件、文檔和技術(shù)服務(wù)向新浪提供插件應用;
b) 新浪開(kāi)放平臺收錄的技術(shù)服務(wù)包括但不限于:為插件應用提供數據接口服務(wù)、為插件應用提供數據統計服務(wù)、提供支付渠道和計費系統、提供營(yíng)銷(xiāo)解決方案和營(yíng)銷(xiāo)服務(wù)。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(中國的微博客正在醞釀一場(chǎng)新的大戰(圖))
中國的微博似乎正在醞釀一場(chǎng)新的戰爭。
剛剛在推特上看到了 Moonlight Blog 的所有者 williamlong 的消息:
尊敬的開(kāi)發(fā)者您好:您的應用程序“@”使用的接口已關(guān)閉。原因是向其他社交平臺同步內容的功能違反了相關(guān)法律法規和政策。請根據我們的建議和《微博開(kāi)放平臺應用審核規范》對您的應用進(jìn)行調整,并提交重新開(kāi)放界面的申請。感謝您的支持與合作。
同時(shí),知名的新浪微博第三方同步客戶(hù)端fawave和微博通也確認使用的新浪微博API服務(wù)已被凍結。
那么這些第三方客戶(hù)違反了哪些法律法規呢?
fawave 的作者認為可能有以下原因導致被封:
五、競爭限制 b) 新浪開(kāi)放平臺插件應用產(chǎn)生的數據,禁止以任何形式查看或與開(kāi)放平臺外的任何數據進(jìn)行交互;…
2. 插件應用程序提供商的權利和義務(wù)。以任何方式開(kāi)發(fā)機器人外掛應用,包括但不限于綁定多平臺微博賬號、將新浪微博信息同步到其他微博平臺等。
微博說(shuō):
新浪微博欺負人,玩過(guò)河拆橋大游戲:據開(kāi)發(fā)者介紹,很多基于新浪微博開(kāi)放平臺接口開(kāi)發(fā)的應用已經(jīng)從數據接口禁用,新浪微博準備過(guò)河河,拆橋!期待更多的開(kāi)發(fā)者關(guān)注這件事,說(shuō)不定你的應用就是下一個(gè)被停止的應用。
微博是一個(gè)生態(tài)系統,平臺是一方面,而那些基于微博平臺開(kāi)發(fā)應用的第三方開(kāi)發(fā)者對于平臺的成功至關(guān)重要。36氪將密切關(guān)注此事并進(jìn)行更新。善待開(kāi)發(fā)者就是善待自己。
更新 1:fawave 現在功能齊全。
更新 2:(在微博上更新)fawave 的作者之一(@Python 愛(ài)好者)說(shuō) fawave 又回來(lái)了,但是,在某些時(shí)候,你可能會(huì )發(fā)現缺少一些東西。另外,我了解新浪微博開(kāi)放平臺。
相關(guān)新聞:新浪微博被迫撤出大量特殊微博賬號
以下為新浪微博應用開(kāi)發(fā)者協(xié)議:
新浪微博應用開(kāi)發(fā)者協(xié)議
一、定義
1.新浪開(kāi)放平臺
a) 新浪開(kāi)放平臺是指新浪擁有和提供的一些軟件、文檔和技術(shù)服務(wù),插件應用提供商基于這些軟件、文檔和技術(shù)服務(wù)向新浪提供插件應用;
b) 新浪開(kāi)放平臺收錄的技術(shù)服務(wù)包括但不限于:為插件應用提供數據接口服務(wù)、為插件應用提供數據統計服務(wù)、提供支付渠道和計費系統、提供營(yíng)銷(xiāo)解決方案和營(yíng)銷(xiāo)服務(wù)。
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇))
網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 71 次瀏覽 ? 2022-02-19 14:03
想了解新浪微博API開(kāi)發(fā)入門(mén)中的用戶(hù)授權(PHP基礎)嗎?在本文中,我將講解新浪微博API開(kāi)發(fā)的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。我們先來(lái)關(guān)注一下:新浪微博,API開(kāi)發(fā),一起來(lái)學(xué)習。
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。一不小心接觸到新浪微博API開(kāi)發(fā)。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺,網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和介紹、各種語(yǔ)言的API功能介紹文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的使用PHP開(kāi)發(fā)新浪微博API。內容組織和解釋?zhuān)?br /> 新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。大家可以去查一下,我會(huì )從例子開(kāi)發(fā)的角度來(lái)介紹和講解。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號,或者直接用我們的新浪微博賬號登錄,進(jìn)入我的應用,然后按照提示創(chuàng )建我們自己的第三方應用。創(chuàng )建完成后,我們可以得到兩個(gè)授權App Key和App Secret值,這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵。
獲取到授權值后,我們就可以使用上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中。
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。在我們得到 $aurl 之后,我們可以使用 header() 直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后,會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:你可以將此鏈接設置為上一頁(yè),這樣授權完成后,會(huì )再次自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值,這是獲取下面授權的Access Token所必需的。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯,一般是這個(gè)問(wèn)題。你沒(méi)有設置 session keys 的值,當然下面無(wú)法獲取 Access Token 的值。必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上述代碼最終得到用戶(hù)授權的Access Token,一共有兩個(gè)值,存放在$last_key數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。至此基本完成,這就是一個(gè)完整的新浪微博用戶(hù)授權流程。
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里簡(jiǎn)單介紹一下獲取最新微博記錄的接口,其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為:public_timeline()。示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常我們拿到用戶(hù)授權的Access Token值后,保存在我們的用戶(hù)表中,對應我們應用中的賬號。之后,我們就不需要每次都去新浪微博的各個(gè)api接口了。認證。
上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里使用的是php進(jìn)行開(kāi)發(fā),所以使用Json格式數據有先天優(yōu)勢,如果返回Json格式數據,直接使用php函數json_decode () 可以轉換成php常用的數組格式。 查看全部
使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API開(kāi)發(fā)簡(jiǎn)介之用戶(hù)授權(PHP基礎篇))
想了解新浪微博API開(kāi)發(fā)入門(mén)中的用戶(hù)授權(PHP基礎)嗎?在本文中,我將講解新浪微博API開(kāi)發(fā)的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。我們先來(lái)關(guān)注一下:新浪微博,API開(kāi)發(fā),一起來(lái)學(xué)習。
現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。一不小心接觸到新浪微博API開(kāi)發(fā)。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺,網(wǎng)站是: 收錄新浪微博開(kāi)發(fā)的綜合信息,包括開(kāi)發(fā)者的使用和介紹、各種語(yǔ)言的API功能介紹文檔、SDK等資料。
在開(kāi)發(fā)和學(xué)習的過(guò)程中,我覺(jué)得雖然不是太難,但是還是有一些問(wèn)題需要我們注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的使用PHP開(kāi)發(fā)新浪微博API。內容組織和解釋?zhuān)?br /> 新浪微博API開(kāi)發(fā)準備
首先,去新浪微博開(kāi)放平臺下載基于PHP的SDK開(kāi)發(fā)包。下載地址為:
下載完成后,放到自己的開(kāi)發(fā)環(huán)境中,解壓。演示程序也收錄在其中。我們可以參考它的示例程序來(lái)編寫(xiě)。
新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用程序使用 OAuth 授權。OAuth授權的流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。大家可以去查一下,我會(huì )從例子開(kāi)發(fā)的角度來(lái)介紹和講解。
1.先獲取一個(gè)未授權的Request Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我們需要在新浪微博開(kāi)放平臺注冊一個(gè)賬號,或者直接用我們的新浪微博賬號登錄,進(jìn)入我的應用,然后按照提示創(chuàng )建我們自己的第三方應用。創(chuàng )建完成后,我們可以得到兩個(gè)授權App Key和App Secret值,這兩個(gè)值是我們應用開(kāi)發(fā)的關(guān)鍵。
獲取到授權值后,我們就可以使用上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )存儲在$key數組變量中。
2.然后請求用戶(hù)授權Token
復制代碼代碼如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , '');
拿到未授權的Request Token值后,我們就可以使用上面的代碼開(kāi)始準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。在我們得到 $aurl 之后,我們可以使用 header() 直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后,會(huì )自動(dòng)跳轉回你在最后一個(gè)參數中設置的回調頁(yè)面:你可以將此鏈接設置為上一頁(yè),這樣授權完成后,會(huì )再次自動(dòng)跳轉回來(lái)。
需要注意的是,需要設置會(huì )話(huà)密鑰的值,這是獲取下面授權的Access Token所必需的。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯,一般是這個(gè)問(wèn)題。你沒(méi)有設置 session keys 的值,當然下面無(wú)法獲取 Access Token 的值。必須記住這一點(diǎn)。
3.用戶(hù)最后授權的Access Token
復制代碼代碼如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
回聲($last_key['oauth_token']);
上述代碼最終得到用戶(hù)授權的Access Token,一共有兩個(gè)值,存放在$last_key數組變量中。我們還可以看到,最后兩個(gè)參數是我們之前設置的會(huì )話(huà)值。至此基本完成,這就是一個(gè)完整的新浪微博用戶(hù)授權流程。
授權完成后工作
授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里簡(jiǎn)單介紹一下獲取最新微博記錄的接口,其他類(lèi)似。
獲取新浪微博最新信息的API接口函數為:public_timeline()。示例代碼如下:
復制代碼代碼如下:
//獲取前20條最新更新的公眾微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "發(fā)生錯誤";
返回假;
}
if (isset($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; 錯誤: '.$msg['error'] );
返回假;
}
print_r($msg);
通常我們拿到用戶(hù)授權的Access Token值后,保存在我們的用戶(hù)表中,對應我們應用中的賬號。之后,我們就不需要每次都去新浪微博的各個(gè)api接口了。認證。
上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里使用的是php進(jìn)行開(kāi)發(fā),所以使用Json格式數據有先天優(yōu)勢,如果返回Json格式數據,直接使用php函數json_decode () 可以轉換成php常用的數組格式。