亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪云平臺(SinaAppEngine)開(kāi)放的是什么:Sina)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2021-11-01 23:17 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪云平臺(SinaAppEngine)開(kāi)放的是什么:Sina)
  1、新浪微博開(kāi)放平臺()
  什么是開(kāi)放的:開(kāi)放平臺對開(kāi)發(fā)者開(kāi)放的是每個(gè)用戶(hù)的用戶(hù)關(guān)系。開(kāi)發(fā)者不像傳統應用那樣面對單個(gè)開(kāi)發(fā)者,而是面對用戶(hù)背后的整個(gè)朋友圈。每個(gè)API都提供了圍繞好友與好友交流的相關(guān)功能,如發(fā)送微博、查看好友信息等。
  為什么要使用開(kāi)放平臺?一個(gè)開(kāi)放的平臺可以加快應用的推廣。每個(gè)用戶(hù)都可以影響周?chē)呐笥?。一旦應用程序真的很好,用?hù)可以很容易地推薦給他的朋友,朋友可以再次推薦給他的朋友。開(kāi)放的平臺,更容易獲得用戶(hù)關(guān)系。當一個(gè)應用涉及到用戶(hù)溝通時(shí),它需要同時(shí)擁有一定的用戶(hù)群和用戶(hù)關(guān)系鏈,與如此多的用戶(hù)建立關(guān)系鏈需要花費大量的時(shí)間和精力。微博通過(guò)草根與草根、草根與名人、名人與名人的相互關(guān)注,形成了龐大的社交網(wǎng)絡(luò ),應用程序可以通過(guò)開(kāi)放平臺直接使用這個(gè)網(wǎng)絡(luò )。
  2、新浪云平臺(Sina AppEngine、SAE)
  新浪App Engine(以下簡(jiǎn)稱(chēng)SAE)是新浪研發(fā)中心于2009年8月開(kāi)始內部開(kāi)發(fā)并于2009年11月3日正式推出首個(gè)Alpha版本的國內首個(gè)公有云計算平臺。SAE是新浪云的核心組件計算策略。
  SAE作為國內的公有云計算公司,從發(fā)展之初就借鑒了谷歌、亞馬遜等國外公司在公有云計算方面的成功技術(shù)經(jīng)驗,并很快推出了與眾不同的具有自身特色的云計算平臺。SAE 選擇中國最流行的 Web 開(kāi)發(fā)語(yǔ)言 PHP 作為首選支持語(yǔ)言。Web 開(kāi)發(fā)者可以使用 SVN、SDK 或 Web 版本的在線(xiàn)代碼編輯器在 Linux/Mac/Windows 上進(jìn)行開(kāi)發(fā)、部署和調試。團隊開(kāi)發(fā)成員也可以協(xié)作,不同角色對代碼和項目有不同的權限;SAE 提供了一系列分布式計算和存儲服務(wù)供開(kāi)發(fā)者使用,包括分布式文件存儲、分布式數據庫集群、分布式緩存、分布式定時(shí)服務(wù)等,這些服務(wù)將大大降低開(kāi)發(fā)者的開(kāi)發(fā)成本。同時(shí),由于SAE整體架構的高可靠性和新浪的品牌保證,大大降低了開(kāi)發(fā)商的運營(yíng)風(fēng)險。另外,作為典型的云計算,SAE采用了“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。
  簡(jiǎn)而言之,SAE 是一個(gè)簡(jiǎn)單高效的分布式 Web 服務(wù)開(kāi)發(fā)和運營(yíng)平臺。
  查看更多。
  3、新浪云平臺(Sina AppEngine, SAE)與新浪微博開(kāi)放平臺的關(guān)系
  微博應用開(kāi)發(fā)成功后,需要將代碼部署到Web上才能使用。也就是說(shuō),微博應用開(kāi)發(fā)是通過(guò)調用新浪微博開(kāi)放平臺中的API來(lái)完成編程的,這些程序必須上傳到SAE并在SAE上運行。
  在開(kāi)發(fā)過(guò)程中,您可以搭建一個(gè)web服務(wù)器在本地運行程序,也可以選擇完成傳統的服務(wù)托管。但是,這兩種方案都需要很多麻煩的配置。
  開(kāi)發(fā)時(shí)直接將代碼部署到SAE,無(wú)需任何配置,SAE為您準備了更多以后可能用到的服務(wù)。我們可以直接進(jìn)入話(huà)題開(kāi)發(fā)微博應用。
  SAE 是免費的(至少作為個(gè)人學(xué)習的資源),這也很重要。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪云平臺(SinaAppEngine)開(kāi)放的是什么:Sina)
  1、新浪微博開(kāi)放平臺()
  什么是開(kāi)放的:開(kāi)放平臺對開(kāi)發(fā)者開(kāi)放的是每個(gè)用戶(hù)的用戶(hù)關(guān)系。開(kāi)發(fā)者不像傳統應用那樣面對單個(gè)開(kāi)發(fā)者,而是面對用戶(hù)背后的整個(gè)朋友圈。每個(gè)API都提供了圍繞好友與好友交流的相關(guān)功能,如發(fā)送微博、查看好友信息等。
  為什么要使用開(kāi)放平臺?一個(gè)開(kāi)放的平臺可以加快應用的推廣。每個(gè)用戶(hù)都可以影響周?chē)呐笥?。一旦應用程序真的很好,用?hù)可以很容易地推薦給他的朋友,朋友可以再次推薦給他的朋友。開(kāi)放的平臺,更容易獲得用戶(hù)關(guān)系。當一個(gè)應用涉及到用戶(hù)溝通時(shí),它需要同時(shí)擁有一定的用戶(hù)群和用戶(hù)關(guān)系鏈,與如此多的用戶(hù)建立關(guān)系鏈需要花費大量的時(shí)間和精力。微博通過(guò)草根與草根、草根與名人、名人與名人的相互關(guān)注,形成了龐大的社交網(wǎng)絡(luò ),應用程序可以通過(guò)開(kāi)放平臺直接使用這個(gè)網(wǎng)絡(luò )。
  2、新浪云平臺(Sina AppEngine、SAE)
  新浪App Engine(以下簡(jiǎn)稱(chēng)SAE)是新浪研發(fā)中心于2009年8月開(kāi)始內部開(kāi)發(fā)并于2009年11月3日正式推出首個(gè)Alpha版本的國內首個(gè)公有云計算平臺。SAE是新浪云的核心組件計算策略。
  SAE作為國內的公有云計算公司,從發(fā)展之初就借鑒了谷歌、亞馬遜等國外公司在公有云計算方面的成功技術(shù)經(jīng)驗,并很快推出了與眾不同的具有自身特色的云計算平臺。SAE 選擇中國最流行的 Web 開(kāi)發(fā)語(yǔ)言 PHP 作為首選支持語(yǔ)言。Web 開(kāi)發(fā)者可以使用 SVN、SDK 或 Web 版本的在線(xiàn)代碼編輯器在 Linux/Mac/Windows 上進(jìn)行開(kāi)發(fā)、部署和調試。團隊開(kāi)發(fā)成員也可以協(xié)作,不同角色對代碼和項目有不同的權限;SAE 提供了一系列分布式計算和存儲服務(wù)供開(kāi)發(fā)者使用,包括分布式文件存儲、分布式數據庫集群、分布式緩存、分布式定時(shí)服務(wù)等,這些服務(wù)將大大降低開(kāi)發(fā)者的開(kāi)發(fā)成本。同時(shí),由于SAE整體架構的高可靠性和新浪的品牌保證,大大降低了開(kāi)發(fā)商的運營(yíng)風(fēng)險。另外,作為典型的云計算,SAE采用了“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。
  簡(jiǎn)而言之,SAE 是一個(gè)簡(jiǎn)單高效的分布式 Web 服務(wù)開(kāi)發(fā)和運營(yíng)平臺。
  查看更多。
  3、新浪云平臺(Sina AppEngine, SAE)與新浪微博開(kāi)放平臺的關(guān)系
  微博應用開(kāi)發(fā)成功后,需要將代碼部署到Web上才能使用。也就是說(shuō),微博應用開(kāi)發(fā)是通過(guò)調用新浪微博開(kāi)放平臺中的API來(lái)完成編程的,這些程序必須上傳到SAE并在SAE上運行。
  在開(kāi)發(fā)過(guò)程中,您可以搭建一個(gè)web服務(wù)器在本地運行程序,也可以選擇完成傳統的服務(wù)托管。但是,這兩種方案都需要很多麻煩的配置。
  開(kāi)發(fā)時(shí)直接將代碼部署到SAE,無(wú)需任何配置,SAE為您準備了更多以后可能用到的服務(wù)。我們可以直接進(jìn)入話(huà)題開(kāi)發(fā)微博應用。
  SAE 是免費的(至少作為個(gè)人學(xué)習的資源),這也很重要。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博短鏈接API開(kāi)放,騰訊微博短地址API沒(méi)有開(kāi)放)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 92 次瀏覽 ? 2021-11-01 20:10 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博短鏈接API開(kāi)放,騰訊微博短地址API沒(méi)有開(kāi)放)
  在短地址(又稱(chēng)短鏈接、短地址等)方面,推特是經(jīng)過(guò)發(fā)展后發(fā)展起來(lái)的,很多互聯(lián)網(wǎng)網(wǎng)站都使用短地址。國內外有很多,但穩定可靠。國內的比較靠譜。我不怕沒(méi)有墻。幾家外國公司已經(jīng)遭遇悲劇。所以,如果在項目中使用短地址,我還是推薦使用新浪或者其他國內的短鏈接服務(wù)。
  新浪微博短鏈接API開(kāi)放,但騰訊微博短地址API未開(kāi)放。我想通過(guò)不同的路徑獲取騰訊微博的API,但以失敗告終。新浪微博短地址API不需要用戶(hù)登錄,直接調用即可,速度非???。以下代碼取自網(wǎng)站,使用CURLPOST方法供參考。
  新浪微博短鏈接API文檔在老版本的開(kāi)發(fā)文檔中,但新版本沒(méi)有添加:
  function shortenSinaUrl($long_url){
$apiKey='1234567890';//這里是你申請的應用的API KEY,隨便寫(xiě)個(gè)應用名就會(huì )自動(dòng)分配給你
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandSinaUrl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_long;
}
  參考新浪微博的開(kāi)發(fā)文檔,推薦使用get方式獲取。代碼更簡(jiǎn)單
  function shorturl($long_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandurl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_long;
}
  好,容易嗎?
  調試上面代碼的時(shí)候,需要填寫(xiě)自己的API key,不然肯定拿不到。
  特別說(shuō)明:短地址服務(wù)現在只為經(jīng)過(guò)認證的APP KEY提供服務(wù),剛剛申請的APP KEY會(huì )提示沒(méi)有權限??梢允褂?09678993和3818214747這兩個(gè)KEY進(jìn)行測試。這兩個(gè)KEY的來(lái)源不明,不推薦用于生產(chǎn)。(感謝您的提醒)
  Jucelin 寫(xiě)了一個(gè)調試文檔,你可以測試一下:
  長(cháng)到短:://
  短到長(cháng)::///S4bLBm
  參數只有2個(gè),類(lèi)型:1表示長(cháng)轉短,2表示短轉長(cháng),后面的URL是目標域名,因為懶所以沒(méi)有錯誤判斷,新浪微博短地址不支持短地址和那么短地址是的,邏輯上應該是這樣控制的。(不信你可以試試)。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博短鏈接API開(kāi)放,騰訊微博短地址API沒(méi)有開(kāi)放)
  在短地址(又稱(chēng)短鏈接、短地址等)方面,推特是經(jīng)過(guò)發(fā)展后發(fā)展起來(lái)的,很多互聯(lián)網(wǎng)網(wǎng)站都使用短地址。國內外有很多,但穩定可靠。國內的比較靠譜。我不怕沒(méi)有墻。幾家外國公司已經(jīng)遭遇悲劇。所以,如果在項目中使用短地址,我還是推薦使用新浪或者其他國內的短鏈接服務(wù)。
  新浪微博短鏈接API開(kāi)放,但騰訊微博短地址API未開(kāi)放。我想通過(guò)不同的路徑獲取騰訊微博的API,但以失敗告終。新浪微博短地址API不需要用戶(hù)登錄,直接調用即可,速度非???。以下代碼取自網(wǎng)站,使用CURLPOST方法供參考。
  新浪微博短鏈接API文檔在老版本的開(kāi)發(fā)文檔中,但新版本沒(méi)有添加:
  function shortenSinaUrl($long_url){
$apiKey='1234567890';//這里是你申請的應用的API KEY,隨便寫(xiě)個(gè)應用名就會(huì )自動(dòng)分配給你
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandSinaUrl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_long;
}
  參考新浪微博的開(kāi)發(fā)文檔,推薦使用get方式獲取。代碼更簡(jiǎn)單
  function shorturl($long_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandurl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_long;
}
  好,容易嗎?
  調試上面代碼的時(shí)候,需要填寫(xiě)自己的API key,不然肯定拿不到。
  特別說(shuō)明:短地址服務(wù)現在只為經(jīng)過(guò)認證的APP KEY提供服務(wù),剛剛申請的APP KEY會(huì )提示沒(méi)有權限??梢允褂?09678993和3818214747這兩個(gè)KEY進(jìn)行測試。這兩個(gè)KEY的來(lái)源不明,不推薦用于生產(chǎn)。(感謝您的提醒)
  Jucelin 寫(xiě)了一個(gè)調試文檔,你可以測試一下:
  長(cháng)到短:://
  短到長(cháng)::///S4bLBm
  參數只有2個(gè),類(lèi)型:1表示長(cháng)轉短,2表示短轉長(cháng),后面的URL是目標域名,因為懶所以沒(méi)有錯誤判斷,新浪微博短地址不支持短地址和那么短地址是的,邏輯上應該是這樣控制的。(不信你可以試試)。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(weibo.sdk.android--這個(gè)是sina微博微博登陸認證的源碼)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 140 次瀏覽 ? 2021-11-01 20:07 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(weibo.sdk.android--這個(gè)是sina微博微博登陸認證的源碼)
  首先要告訴大家的是,新浪微博API項目已經(jīng)轉移到GitHub上,原來(lái)的Google Code()項目沒(méi)有更新。如果使用舊代碼運行登錄,會(huì )彈出網(wǎng)頁(yè)錯誤bug。最新地址在:
  界面也從之前的V1轉為V2。具體信息請參考:。但是如果你像我一樣從頭開(kāi)始,不用擔心,直接去github下載最新的SDK即可。
  下載源代碼后解壓:
  
  哎,本來(lái)不想關(guān)心各個(gè)文件夾在干什么的……不過(guò)想起博客的格言……還是有問(wèn)題,別偷懶,想問(wèn)題……
  weibo.sdk.android ---- 這是新浪微博登錄認證的源碼。它是一個(gè) Android Lib 項目。什么是ALP這里就不解釋了。同學(xué)們可以參考鏈接( )。
  weibo.sdk.android.api ---- 這是新浪微博交互界面的源碼,是一個(gè)ALP。
  weibo.sdk.androi.sso ---- 這是新浪微薄的SSO源碼。如果不了解SSO,請看百度百科:
  weibo.sdk.android.sso.demo ---- 最后一個(gè)是我們需要的Demo,我們可以在Eclipse中引入這個(gè)項目。
  凌亂的 Doc ---- 我猜它是在 linux 下寫(xiě)的還是什么?無(wú)論如何,這是技術(shù)文檔。新浪真是懶得開(kāi)發(fā)。本文檔中的某些內容不再有效,例如 Android 權限聲明。無(wú)論如何,請隨意看看。
  weibo.sdk.android.sso.jar ---- 這是你需要引入到自己項目中的jar包。
  在這個(gè)文章中,我們不談其他,只談?wù){用sina接口進(jìn)行登錄認證,其余功能請參考官方Demo。
  首先,我們創(chuàng )建一個(gè)Android項目,命名為L(cháng)oginTest
  創(chuàng )建布局文件:
  創(chuàng )建活動(dòng)并在其中放置一個(gè)按鈕。點(diǎn)擊按鈕后,會(huì )彈出新浪認證窗口。認證成功后,界面上會(huì )顯示認證文本。
  package com.example.logintest;
import java.text.SimpleDateFormat;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;
import com.weibo.sdk.android.WeiboAuthListener;
import com.weibo.sdk.android.WeiboDialogError;
import com.weibo.sdk.android.WeiboException;
public class MainActivity extends Activity {
private Weibo mWeibo;
private static final String CONSUMER_KEY = "966056985";// 替換為開(kāi)發(fā)者的appkey,例如"1646212860";
private static final String REDIRECT_URL = "http://www.sina.com";
public static Oauth2AccessToken accessToken;
private TextView mText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWeibo = Weibo.getInstance(CONSUMER_KEY, REDIRECT_URL);
Button btn = (Button) findViewById(R.id.button1);
mText = (TextView) findViewById(R.id.textView1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mWeibo.authorize(MainActivity.this, new AuthDialogListener());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class AuthDialogListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
MainActivity.accessToken = new Oauth2AccessToken(token, expires_in);
if (MainActivity.accessToken.isSessionValid()) {
String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(MainActivity.accessToken
.getExpiresTime()));
mText.setText("認證成功: \r\n access_token: " + token + "\r\n"
+ "expires_in: " + expires_in + "\r\n有效期:" + date);
try {
Class sso = Class
.forName("com.weibo.sdk.android.api.WeiboAPI");// 如果支持weiboapi的話(huà),顯示api功能演示入口按鈕
} catch (ClassNotFoundException e) {
// e.printStackTrace();
Log.i("H3c", "com.weibo.sdk.android.api.WeiboAPI not found");
}
AccessTokenKeeper.keepAccessToken(MainActivity.this,
accessToken);
Toast.makeText(MainActivity.this, "認證成功", Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onError(WeiboDialogError e) {
Toast.makeText(getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
}
  將使用 AccessTokenKeeper 對象。該對象用于存儲認證信息??梢詮腄emo中獲取,直接復制粘貼即可。
  最后,添加權限(那一團糟的描述。doc 有點(diǎn)錯誤):
  
  
  啊,就是這樣。
  一開(kāi)始,我在糾結那個(gè)新浪APP_KEY,也就是應用中的CONSUMER_KEY。我認為要獲得APPKEY,我必須上傳工作,但現在我還沒(méi)有做到。如何上傳?這是一個(gè)雞和蛋的Bug。后來(lái)想太多了!APPKEY的作用應該是在認證登錄時(shí)彈出的登錄框中顯示你的應用名稱(chēng)。比如Demo中顯示的是“新浪在你的掌中”。我們在開(kāi)發(fā)應用等的時(shí)候可以參考demo先做功能,等所有功能完成后,上傳APP獲取APPKEY,然后替換。
  這篇文章純粹是我今天的初步研究所寫(xiě)的。如有不對之處,請指出!
  最后附上新浪微薄的API:%E5%B9%B3%E5%8F%B0%E6%A6%82%E8%BF%B0 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(weibo.sdk.android--這個(gè)是sina微博微博登陸認證的源碼)
  首先要告訴大家的是,新浪微博API項目已經(jīng)轉移到GitHub上,原來(lái)的Google Code()項目沒(méi)有更新。如果使用舊代碼運行登錄,會(huì )彈出網(wǎng)頁(yè)錯誤bug。最新地址在:
  界面也從之前的V1轉為V2。具體信息請參考:。但是如果你像我一樣從頭開(kāi)始,不用擔心,直接去github下載最新的SDK即可。
  下載源代碼后解壓:
  
  哎,本來(lái)不想關(guān)心各個(gè)文件夾在干什么的……不過(guò)想起博客的格言……還是有問(wèn)題,別偷懶,想問(wèn)題……
  weibo.sdk.android ---- 這是新浪微博登錄認證的源碼。它是一個(gè) Android Lib 項目。什么是ALP這里就不解釋了。同學(xué)們可以參考鏈接( )。
  weibo.sdk.android.api ---- 這是新浪微博交互界面的源碼,是一個(gè)ALP。
  weibo.sdk.androi.sso ---- 這是新浪微薄的SSO源碼。如果不了解SSO,請看百度百科:
  weibo.sdk.android.sso.demo ---- 最后一個(gè)是我們需要的Demo,我們可以在Eclipse中引入這個(gè)項目。
  凌亂的 Doc ---- 我猜它是在 linux 下寫(xiě)的還是什么?無(wú)論如何,這是技術(shù)文檔。新浪真是懶得開(kāi)發(fā)。本文檔中的某些內容不再有效,例如 Android 權限聲明。無(wú)論如何,請隨意看看。
  weibo.sdk.android.sso.jar ---- 這是你需要引入到自己項目中的jar包。
  在這個(gè)文章中,我們不談其他,只談?wù){用sina接口進(jìn)行登錄認證,其余功能請參考官方Demo。
  首先,我們創(chuàng )建一個(gè)Android項目,命名為L(cháng)oginTest
  創(chuàng )建布局文件:
  創(chuàng )建活動(dòng)并在其中放置一個(gè)按鈕。點(diǎn)擊按鈕后,會(huì )彈出新浪認證窗口。認證成功后,界面上會(huì )顯示認證文本。
  package com.example.logintest;
import java.text.SimpleDateFormat;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;
import com.weibo.sdk.android.WeiboAuthListener;
import com.weibo.sdk.android.WeiboDialogError;
import com.weibo.sdk.android.WeiboException;
public class MainActivity extends Activity {
private Weibo mWeibo;
private static final String CONSUMER_KEY = "966056985";// 替換為開(kāi)發(fā)者的appkey,例如"1646212860";
private static final String REDIRECT_URL = "http://www.sina.com";
public static Oauth2AccessToken accessToken;
private TextView mText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWeibo = Weibo.getInstance(CONSUMER_KEY, REDIRECT_URL);
Button btn = (Button) findViewById(R.id.button1);
mText = (TextView) findViewById(R.id.textView1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mWeibo.authorize(MainActivity.this, new AuthDialogListener());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class AuthDialogListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
MainActivity.accessToken = new Oauth2AccessToken(token, expires_in);
if (MainActivity.accessToken.isSessionValid()) {
String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(MainActivity.accessToken
.getExpiresTime()));
mText.setText("認證成功: \r\n access_token: " + token + "\r\n"
+ "expires_in: " + expires_in + "\r\n有效期:" + date);
try {
Class sso = Class
.forName("com.weibo.sdk.android.api.WeiboAPI");// 如果支持weiboapi的話(huà),顯示api功能演示入口按鈕
} catch (ClassNotFoundException e) {
// e.printStackTrace();
Log.i("H3c", "com.weibo.sdk.android.api.WeiboAPI not found");
}
AccessTokenKeeper.keepAccessToken(MainActivity.this,
accessToken);
Toast.makeText(MainActivity.this, "認證成功", Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onError(WeiboDialogError e) {
Toast.makeText(getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
}
  將使用 AccessTokenKeeper 對象。該對象用于存儲認證信息??梢詮腄emo中獲取,直接復制粘貼即可。
  最后,添加權限(那一團糟的描述。doc 有點(diǎn)錯誤):
  
  
  啊,就是這樣。
  一開(kāi)始,我在糾結那個(gè)新浪APP_KEY,也就是應用中的CONSUMER_KEY。我認為要獲得APPKEY,我必須上傳工作,但現在我還沒(méi)有做到。如何上傳?這是一個(gè)雞和蛋的Bug。后來(lái)想太多了!APPKEY的作用應該是在認證登錄時(shí)彈出的登錄框中顯示你的應用名稱(chēng)。比如Demo中顯示的是“新浪在你的掌中”。我們在開(kāi)發(fā)應用等的時(shí)候可以參考demo先做功能,等所有功能完成后,上傳APP獲取APPKEY,然后替換。
  這篇文章純粹是我今天的初步研究所寫(xiě)的。如有不對之處,請指出!
  最后附上新浪微薄的API:%E5%B9%B3%E5%8F%B0%E6%A6%82%E8%BF%B0

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(8款國外開(kāi)源微博,搭建自己的微博輕松又簡(jiǎn)單)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 85 次瀏覽 ? 2021-10-30 09:21 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(8款國外開(kāi)源微博,搭建自己的微博輕松又簡(jiǎn)單)
  文章標簽文章分類(lèi) MySQL 數據庫
  ?版權歸作者所有:原創(chuàng ) 作品來(lái)自51CTO博主朗基江湖。如需轉載請注明出處,否則將追究法律責任
  輕松打造自己的“推特”微博平臺!開(kāi)源程序是免費的
  當推特風(fēng)靡全球,新浪微博主導的群博時(shí)代爆發(fā)時(shí),幾乎所有的SNS產(chǎn)品都采用微博作為標準配置。你也喜歡建立自己的微博嗎?
  自己開(kāi)發(fā)微博產(chǎn)品并不容易,但在分享精神遍及全球互聯(lián)網(wǎng)領(lǐng)域的今天,其中的秘訣是什么?自己建立一個(gè)虛假的“推特”微博。從網(wǎng)上搜集了十個(gè)開(kāi)源微博程序,手握這些開(kāi)源代碼,搭建自己的微博輕而易舉。
  如果你也有好的微博開(kāi)源程序,請給我留言。IT人的精神是:分享!
  先介紹兩條中文開(kāi)源微博:
  易話(huà)
  接口與飯否類(lèi)似,API接口與飯否相似?;赑HP和MySQL,點(diǎn)擊這里下載源代碼。
  網(wǎng)頁(yè)烹飪
  基于PHP和MySQL,支持與機外同步,點(diǎn)此下載源代碼。
  以下是8條國外開(kāi)源微博:
  齋庫
  Jaiku(演示地址)是一個(gè)基于Python的微博平臺。2007年被谷歌收購,之后并未成功運營(yíng)。不得不在 2009 年宣布暫停維護。 后來(lái),Google 將 Jaiku 完全開(kāi)源并進(jìn)行了切換。在 AppEngine 上運行。Jaiku 目前是完全開(kāi)源的,可供用戶(hù)免費下載??梢缘絁aiku源代碼項目地址,使用SVN工具下載其源代碼。
  Laconica/ StatusNet
  Laconica/StatusNet(演示地址)是一個(gè)基于PHP和MySQL的開(kāi)源微博系統。也是可以實(shí)現微博常用功能的推特克隆版。國外很多微博系統都是通過(guò)這個(gè)開(kāi)源系統搭建的。Laconica 得到了大量應用系統的支持,包括 Twitterfeed、Hellotxt 和 Gravity,它們已經(jīng)成熟穩定。單擊此處下載其源代碼。
  永克利
  Yonkly 是一個(gè)基于 Asp.Net 的開(kāi)源微博。除了開(kāi)源版本,它還擁有高級的獨立托管版本。
  弗洛波
  Floopo是一個(gè)基于PHP和MySQL的免費微博系統。它的功能與推特非常相似,并提供了強大的后臺管理系統。
  更甜
  Sweetter是一個(gè)基于Python的具有一定投票機制的開(kāi)源微博項目,點(diǎn)擊這里下載其源代碼。
  吉斯科
  Jisko 的界面與 Twitter 非常相似。它可以通過(guò) AJAX 自動(dòng)更新。它還基于 PHP 和 MySQL。這個(gè)系統可能是由西班牙人開(kāi)發(fā)的。使用 SVN 在此處下載其源代碼。
  P2 WordPress 主題
  Wordpress 主題的P2(PHP)是一個(gè)WordPress Twitter 主題,可以將您的WordPress 博客轉換為類(lèi)似Twitter 的微博系統。支持實(shí)時(shí)更新,發(fā)布的信息和評論無(wú)需刷新即可顯示。
  這十個(gè)開(kāi)源微薄中的一個(gè)永遠適合你。凡夫,推特對你來(lái)說(shuō)不再是個(gè)謎。
  上一篇:真正“徹底”將火狐(Maxthon)設置為默認瀏覽器 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(8款國外開(kāi)源微博,搭建自己的微博輕松又簡(jiǎn)單)
  文章標簽文章分類(lèi) MySQL 數據庫
  ?版權歸作者所有:原創(chuàng ) 作品來(lái)自51CTO博主朗基江湖。如需轉載請注明出處,否則將追究法律責任
  輕松打造自己的“推特”微博平臺!開(kāi)源程序是免費的
  當推特風(fēng)靡全球,新浪微博主導的群博時(shí)代爆發(fā)時(shí),幾乎所有的SNS產(chǎn)品都采用微博作為標準配置。你也喜歡建立自己的微博嗎?
  自己開(kāi)發(fā)微博產(chǎn)品并不容易,但在分享精神遍及全球互聯(lián)網(wǎng)領(lǐng)域的今天,其中的秘訣是什么?自己建立一個(gè)虛假的“推特”微博。從網(wǎng)上搜集了十個(gè)開(kāi)源微博程序,手握這些開(kāi)源代碼,搭建自己的微博輕而易舉。
  如果你也有好的微博開(kāi)源程序,請給我留言。IT人的精神是:分享!
  先介紹兩條中文開(kāi)源微博:
  易話(huà)
  接口與飯否類(lèi)似,API接口與飯否相似?;赑HP和MySQL,點(diǎn)擊這里下載源代碼。
  網(wǎng)頁(yè)烹飪
  基于PHP和MySQL,支持與機外同步,點(diǎn)此下載源代碼。
  以下是8條國外開(kāi)源微博:
  齋庫
  Jaiku(演示地址)是一個(gè)基于Python的微博平臺。2007年被谷歌收購,之后并未成功運營(yíng)。不得不在 2009 年宣布暫停維護。 后來(lái),Google 將 Jaiku 完全開(kāi)源并進(jìn)行了切換。在 AppEngine 上運行。Jaiku 目前是完全開(kāi)源的,可供用戶(hù)免費下載??梢缘絁aiku源代碼項目地址,使用SVN工具下載其源代碼。
  Laconica/ StatusNet
  Laconica/StatusNet(演示地址)是一個(gè)基于PHP和MySQL的開(kāi)源微博系統。也是可以實(shí)現微博常用功能的推特克隆版。國外很多微博系統都是通過(guò)這個(gè)開(kāi)源系統搭建的。Laconica 得到了大量應用系統的支持,包括 Twitterfeed、Hellotxt 和 Gravity,它們已經(jīng)成熟穩定。單擊此處下載其源代碼。
  永克利
  Yonkly 是一個(gè)基于 Asp.Net 的開(kāi)源微博。除了開(kāi)源版本,它還擁有高級的獨立托管版本。
  弗洛波
  Floopo是一個(gè)基于PHP和MySQL的免費微博系統。它的功能與推特非常相似,并提供了強大的后臺管理系統。
  更甜
  Sweetter是一個(gè)基于Python的具有一定投票機制的開(kāi)源微博項目,點(diǎn)擊這里下載其源代碼。
  吉斯科
  Jisko 的界面與 Twitter 非常相似。它可以通過(guò) AJAX 自動(dòng)更新。它還基于 PHP 和 MySQL。這個(gè)系統可能是由西班牙人開(kāi)發(fā)的。使用 SVN 在此處下載其源代碼。
  P2 WordPress 主題
  Wordpress 主題的P2(PHP)是一個(gè)WordPress Twitter 主題,可以將您的WordPress 博客轉換為類(lèi)似Twitter 的微博系統。支持實(shí)時(shí)更新,發(fā)布的信息和評論無(wú)需刷新即可顯示。
  這十個(gè)開(kāi)源微薄中的一個(gè)永遠適合你。凡夫,推特對你來(lái)說(shuō)不再是個(gè)謎。
  上一篇:真正“徹底”將火狐(Maxthon)設置為默認瀏覽器

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用API提交數據(發(fā)布一條微博信息)(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 78 次瀏覽 ? 2021-10-29 18:02 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用API提交數據(發(fā)布一條微博信息)(組圖))
  我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我把這個(gè)經(jīng)驗介紹給新手(高手不用看,當然,如果你能提出一些意見(jiàn)和建議,我非常感謝),我想和你交流。
  本例介紹如何使用API??提交數據(發(fā)微博)和使用API??獲取數據(獲取最新更新的20條公眾微博消息),即官方中的“獲取下行數據集(時(shí)間線(xiàn))接口” “微博訪(fǎng)問(wèn)接口”下的“Statuses/public_timeline獲取最新更新的公眾微博新聞”和“Statuses/update發(fā)布微博信息”API。
  首先,你必須有一個(gè)新浪微博賬號,并申請一個(gè)app key(詳情請參考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97)@ >,然后在VS中新建一個(gè)解決方案,在解決方案中添加一個(gè)類(lèi)庫和一個(gè)網(wǎng)站,并添加一個(gè)引用(網(wǎng)站引用類(lèi)庫)。
  
  由于發(fā)布微博是POST請求,獲取數據是GET請求,并且通過(guò)HTTP基本認證(Basic Authentication)授權,我把這些函數寫(xiě)在一個(gè)類(lèi)中(在類(lèi)庫中),代碼如下(該類(lèi)參考我沒(méi)有仔細考慮是否達到了普遍性):
  
  發(fā)送請求和授權碼
  然后在類(lèi)庫中創(chuàng )建兩個(gè)實(shí)體類(lèi)status和user,字段與官方API相同:
  
  狀態(tài)實(shí)體類(lèi)
  
  用戶(hù)實(shí)體類(lèi)
  好了,經(jīng)過(guò)上面的步驟,準備工作就完成了,現在可以調用API了,我們來(lái)看看發(fā)布一條微博消息。雖然在這個(gè)文章()中有介紹,但為了本文的完整性,我還是把它貼出來(lái)。我的代碼,在類(lèi)庫中添加了一個(gè)微博訪(fǎng)問(wèn)類(lèi)MiniBlogVisit類(lèi):
  
  微博訪(fǎng)問(wèn)
  您可以通過(guò)調用 update 方法發(fā)布微博。但是需要注意的是,這里的Content必須使用HttpUtility.UrlEncode進(jìn)行編碼,否則會(huì )出現亂碼。
  看20條已更新的公眾微博消息,為最新更新,這是官方API中的第一個(gè)接口。這里返回的是 XML 數據或 JSON 數據。您可以根據自己的喜好自由選擇。我選擇返回 XML 數據。我的方法是將返回的XML數據寫(xiě)入XML文件,然后解析XML文件。代碼如下:
  
  獲取數據代碼
  好的,現在它被調用了。調用比較簡(jiǎn)單,就是一個(gè)空的Default.aspx頁(yè)面。后臺代碼如下:
  
  呼叫代碼
  至此,所有的代碼都寫(xiě)完了,我們來(lái)看一下完整的解決方案:
  
  運行后效果如下:
  
  第一次調用API,也是第一次寫(xiě)這么長(cháng)的文章。歡迎大家多拍幾張?。?! 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用API提交數據(發(fā)布一條微博信息)(組圖))
  我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我把這個(gè)經(jīng)驗介紹給新手(高手不用看,當然,如果你能提出一些意見(jiàn)和建議,我非常感謝),我想和你交流。
  本例介紹如何使用API??提交數據(發(fā)微博)和使用API??獲取數據(獲取最新更新的20條公眾微博消息),即官方中的“獲取下行數據集(時(shí)間線(xiàn))接口” “微博訪(fǎng)問(wèn)接口”下的“Statuses/public_timeline獲取最新更新的公眾微博新聞”和“Statuses/update發(fā)布微博信息”API。
  首先,你必須有一個(gè)新浪微博賬號,并申請一個(gè)app key(詳情請參考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97)@ >,然后在VS中新建一個(gè)解決方案,在解決方案中添加一個(gè)類(lèi)庫和一個(gè)網(wǎng)站,并添加一個(gè)引用(網(wǎng)站引用類(lèi)庫)。
  
  由于發(fā)布微博是POST請求,獲取數據是GET請求,并且通過(guò)HTTP基本認證(Basic Authentication)授權,我把這些函數寫(xiě)在一個(gè)類(lèi)中(在類(lèi)庫中),代碼如下(該類(lèi)參考我沒(méi)有仔細考慮是否達到了普遍性):
  
  發(fā)送請求和授權碼
  然后在類(lèi)庫中創(chuàng )建兩個(gè)實(shí)體類(lèi)status和user,字段與官方API相同:
  
  狀態(tài)實(shí)體類(lèi)
  
  用戶(hù)實(shí)體類(lèi)
  好了,經(jīng)過(guò)上面的步驟,準備工作就完成了,現在可以調用API了,我們來(lái)看看發(fā)布一條微博消息。雖然在這個(gè)文章()中有介紹,但為了本文的完整性,我還是把它貼出來(lái)。我的代碼,在類(lèi)庫中添加了一個(gè)微博訪(fǎng)問(wèn)類(lèi)MiniBlogVisit類(lèi):
  
  微博訪(fǎng)問(wèn)
  您可以通過(guò)調用 update 方法發(fā)布微博。但是需要注意的是,這里的Content必須使用HttpUtility.UrlEncode進(jìn)行編碼,否則會(huì )出現亂碼。
  看20條已更新的公眾微博消息,為最新更新,這是官方API中的第一個(gè)接口。這里返回的是 XML 數據或 JSON 數據。您可以根據自己的喜好自由選擇。我選擇返回 XML 數據。我的方法是將返回的XML數據寫(xiě)入XML文件,然后解析XML文件。代碼如下:
  
  獲取數據代碼
  好的,現在它被調用了。調用比較簡(jiǎn)單,就是一個(gè)空的Default.aspx頁(yè)面。后臺代碼如下:
  
  呼叫代碼
  至此,所有的代碼都寫(xiě)完了,我們來(lái)看一下完整的解決方案:
  
  運行后效果如下:
  
  第一次調用API,也是第一次寫(xiě)這么長(cháng)的文章。歡迎大家多拍幾張?。?!

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(python用python調用微博API項目實(shí)踐的相關(guān)內容嗎?)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 85 次瀏覽 ? 2021-10-29 17:22 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(python用python調用微博API項目實(shí)踐的相關(guān)內容嗎?)
  想知道python調用新浪微博API項目的相關(guān)內容嗎?在本文中,我將仔細講解調用新浪微博API的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。先重點(diǎn)介紹一下:python,新浪微博,API,一起來(lái)學(xué)習吧。
  因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
  SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
  如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
  要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。OAuth2授權參數除了app key和app secret外還需要網(wǎng)站回調地址redirect_uri,并且這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.0.0.1 好像不行),這著(zhù)實(shí)讓我著(zhù)急了好久。我沒(méi)有使用API??調用網(wǎng)站,所以查了很多??吹接腥藢?xiě)這個(gè)地址可以代替,我試了一下,成功了,這對Diosi來(lái)說(shuō)是個(gè)好消息。
  這是一個(gè)簡(jiǎn)單的程序來(lái)感受一下:
  設置以下參數
  
import sys
import weibo
import webbrowser
APP_KEY = ''
MY_APP_SECRET = ''
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html'
  獲取微博授權網(wǎng)址,如第二行,用默認瀏覽器打開(kāi)后,會(huì )要求登錄微博,用需要授權的賬號登錄,如下圖
  
api = weibo.APIClient(app_key=APP_KEY,app_secret=MY_APP_SECRET,redirect_uri=REDIRECT_URL)
authorize_url = api.get_authorize_url()
print(authorize_url)
webbrowser.open_new(authorize_url)
  
  登錄后會(huì )轉成一個(gè)連接
  key是code值,是認證的關(guān)鍵。手動(dòng)輸入code值模擬認證
  
request = api.request_access_token(code, REDIRECT_URL)
access_token = request.access_token
expires_in = request.expires_in
api.set_access_token(access_token, expires_in)
api.statuses.update.post(status=u'Test OAuth 2.0 Send a Weibo!')
  access_token是獲取到的token,expires_in是授權的過(guò)期時(shí)間(UNIX時(shí)間)
  使用 set_access_token 保存授權。然后就可以調用微博界面了。測試發(fā)了一條微博
  
  但是,這種手動(dòng)輸入代碼的方式并不適合程序調用。是否可以不打開(kāi)鏈接請求登錄并獲得授權?經(jīng)多方搜索參考,程序改進(jìn)如下,可自動(dòng)獲取并保存代碼,方便程序服務(wù)調用。
  
accessWeibo
# -*- coding: utf-8 -*-
#/usr/bin/env python
#access to SinaWeibo By sinaweibopy
#實(shí)現微博自動(dòng)登錄,token自動(dòng)生成,保存及更新
#適合于后端服務(wù)調用
from weibo import APIClient
import pymongo
import sys, os, urllib, urllib2
from http_helper import *
from retry import *
try:
import json
except ImportError:
import simplejson as json
# setting sys encoding to utf-8
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
# weibo api訪(fǎng)問(wèn)配置
APP_KEY = '' # app key
APP_SECRET = '' # app secret
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html' # callback url 授權回調頁(yè),與OAuth2.0 授權設置的一致
USERID = '' # 登陸的微博用戶(hù)名,必須是OAuth2.0 設置的測試賬號
USERPASSWD = '' # 用戶(hù)密碼
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
def make_access_token():
#請求access token
params = urllib.urlencode({
'action':'submit',
'withOfficalFlag':'0',
'ticket':'',
'isLoginSina':'',
'response_type':'code',
'regCallback':'',
'redirect_uri':REDIRECT_URL,
'client_id':APP_KEY,
'state':'',
'from':'',
'userId':USERID,
'passwd':USERPASSWD,
})
login_url = 'https://api.weibo.com/oauth2/authorize'
url = client.get_authorize_url()
content = urllib2.urlopen(url)
if content:
headers = { 'Referer' : url }
request = urllib2.Request(login_url, params, headers)
opener = get_opener(False)
urllib2.install_opener(opener)
try:
f = opener.open(request)
return_redirect_uri = f.url
except urllib2.HTTPError, e:
return_redirect_uri = e.geturl()
# 取到返回的code
code = return_redirect_uri.split('=')[1]
#得到token
token = client.request_access_token(code,REDIRECT_URL)
save_access_token(token)
def save_access_token(token):
#將access token保存到MongoDB數據庫
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
t={
"access_token":token['access_token'],
"expires_in":str(token['expires_in']),
"date":time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
}
db.token.insert(t,safe=True)
#Decorator 目的是當調用make_access_token()后再執行一次apply_access_token()
@retry(1)
def apply_access_token():
#從MongoDB讀取及設置access token
try:
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
if db.token.count()>0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
  
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
  
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv
  相關(guān)文章 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(python用python調用微博API項目實(shí)踐的相關(guān)內容嗎?)
  想知道python調用新浪微博API項目的相關(guān)內容嗎?在本文中,我將仔細講解調用新浪微博API的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。先重點(diǎn)介紹一下:python,新浪微博,API,一起來(lái)學(xué)習吧。
  因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
  SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
  如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
  要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。OAuth2授權參數除了app key和app secret外還需要網(wǎng)站回調地址redirect_uri,并且這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.0.0.1 好像不行),這著(zhù)實(shí)讓我著(zhù)急了好久。我沒(méi)有使用API??調用網(wǎng)站,所以查了很多??吹接腥藢?xiě)這個(gè)地址可以代替,我試了一下,成功了,這對Diosi來(lái)說(shuō)是個(gè)好消息。
  這是一個(gè)簡(jiǎn)單的程序來(lái)感受一下:
  設置以下參數
  
import sys
import weibo
import webbrowser
APP_KEY = ''
MY_APP_SECRET = ''
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html'
  獲取微博授權網(wǎng)址,如第二行,用默認瀏覽器打開(kāi)后,會(huì )要求登錄微博,用需要授權的賬號登錄,如下圖
  
api = weibo.APIClient(app_key=APP_KEY,app_secret=MY_APP_SECRET,redirect_uri=REDIRECT_URL)
authorize_url = api.get_authorize_url()
print(authorize_url)
webbrowser.open_new(authorize_url)
  
  登錄后會(huì )轉成一個(gè)連接
  key是code值,是認證的關(guān)鍵。手動(dòng)輸入code值模擬認證
  
request = api.request_access_token(code, REDIRECT_URL)
access_token = request.access_token
expires_in = request.expires_in
api.set_access_token(access_token, expires_in)
api.statuses.update.post(status=u'Test OAuth 2.0 Send a Weibo!')
  access_token是獲取到的token,expires_in是授權的過(guò)期時(shí)間(UNIX時(shí)間)
  使用 set_access_token 保存授權。然后就可以調用微博界面了。測試發(fā)了一條微博
  
  但是,這種手動(dòng)輸入代碼的方式并不適合程序調用。是否可以不打開(kāi)鏈接請求登錄并獲得授權?經(jīng)多方搜索參考,程序改進(jìn)如下,可自動(dòng)獲取并保存代碼,方便程序服務(wù)調用。
  
accessWeibo
# -*- coding: utf-8 -*-
#/usr/bin/env python
#access to SinaWeibo By sinaweibopy
#實(shí)現微博自動(dòng)登錄,token自動(dòng)生成,保存及更新
#適合于后端服務(wù)調用
from weibo import APIClient
import pymongo
import sys, os, urllib, urllib2
from http_helper import *
from retry import *
try:
import json
except ImportError:
import simplejson as json
# setting sys encoding to utf-8
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
# weibo api訪(fǎng)問(wèn)配置
APP_KEY = '' # app key
APP_SECRET = '' # app secret
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html' # callback url 授權回調頁(yè),與OAuth2.0 授權設置的一致
USERID = '' # 登陸的微博用戶(hù)名,必須是OAuth2.0 設置的測試賬號
USERPASSWD = '' # 用戶(hù)密碼
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
def make_access_token():
#請求access token
params = urllib.urlencode({
'action':'submit',
'withOfficalFlag':'0',
'ticket':'',
'isLoginSina':'',
'response_type':'code',
'regCallback':'',
'redirect_uri':REDIRECT_URL,
'client_id':APP_KEY,
'state':'',
'from':'',
'userId':USERID,
'passwd':USERPASSWD,
})
login_url = 'https://api.weibo.com/oauth2/authorize'
url = client.get_authorize_url()
content = urllib2.urlopen(url)
if content:
headers = { 'Referer' : url }
request = urllib2.Request(login_url, params, headers)
opener = get_opener(False)
urllib2.install_opener(opener)
try:
f = opener.open(request)
return_redirect_uri = f.url
except urllib2.HTTPError, e:
return_redirect_uri = e.geturl()
# 取到返回的code
code = return_redirect_uri.split('=')[1]
#得到token
token = client.request_access_token(code,REDIRECT_URL)
save_access_token(token)
def save_access_token(token):
#將access token保存到MongoDB數據庫
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
t={
"access_token":token['access_token'],
"expires_in":str(token['expires_in']),
"date":time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
}
db.token.insert(t,safe=True)
#Decorator 目的是當調用make_access_token()后再執行一次apply_access_token()
@retry(1)
def apply_access_token():
#從MongoDB讀取及設置access token
try:
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
if db.token.count()>0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
  
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
  
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv
  相關(guān)文章

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(1.微博三方登錄流程和獲取認證.2獲取流程)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 131 次瀏覽 ? 2021-10-29 17:21 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(1.微博三方登錄流程和獲取認證.2獲取流程)
  內容
  1. 微博三方登錄流程
  
  https://api.weibo.com/oauth2/authorize?
client_id=4122644977
&response_type=code
&state=study&
forcelogin=true&
redirect_uri=https%3A%2F%2Fstudy.163.com%2Fsns%2Fweibo%2FoAuthCallback.htm%3Foaut
hType%3Dlogin%26returnUrl%3DaHR0cHM6Ly9zdHVkeS4xNjMuY29tL3Byb3ZpZGVyLzQwMDAwMDAwM
DQ3ODAxMi9pbmRleC5odG0%2FZnJvbT1zdHVkeQ%3D%3D%26nrsstcw%3Dfalse%26nc%3Dtrue###
https://study.163.com/provider ... study
  1.1 從前端獲取認證碼1.2 獲取微博access_token1.3 獲取微博用戶(hù)基本信息并存入數據庫1.4 生成token to Vue2.第三方登錄與本地登錄的關(guān)聯(lián)(三種情況)2.1 情況一:沒(méi)有本地登錄,先登錄第三方
  這時(shí)候就相當于注冊了,只是拉取第三方信息注冊為本地用戶(hù),建立本地用戶(hù)和第三方用戶(hù)
  (Openid) 綁定關(guān)系
  2.2 情況二:本地未登錄,重新登錄第三方
  此時(shí)用戶(hù)已經(jīng)注冊了,獲取openid后可以直接找到對應的本地用戶(hù)
  2.3 案例三:本地登錄并綁定第三方
  這只需要將獲取到的openid綁定到本地用戶(hù)。
  3.Oauth 認證原理4.為什么要使用三方登錄 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(1.微博三方登錄流程和獲取認證.2獲取流程)
  內容
  1. 微博三方登錄流程
  
  https://api.weibo.com/oauth2/authorize?
client_id=4122644977
&response_type=code
&state=study&
forcelogin=true&
redirect_uri=https%3A%2F%2Fstudy.163.com%2Fsns%2Fweibo%2FoAuthCallback.htm%3Foaut
hType%3Dlogin%26returnUrl%3DaHR0cHM6Ly9zdHVkeS4xNjMuY29tL3Byb3ZpZGVyLzQwMDAwMDAwM
DQ3ODAxMi9pbmRleC5odG0%2FZnJvbT1zdHVkeQ%3D%3D%26nrsstcw%3Dfalse%26nc%3Dtrue###
https://study.163.com/provider ... study
  1.1 從前端獲取認證碼1.2 獲取微博access_token1.3 獲取微博用戶(hù)基本信息并存入數據庫1.4 生成token to Vue2.第三方登錄與本地登錄的關(guān)聯(lián)(三種情況)2.1 情況一:沒(méi)有本地登錄,先登錄第三方
  這時(shí)候就相當于注冊了,只是拉取第三方信息注冊為本地用戶(hù),建立本地用戶(hù)和第三方用戶(hù)
  (Openid) 綁定關(guān)系
  2.2 情況二:本地未登錄,重新登錄第三方
  此時(shí)用戶(hù)已經(jīng)注冊了,獲取openid后可以直接找到對應的本地用戶(hù)
  2.3 案例三:本地登錄并綁定第三方
  這只需要將獲取到的openid綁定到本地用戶(hù)。
  3.Oauth 認證原理4.為什么要使用三方登錄

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博直播新浪微博開(kāi)放平臺SDKforNet40+支持OAuth20)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 85 次瀏覽 ? 2021-10-28 10:11 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博直播新浪微博開(kāi)放平臺SDKforNet40+支持OAuth20)
  查看代碼 新浪微博開(kāi)放平臺使用的PHP SDK收錄DEMO SAESina App Engine,可以直接使用。SDK已內置,無(wú)需下載,使用前需要。微博開(kāi)放平臺基于微博的海量用戶(hù)和強大的問(wèn)答百科傳播能力,接入第三方合作伙伴服務(wù),為用戶(hù)提供建議。微博直播組件可以讓用戶(hù)在你的網(wǎng)站上實(shí)時(shí)討論熱點(diǎn)話(huà)題。用戶(hù)在此發(fā)布的微博將發(fā)布到微博模塊設置顯示標題欄顯示邊框顯示發(fā)布框設置主題多個(gè)主題。
  微博話(huà)題墻可以部署在任何支持HTML的網(wǎng)頁(yè)上,展示話(huà)題相關(guān)的微博公眾號和轉發(fā)熱榜,支持微博置頂。有基礎版和PK版兩個(gè)版本?;A版支持多主題的配置。支持的話(huà)。您的訪(fǎng)問(wèn)者可以點(diǎn)擊它,將您的內容分享到新浪微博,帶來(lái)更高回訪(fǎng)的關(guān)注按鈕,該按鈕可以部署在任何支持 ifarme 的網(wǎng)頁(yè)上。在這些網(wǎng)頁(yè)上點(diǎn)擊關(guān)注按鈕的用戶(hù)可以成為您的微博粉絲微博話(huà)題。我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我不需要給新手高手看這個(gè)經(jīng)驗了。
  
  
  歡迎測試新浪微博開(kāi)放平臺SDK for Net 40+支持OAuth20。新浪微博正式支持新版APISDK,并加入官方SDK下載列表。下載中提供了使用 Web 和 Winform 的示例。新浪科技訊 10月16日消息,由SSO授權的SSO微博開(kāi)放平臺近日正式上線(xiàn)。用戶(hù)只需登錄一次即可以普通微博用戶(hù)身份訪(fǎng)問(wèn)其他可信應用系統。關(guān)注新浪微博關(guān)注簡(jiǎn)體版設置簡(jiǎn)單,只需到新浪微博開(kāi)放平臺申請網(wǎng)站訪(fǎng)問(wèn)權注意簡(jiǎn)體版不提供技術(shù)支持,商業(yè)版不提供兼容簡(jiǎn)化版,
  微博直播
  新浪微博開(kāi)放平臺配備專(zhuān)業(yè)團隊,為開(kāi)發(fā)者提供360度全方位支持,服務(wù)涵蓋商業(yè)產(chǎn)品運營(yíng)技術(shù)四個(gè)層面。希望可以拓展更多優(yōu)質(zhì)的現場(chǎng)應用。官方數據顯示,新浪微博開(kāi)放平臺已經(jīng)吸引了數十萬(wàn)第三方開(kāi)發(fā)者,平臺上上傳了3500個(gè)應用程序,其中處于開(kāi)發(fā)或審核階段的應用程序有7萬(wàn)至8萬(wàn)個(gè)。在首屆互聯(lián)網(wǎng)公開(kāi)大會(huì )上,總經(jīng)理彭少斌表示,新浪微博將推出開(kāi)放游戲平臺,一年內不參與利潤分享。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博直播新浪微博開(kāi)放平臺SDKforNet40+支持OAuth20)
  查看代碼 新浪微博開(kāi)放平臺使用的PHP SDK收錄DEMO SAESina App Engine,可以直接使用。SDK已內置,無(wú)需下載,使用前需要。微博開(kāi)放平臺基于微博的海量用戶(hù)和強大的問(wèn)答百科傳播能力,接入第三方合作伙伴服務(wù),為用戶(hù)提供建議。微博直播組件可以讓用戶(hù)在你的網(wǎng)站上實(shí)時(shí)討論熱點(diǎn)話(huà)題。用戶(hù)在此發(fā)布的微博將發(fā)布到微博模塊設置顯示標題欄顯示邊框顯示發(fā)布框設置主題多個(gè)主題。
  微博話(huà)題墻可以部署在任何支持HTML的網(wǎng)頁(yè)上,展示話(huà)題相關(guān)的微博公眾號和轉發(fā)熱榜,支持微博置頂。有基礎版和PK版兩個(gè)版本?;A版支持多主題的配置。支持的話(huà)。您的訪(fǎng)問(wèn)者可以點(diǎn)擊它,將您的內容分享到新浪微博,帶來(lái)更高回訪(fǎng)的關(guān)注按鈕,該按鈕可以部署在任何支持 ifarme 的網(wǎng)頁(yè)上。在這些網(wǎng)頁(yè)上點(diǎn)擊關(guān)注按鈕的用戶(hù)可以成為您的微博粉絲微博話(huà)題。我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我不需要給新手高手看這個(gè)經(jīng)驗了。
  
  
  歡迎測試新浪微博開(kāi)放平臺SDK for Net 40+支持OAuth20。新浪微博正式支持新版APISDK,并加入官方SDK下載列表。下載中提供了使用 Web 和 Winform 的示例。新浪科技訊 10月16日消息,由SSO授權的SSO微博開(kāi)放平臺近日正式上線(xiàn)。用戶(hù)只需登錄一次即可以普通微博用戶(hù)身份訪(fǎng)問(wèn)其他可信應用系統。關(guān)注新浪微博關(guān)注簡(jiǎn)體版設置簡(jiǎn)單,只需到新浪微博開(kāi)放平臺申請網(wǎng)站訪(fǎng)問(wèn)權注意簡(jiǎn)體版不提供技術(shù)支持,商業(yè)版不提供兼容簡(jiǎn)化版,
  微博直播
  新浪微博開(kāi)放平臺配備專(zhuān)業(yè)團隊,為開(kāi)發(fā)者提供360度全方位支持,服務(wù)涵蓋商業(yè)產(chǎn)品運營(yíng)技術(shù)四個(gè)層面。希望可以拓展更多優(yōu)質(zhì)的現場(chǎng)應用。官方數據顯示,新浪微博開(kāi)放平臺已經(jīng)吸引了數十萬(wàn)第三方開(kāi)發(fā)者,平臺上上傳了3500個(gè)應用程序,其中處于開(kāi)發(fā)或審核階段的應用程序有7萬(wàn)至8萬(wàn)個(gè)。在首屆互聯(lián)網(wǎng)公開(kāi)大會(huì )上,總經(jīng)理彭少斌表示,新浪微博將推出開(kāi)放游戲平臺,一年內不參與利潤分享。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何對網(wǎng)頁(yè)分享的樣式進(jìn)行自定義呢?(一))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 129 次瀏覽 ? 2021-10-27 22:21 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何對網(wǎng)頁(yè)分享的樣式進(jìn)行自定義呢?(一))
  寫(xiě)作背景:
  分享內容是用戶(hù)的常用操作,也是產(chǎn)品中常用的功能之一。在網(wǎng)站的一個(gè)設計中,正好涉及到分享功能,于是搜集了網(wǎng)上各種前輩資料,整理了APP和網(wǎng)頁(yè)的分享功能(所有信息來(lái)源基本都是通過(guò)鏈接標注出來(lái)的)。本文僅對共享的一般實(shí)現原理進(jìn)行說(shuō)明,不涉及具體的功能流程和實(shí)現代碼。如有不當之處,希望大家多多指教。
  一、在網(wǎng)絡(luò )上分享
  1臺PC網(wǎng)絡(luò )共享
  1.1 分享到微信
  PC網(wǎng)頁(yè)一般會(huì )生成網(wǎng)頁(yè)二維碼,用戶(hù)可以使用手機微信掃描二維碼,在微信瀏覽器中打開(kāi);打開(kāi)后,在微信內置瀏覽器中使用微信自帶的分享功能進(jìn)行分享。
  
  分享PC網(wǎng)頁(yè)到微信
  -----如何自定義分享風(fēng)格?
  使用微信內置瀏覽器進(jìn)行二次分享時(shí),會(huì )遇到一個(gè)問(wèn)題,就是無(wú)法顯示網(wǎng)頁(yè)的縮略圖,只能顯示默認的占位圖。那么如何自定義共享樣式呢?以下為官方微信解決方案:
  接入微信的JS-SDK(開(kāi)發(fā)者通過(guò)JavaScript代碼在網(wǎng)頁(yè)上使用微信原生功能的工具包)。使用微信內置瀏覽器分享時(shí),可以自定義網(wǎng)頁(yè)分享風(fēng)格(標題和圖片風(fēng)格)。這樣可以保證用戶(hù)在微信生態(tài)中進(jìn)行二次分享時(shí)有更好的分享效果。
  你可以參考這個(gè)文章
  【解決方案】微信網(wǎng)頁(yè)鏈接分享定制-黑子的開(kāi)發(fā)筆記-CSDN博客
  
  上圖為使用safari分享網(wǎng)頁(yè)到微信的樣式,下圖為使用微信瀏覽器二次分享網(wǎng)頁(yè)的樣式
  1.2 分享到微博、QQ
  與微信不同,微博和QQ從網(wǎng)頁(yè)發(fā)展而來(lái),對網(wǎng)頁(yè)分享有很好的支持。通過(guò)代碼將分享按鈕嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  具體方法請參考平臺官方文檔/sharebutton
  
  官方微博說(shuō)明
  2 移動(dòng)網(wǎng)絡(luò )共享
  移動(dòng)端可以使用瀏覽器自帶的分享功能;當然,為了保持與PC的統一,頁(yè)面中也可以加入分享功能。
  2.1 分享到微信
  移動(dòng)端一般會(huì )生成一個(gè)網(wǎng)頁(yè)鏈接,讓用戶(hù)復制鏈接,然后手動(dòng)分享(粘貼鏈接)到微信。效果比較差
  
  百度百科的微信分享風(fēng)格
  2.2 分享到微博、QQ
  和PC端沒(méi)有區別:分享按鈕通過(guò)代碼嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  
  分享到微博
  二、在A(yíng)PP中分享
  1 使用系統級分享插件
  iOS 提供系統級分享擴展分享插件,幫助系統與應用、應用、應用分享內容。App開(kāi)發(fā)者只需在開(kāi)發(fā)代碼中添加原生分享插件,在系統注冊后,即可通過(guò)Extension與系統和其他App(也注冊使用的擴展)分享內容(輸出、接受)。
  使用原生分享插件的好處是分享操作不需要進(jìn)入收錄APP(接受內容的APP),也不需要在應用之間來(lái)回跳轉;容納更多應用,更開(kāi)放;用戶(hù)可以根據自己的習慣自定義分享面板 收錄APP。
  詳情請參考這個(gè)文章iOS Share Extension分享機制
  
  要在 safari 中將網(wǎng)頁(yè)分享到微信,您可以使用本機分享插件。無(wú)需喚醒微信客戶(hù)端即可實(shí)現分享,不影響用戶(hù)操作的主流。
  2 使用自定義分享插件
  國內應用更符合自己的業(yè)務(wù)目標和業(yè)務(wù)需求,使用自定義分享插件。這時(shí)候就需要遵循所收錄的APP(接受內容的APP)的規范。以分享到微信為例。一般來(lái)說(shuō),通過(guò)集成微信SDK,調用微信接口,調用微信分享表(分享面板)進(jìn)行分享,然后返回給自己的應用。
  
  左圖為荔枝APP自定義分享面板。分享H5到微信時(shí),需要喚醒微信客戶(hù)端,分享后返回荔枝APP。
  -------官方微信分享說(shuō)明------
  微信分享采集是指第三方應用允許用戶(hù)通過(guò)訪(fǎng)問(wèn)該功能,將應用中的文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序分享到微信好友會(huì )話(huà)、朋友圈或添加到微信采集。
  微信分享和采集功能已向所有開(kāi)發(fā)者開(kāi)放。開(kāi)發(fā)者在微信開(kāi)放平臺賬號下申請App并審核通過(guò)后,即可獲得微信分享和采集權限。
  微信分享采集目前支持文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序六種類(lèi)型(海外應用支持網(wǎng)頁(yè)和小程序類(lèi)型分享)。開(kāi)發(fā)者在A(yíng)pp中集成微信SDK后,即可調用接口實(shí)現。
  -------------------------------------
  詳情請參考微信官方文檔
  /cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN
  但是目前微信已經(jīng)取消了分享結果的返回,所以我們無(wú)法再知道用戶(hù)是真的完成了分享還是中途離開(kāi)了。. .
  
  微信官方說(shuō)明
  結論:
  分享功能雖然經(jīng)常使用,但很容易被用戶(hù)和產(chǎn)品經(jīng)理忽略。以上簡(jiǎn)單梳理了APP和網(wǎng)頁(yè)的分享實(shí)現,很多細節有待進(jìn)一步研究和補充~ 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何對網(wǎng)頁(yè)分享的樣式進(jìn)行自定義呢?(一))
  寫(xiě)作背景:
  分享內容是用戶(hù)的常用操作,也是產(chǎn)品中常用的功能之一。在網(wǎng)站的一個(gè)設計中,正好涉及到分享功能,于是搜集了網(wǎng)上各種前輩資料,整理了APP和網(wǎng)頁(yè)的分享功能(所有信息來(lái)源基本都是通過(guò)鏈接標注出來(lái)的)。本文僅對共享的一般實(shí)現原理進(jìn)行說(shuō)明,不涉及具體的功能流程和實(shí)現代碼。如有不當之處,希望大家多多指教。
  一、在網(wǎng)絡(luò )上分享
  1臺PC網(wǎng)絡(luò )共享
  1.1 分享到微信
  PC網(wǎng)頁(yè)一般會(huì )生成網(wǎng)頁(yè)二維碼,用戶(hù)可以使用手機微信掃描二維碼,在微信瀏覽器中打開(kāi);打開(kāi)后,在微信內置瀏覽器中使用微信自帶的分享功能進(jìn)行分享。
  
  分享PC網(wǎng)頁(yè)到微信
  -----如何自定義分享風(fēng)格?
  使用微信內置瀏覽器進(jìn)行二次分享時(shí),會(huì )遇到一個(gè)問(wèn)題,就是無(wú)法顯示網(wǎng)頁(yè)的縮略圖,只能顯示默認的占位圖。那么如何自定義共享樣式呢?以下為官方微信解決方案:
  接入微信的JS-SDK(開(kāi)發(fā)者通過(guò)JavaScript代碼在網(wǎng)頁(yè)上使用微信原生功能的工具包)。使用微信內置瀏覽器分享時(shí),可以自定義網(wǎng)頁(yè)分享風(fēng)格(標題和圖片風(fēng)格)。這樣可以保證用戶(hù)在微信生態(tài)中進(jìn)行二次分享時(shí)有更好的分享效果。
  你可以參考這個(gè)文章
  【解決方案】微信網(wǎng)頁(yè)鏈接分享定制-黑子的開(kāi)發(fā)筆記-CSDN博客
  
  上圖為使用safari分享網(wǎng)頁(yè)到微信的樣式,下圖為使用微信瀏覽器二次分享網(wǎng)頁(yè)的樣式
  1.2 分享到微博、QQ
  與微信不同,微博和QQ從網(wǎng)頁(yè)發(fā)展而來(lái),對網(wǎng)頁(yè)分享有很好的支持。通過(guò)代碼將分享按鈕嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  具體方法請參考平臺官方文檔/sharebutton
  
  官方微博說(shuō)明
  2 移動(dòng)網(wǎng)絡(luò )共享
  移動(dòng)端可以使用瀏覽器自帶的分享功能;當然,為了保持與PC的統一,頁(yè)面中也可以加入分享功能。
  2.1 分享到微信
  移動(dòng)端一般會(huì )生成一個(gè)網(wǎng)頁(yè)鏈接,讓用戶(hù)復制鏈接,然后手動(dòng)分享(粘貼鏈接)到微信。效果比較差
  
  百度百科的微信分享風(fēng)格
  2.2 分享到微博、QQ
  和PC端沒(méi)有區別:分享按鈕通過(guò)代碼嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  
  分享到微博
  二、在A(yíng)PP中分享
  1 使用系統級分享插件
  iOS 提供系統級分享擴展分享插件,幫助系統與應用、應用、應用分享內容。App開(kāi)發(fā)者只需在開(kāi)發(fā)代碼中添加原生分享插件,在系統注冊后,即可通過(guò)Extension與系統和其他App(也注冊使用的擴展)分享內容(輸出、接受)。
  使用原生分享插件的好處是分享操作不需要進(jìn)入收錄APP(接受內容的APP),也不需要在應用之間來(lái)回跳轉;容納更多應用,更開(kāi)放;用戶(hù)可以根據自己的習慣自定義分享面板 收錄APP。
  詳情請參考這個(gè)文章iOS Share Extension分享機制
  
  要在 safari 中將網(wǎng)頁(yè)分享到微信,您可以使用本機分享插件。無(wú)需喚醒微信客戶(hù)端即可實(shí)現分享,不影響用戶(hù)操作的主流。
  2 使用自定義分享插件
  國內應用更符合自己的業(yè)務(wù)目標和業(yè)務(wù)需求,使用自定義分享插件。這時(shí)候就需要遵循所收錄的APP(接受內容的APP)的規范。以分享到微信為例。一般來(lái)說(shuō),通過(guò)集成微信SDK,調用微信接口,調用微信分享表(分享面板)進(jìn)行分享,然后返回給自己的應用。
  
  左圖為荔枝APP自定義分享面板。分享H5到微信時(shí),需要喚醒微信客戶(hù)端,分享后返回荔枝APP。
  -------官方微信分享說(shuō)明------
  微信分享采集是指第三方應用允許用戶(hù)通過(guò)訪(fǎng)問(wèn)該功能,將應用中的文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序分享到微信好友會(huì )話(huà)、朋友圈或添加到微信采集。
  微信分享和采集功能已向所有開(kāi)發(fā)者開(kāi)放。開(kāi)發(fā)者在微信開(kāi)放平臺賬號下申請App并審核通過(guò)后,即可獲得微信分享和采集權限。
  微信分享采集目前支持文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序六種類(lèi)型(海外應用支持網(wǎng)頁(yè)和小程序類(lèi)型分享)。開(kāi)發(fā)者在A(yíng)pp中集成微信SDK后,即可調用接口實(shí)現。
  -------------------------------------
  詳情請參考微信官方文檔
  /cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN
  但是目前微信已經(jīng)取消了分享結果的返回,所以我們無(wú)法再知道用戶(hù)是真的完成了分享還是中途離開(kāi)了。. .
  
  微信官方說(shuō)明
  結論:
  分享功能雖然經(jīng)常使用,但很容易被用戶(hù)和產(chǎn)品經(jīng)理忽略。以上簡(jiǎn)單梳理了APP和網(wǎng)頁(yè)的分享實(shí)現,很多細節有待進(jìn)一步研究和補充~

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(靜態(tài)博客框架Hexo入門(mén),本文評論系統怎么做?)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 90 次瀏覽 ? 2021-10-27 22:20 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(靜態(tài)博客框架Hexo入門(mén),本文評論系統怎么做?)
  本文僅介紹如何基于github問(wèn)題實(shí)現第三方評論系統。對于 Hexo 的介紹,本文不打算贅述。如果有之前不了解Hexo的童鞋,可以看看之前的文章《Hexo介紹,一個(gè)靜態(tài)博客框架》,或者直接訪(fǎng)問(wèn)Hexo官網(wǎng)
  一、原因
  個(gè)人博客基于靜態(tài)博客系統(Hexo),沒(méi)有任何后端功能,如搜索和評論系統。不過(guò),如果想給靜態(tài)博客添加評論功能,也不是沒(méi)有可能。這時(shí)候就必須使用第三方評論系統。
  什么是第三方評論系統?博客或 cms 系統通常由兩部分組成:內容和評論。評論可以增加博主與用戶(hù)之間的互動(dòng),也是博主傳達思想和觀(guān)點(diǎn)的一對多交流平臺。所以除了社區平臺,評論也成為了一般博客和cms系統的必備功能。大型網(wǎng)站自己開(kāi)發(fā)評論系統和分享系統,一般中小網(wǎng)站自己開(kāi)發(fā)評論系統,成本高。而且垃圾評論和非法關(guān)鍵詞過(guò)濾比較困難,所以國內外都有第三方評論系統。以下是一些曾經(jīng)流行或現在流行的第三方評論系統。
  那么回到主題,市面上的第三方評論系統太多了,哪怕只有一兩個(gè)宕機了,選擇還是很多的。為什么要自己做一個(gè)?這不是造輪子嗎?其實(shí)剛開(kāi)始的時(shí)候,我話(huà)很多,心里也很高興。突然有一天我說(shuō)我掛了。沒(méi)有辦法。然后我選擇了另一個(gè),然后我將其更改為網(wǎng)易云。過(guò)了一會(huì )兒,網(wǎng)易云也死了。
  后來(lái)在網(wǎng)上搜了搜,發(fā)現居然有人用GitHub Issue做了一個(gè)評論系統。這無(wú)疑是一個(gè)非常好的想法,非常有創(chuàng )意。當然我也用過(guò),但總覺(jué)得有點(diǎn)難看,和自己博客的主題不符。只用了兩天,我就把它撤了。我打算自己做一個(gè)。就去做吧,程序員總喜歡造輪子。
  二、什么是 GitHub 問(wèn)題
  如果你經(jīng)常訪(fǎng)問(wèn)GitHub的童鞋,你應該知道這個(gè)功能。有人了解GitHub的問(wèn)題功能,就像TODO列表一樣。你可以把下一步想要完成的所有工作,比如功能添加、bug修復等,都寫(xiě)到一個(gè)issue里面,放在上面。它可以用作提醒或統一管理。此外,每個(gè)提交都可以有選擇地與一個(gè)問(wèn)題相關(guān)聯(lián)。例如,通過(guò)在消息中添加 #n,它可以與第 n 個(gè)問(wèn)題相關(guān)聯(lián)。詳情請參考知乎。其他人對“github問(wèn)題”做了什么?”答案。而這個(gè)博客的評論數據存儲issues倉庫地址是,倉庫里沒(méi)有托管代碼??傊?,如果我想用github Issues做一個(gè)評論系統,我實(shí)際上是把數據存儲在github issues .
  三、評論系統實(shí)現
  準備工作
  
  應用名稱(chēng):您的站點(diǎn)名稱(chēng);
  主頁(yè)網(wǎng)址:您的網(wǎng)站主頁(yè)鏈接;
  應用描述:站點(diǎn)描述;
  授權回調地址:GitHub授權成功后的返回地址
  創(chuàng )建成功后,會(huì )生成一個(gè)Client ID和一個(gè)Client Secret。
  GitHub 提供了很多方便第三方開(kāi)發(fā)的API。當然,添加、刪除、修改、檢查github問(wèn)題的API也在其中。有了這些API,你就可以執行各種技巧,比如我們現在要寫(xiě)的評論系統。此外,也有人懷疑我們是否應該“濫用”這些 API。不過(guò)我個(gè)人覺(jué)得GitHub既然提供了這些API,也就意味著(zhù)把這些權限開(kāi)放給大家,大家不要害怕“濫用”。那么,需要哪些API來(lái)滿(mǎn)足我們目前的需求,下面就讓我一一列舉,以我的賬號為例,jangdelong是Github名稱(chēng),blog_comments是倉庫名稱(chēng)。
  GET:獲取所有問(wèn)題信息
  GET:獲取問(wèn)題下的信息(11 是問(wèn)題編號)
  GET: comments 獲取問(wèn)題下的評論
  GET:獲取評論ID 111下的所有反應(反應包括[+1]、不喜歡[-1]、喜歡[心]等字段)
  POST:創(chuàng )建一個(gè)問(wèn)題
  POST:在問(wèn)題編號 11 下創(chuàng )建評論
  POST:在 ID 為 111 的評論下創(chuàng )建一個(gè)反應(例如心臟)
  POST:markdown語(yǔ)法解析接口
  整體設計
  流程圖:
   |--> 顯示已登錄
|--> 已登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
| |--> 其他
| |--> 評論操作 --> 成功/失敗 |
開(kāi)始 --> GitHub 授權登錄 ? --> | |--> 結束
| |--> 顯示未登錄 |
|--> 未登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
|--> 其他
|--> 評論操作 --> 提示未登錄狀態(tài)
  效果圖:
  
  因此,我們可以將評論系統分為列表(list)、評論框(box)、頂部登錄狀態(tài)欄(signbar)等部分。View部分的代碼組織為:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Renders = {
// 列表模塊
list: {
tpl: ...,
...
},
// 評論框模塊
box: {
tpl: ...,
...
},
// 頂部登錄狀態(tài)欄
signBar: {
tpl: ...,
...
},
... // 其他模塊視圖
};
...
})(JELON);
  將視圖部分的代碼整理好后,我們根據GitHub提供的各種API將其封裝在Requests中,整理如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Requests = {
// 根據 label 獲取 issue 編號
getIssueNumberByLabel: function () { ... },
// 創(chuàng )建 issue
createIssue: function () { ... },
// 根據 issue 編號獲取評論列表
getCommentListByIssueNumber: function () { ... },
// 根據評論 ID 獲取 reactions (即點(diǎn)贊數據)
getReactionsByCommentId: function () { ... },
// markdown 解析
markdown: function () { ... },
// 通過(guò) code 獲取 access_token
getAccessToken: function () { ... },
// 利用 access_token 去獲取 GitHub 用戶(hù)信息
getUserInfo: function () { ... },
// 創(chuàng )建評論
createComment: function () { ... },
// 創(chuàng )建 reactions (點(diǎn)贊)
createReaction: function () { ... }
};
...
})(JELON);
  下一步是封裝事件操作。我們將其封裝到 Actions 中。代碼組織如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Actions = {
// 初始加載,如列表、登錄狀態(tài)等
init: function () { ... },
// 登出操作
signOut: function () { ... },
// 列表翻頁(yè)跳轉
pageJump: function () { ... },
// 編輯預覽
editPreviewSwitch: function () { ... },
// 提交評論操作
postComment: function () { ... },
// 點(diǎn)贊操作
like: function () { ... }
};
...
})(JELON);
  程序入口:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Comment = function (options) {
JL.options = options || {};
$('comments').innerHTML = [
this.Renders.signBar.tpl,
this.Renders.box.tpl,
this.Renders.tips,
this.Renders.list.tpl
].join('');
JL.Actions.init();
};
...
})(JELON);
  登錄流程
  GitHub授權登錄是必不可少的功能,登錄后才能發(fā)表評論。 前面說(shuō)過(guò),GitHub授權登錄遵循OAuth2.0標準。下面是OAuth2.0的操作流程,讓我們更好的理解。
  
  那么,GitHub 授權登錄是如何按照這個(gè)標準進(jìn)行的呢?我們來(lái)簡(jiǎn)單介紹一下。如果想更詳細的了解,也可以訪(fǎng)問(wèn)GitHub官方文檔。
  用戶(hù)發(fā)起重定向請求授權服務(wù)器換取code
  `GET http://github.com/login/oauth/authorize`
  拿到code后,用client_id、client_secret和code兌換token_access。(上面的準備工作中提到了client_id和client_secret)
  `POST https://github.com/login/oauth/access_token`
  獲取token_access后,我們可以使用token_access獲取登錄用戶(hù)的信息
  `GET https://api.github.com/user`
  經(jīng)過(guò)以上3步,GitHub授權登錄就完成了。
  四、如何使用評論系統
  介紹評論系統相關(guān)的css和js。引入相關(guān)樣式和腳本后,在頁(yè)面中添加以下代碼:
  
JELON.Comment({
container: 'comments', // 評論框容器id或對象,留空是默認為 comments
label: '' || '', // 文章標簽
owner: '', // GitHub application 創(chuàng )建者
repo: '', // issue 所在倉庫名
clientId: '', // GitHub application client_id
clientSecret: '' // GitHub application client_secret
});
  由于這個(gè)評論系統要集成到個(gè)人主題中,所以應該配合hexo-theme-xups使用。hexo-theme-xups 的主題鏈接是最新的主題(帶GitHub登錄評論功能),后續會(huì )更新上來(lái),當然以后會(huì )持續更新優(yōu)化,歡迎多多star。五、遇到的問(wèn)題
  主要遇到三個(gè)問(wèn)題,一個(gè)是標簽權限的創(chuàng )建,一個(gè)是跨域問(wèn)題,一個(gè)是GitHub授權登錄兼容性問(wèn)題。
  創(chuàng )建標簽權限問(wèn)題(目前未解決)。標簽是文章和issue之間的鏈接,因為我們需要使用標簽來(lái)查詢(xún)issue號,以便后續的流程可以繼續?,F在遇到的問(wèn)題是,對于新的文章,只有自己賬號(GitHub Application)的創(chuàng )建者才能創(chuàng )建帶有標簽的issue。參考GitHub界面(POST /repos/:owner/:repo/issues)文檔,上面說(shuō)了
  > Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
  跨域問(wèn)題(暫時(shí)解決)。主要目的是交換 token_access POST 的代碼。這個(gè)接口是跨域的。臨時(shí)解決辦法是
  使用:///login/oauth/access_token 進(jìn)行轉發(fā)??矗?。GitHub授權登錄兼容性問(wèn)題(暫未解決)。經(jīng)過(guò)簡(jiǎn)單的測試,發(fā)現PC端的兼容性問(wèn)題主要是一些舊版本的瀏覽器,包括一些舊版本的谷歌瀏覽器(版本號55.x.xxxx.xx);而移動(dòng)端主要是UC瀏覽器,無(wú)法實(shí)現GitHub授權登錄。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(靜態(tài)博客框架Hexo入門(mén),本文評論系統怎么做?)
  本文僅介紹如何基于github問(wèn)題實(shí)現第三方評論系統。對于 Hexo 的介紹,本文不打算贅述。如果有之前不了解Hexo的童鞋,可以看看之前的文章《Hexo介紹,一個(gè)靜態(tài)博客框架》,或者直接訪(fǎng)問(wèn)Hexo官網(wǎng)
  一、原因
  個(gè)人博客基于靜態(tài)博客系統(Hexo),沒(méi)有任何后端功能,如搜索和評論系統。不過(guò),如果想給靜態(tài)博客添加評論功能,也不是沒(méi)有可能。這時(shí)候就必須使用第三方評論系統。
  什么是第三方評論系統?博客或 cms 系統通常由兩部分組成:內容和評論。評論可以增加博主與用戶(hù)之間的互動(dòng),也是博主傳達思想和觀(guān)點(diǎn)的一對多交流平臺。所以除了社區平臺,評論也成為了一般博客和cms系統的必備功能。大型網(wǎng)站自己開(kāi)發(fā)評論系統和分享系統,一般中小網(wǎng)站自己開(kāi)發(fā)評論系統,成本高。而且垃圾評論和非法關(guān)鍵詞過(guò)濾比較困難,所以國內外都有第三方評論系統。以下是一些曾經(jīng)流行或現在流行的第三方評論系統。
  那么回到主題,市面上的第三方評論系統太多了,哪怕只有一兩個(gè)宕機了,選擇還是很多的。為什么要自己做一個(gè)?這不是造輪子嗎?其實(shí)剛開(kāi)始的時(shí)候,我話(huà)很多,心里也很高興。突然有一天我說(shuō)我掛了。沒(méi)有辦法。然后我選擇了另一個(gè),然后我將其更改為網(wǎng)易云。過(guò)了一會(huì )兒,網(wǎng)易云也死了。
  后來(lái)在網(wǎng)上搜了搜,發(fā)現居然有人用GitHub Issue做了一個(gè)評論系統。這無(wú)疑是一個(gè)非常好的想法,非常有創(chuàng )意。當然我也用過(guò),但總覺(jué)得有點(diǎn)難看,和自己博客的主題不符。只用了兩天,我就把它撤了。我打算自己做一個(gè)。就去做吧,程序員總喜歡造輪子。
  二、什么是 GitHub 問(wèn)題
  如果你經(jīng)常訪(fǎng)問(wèn)GitHub的童鞋,你應該知道這個(gè)功能。有人了解GitHub的問(wèn)題功能,就像TODO列表一樣。你可以把下一步想要完成的所有工作,比如功能添加、bug修復等,都寫(xiě)到一個(gè)issue里面,放在上面。它可以用作提醒或統一管理。此外,每個(gè)提交都可以有選擇地與一個(gè)問(wèn)題相關(guān)聯(lián)。例如,通過(guò)在消息中添加 #n,它可以與第 n 個(gè)問(wèn)題相關(guān)聯(lián)。詳情請參考知乎。其他人對“github問(wèn)題”做了什么?”答案。而這個(gè)博客的評論數據存儲issues倉庫地址是,倉庫里沒(méi)有托管代碼??傊?,如果我想用github Issues做一個(gè)評論系統,我實(shí)際上是把數據存儲在github issues .
  三、評論系統實(shí)現
  準備工作
  
  應用名稱(chēng):您的站點(diǎn)名稱(chēng);
  主頁(yè)網(wǎng)址:您的網(wǎng)站主頁(yè)鏈接;
  應用描述:站點(diǎn)描述;
  授權回調地址:GitHub授權成功后的返回地址
  創(chuàng )建成功后,會(huì )生成一個(gè)Client ID和一個(gè)Client Secret。
  GitHub 提供了很多方便第三方開(kāi)發(fā)的API。當然,添加、刪除、修改、檢查github問(wèn)題的API也在其中。有了這些API,你就可以執行各種技巧,比如我們現在要寫(xiě)的評論系統。此外,也有人懷疑我們是否應該“濫用”這些 API。不過(guò)我個(gè)人覺(jué)得GitHub既然提供了這些API,也就意味著(zhù)把這些權限開(kāi)放給大家,大家不要害怕“濫用”。那么,需要哪些API來(lái)滿(mǎn)足我們目前的需求,下面就讓我一一列舉,以我的賬號為例,jangdelong是Github名稱(chēng),blog_comments是倉庫名稱(chēng)。
  GET:獲取所有問(wèn)題信息
  GET:獲取問(wèn)題下的信息(11 是問(wèn)題編號)
  GET: comments 獲取問(wèn)題下的評論
  GET:獲取評論ID 111下的所有反應(反應包括[+1]、不喜歡[-1]、喜歡[心]等字段)
  POST:創(chuàng )建一個(gè)問(wèn)題
  POST:在問(wèn)題編號 11 下創(chuàng )建評論
  POST:在 ID 為 111 的評論下創(chuàng )建一個(gè)反應(例如心臟)
  POST:markdown語(yǔ)法解析接口
  整體設計
  流程圖:
   |--> 顯示已登錄
|--> 已登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
| |--> 其他
| |--> 評論操作 --> 成功/失敗 |
開(kāi)始 --> GitHub 授權登錄 ? --> | |--> 結束
| |--> 顯示未登錄 |
|--> 未登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
|--> 其他
|--> 評論操作 --> 提示未登錄狀態(tài)
  效果圖:
  
  因此,我們可以將評論系統分為列表(list)、評論框(box)、頂部登錄狀態(tài)欄(signbar)等部分。View部分的代碼組織為:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Renders = {
// 列表模塊
list: {
tpl: ...,
...
},
// 評論框模塊
box: {
tpl: ...,
...
},
// 頂部登錄狀態(tài)欄
signBar: {
tpl: ...,
...
},
... // 其他模塊視圖
};
...
})(JELON);
  將視圖部分的代碼整理好后,我們根據GitHub提供的各種API將其封裝在Requests中,整理如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Requests = {
// 根據 label 獲取 issue 編號
getIssueNumberByLabel: function () { ... },
// 創(chuàng )建 issue
createIssue: function () { ... },
// 根據 issue 編號獲取評論列表
getCommentListByIssueNumber: function () { ... },
// 根據評論 ID 獲取 reactions (即點(diǎn)贊數據)
getReactionsByCommentId: function () { ... },
// markdown 解析
markdown: function () { ... },
// 通過(guò) code 獲取 access_token
getAccessToken: function () { ... },
// 利用 access_token 去獲取 GitHub 用戶(hù)信息
getUserInfo: function () { ... },
// 創(chuàng )建評論
createComment: function () { ... },
// 創(chuàng )建 reactions (點(diǎn)贊)
createReaction: function () { ... }
};
...
})(JELON);
  下一步是封裝事件操作。我們將其封裝到 Actions 中。代碼組織如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Actions = {
// 初始加載,如列表、登錄狀態(tài)等
init: function () { ... },
// 登出操作
signOut: function () { ... },
// 列表翻頁(yè)跳轉
pageJump: function () { ... },
// 編輯預覽
editPreviewSwitch: function () { ... },
// 提交評論操作
postComment: function () { ... },
// 點(diǎn)贊操作
like: function () { ... }
};
...
})(JELON);
  程序入口:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Comment = function (options) {
JL.options = options || {};
$('comments').innerHTML = [
this.Renders.signBar.tpl,
this.Renders.box.tpl,
this.Renders.tips,
this.Renders.list.tpl
].join('');
JL.Actions.init();
};
...
})(JELON);
  登錄流程
  GitHub授權登錄是必不可少的功能,登錄后才能發(fā)表評論。 前面說(shuō)過(guò),GitHub授權登錄遵循OAuth2.0標準。下面是OAuth2.0的操作流程,讓我們更好的理解。
  
  那么,GitHub 授權登錄是如何按照這個(gè)標準進(jìn)行的呢?我們來(lái)簡(jiǎn)單介紹一下。如果想更詳細的了解,也可以訪(fǎng)問(wèn)GitHub官方文檔。
  用戶(hù)發(fā)起重定向請求授權服務(wù)器換取code
  `GET http://github.com/login/oauth/authorize`
  拿到code后,用client_id、client_secret和code兌換token_access。(上面的準備工作中提到了client_id和client_secret)
  `POST https://github.com/login/oauth/access_token`
  獲取token_access后,我們可以使用token_access獲取登錄用戶(hù)的信息
  `GET https://api.github.com/user`
  經(jīng)過(guò)以上3步,GitHub授權登錄就完成了。
  四、如何使用評論系統
  介紹評論系統相關(guān)的css和js。引入相關(guān)樣式和腳本后,在頁(yè)面中添加以下代碼:
  
JELON.Comment({
container: 'comments', // 評論框容器id或對象,留空是默認為 comments
label: '' || '', // 文章標簽
owner: '', // GitHub application 創(chuàng )建者
repo: '', // issue 所在倉庫名
clientId: '', // GitHub application client_id
clientSecret: '' // GitHub application client_secret
});
  由于這個(gè)評論系統要集成到個(gè)人主題中,所以應該配合hexo-theme-xups使用。hexo-theme-xups 的主題鏈接是最新的主題(帶GitHub登錄評論功能),后續會(huì )更新上來(lái),當然以后會(huì )持續更新優(yōu)化,歡迎多多star。五、遇到的問(wèn)題
  主要遇到三個(gè)問(wèn)題,一個(gè)是標簽權限的創(chuàng )建,一個(gè)是跨域問(wèn)題,一個(gè)是GitHub授權登錄兼容性問(wèn)題。
  創(chuàng )建標簽權限問(wèn)題(目前未解決)。標簽是文章和issue之間的鏈接,因為我們需要使用標簽來(lái)查詢(xún)issue號,以便后續的流程可以繼續?,F在遇到的問(wèn)題是,對于新的文章,只有自己賬號(GitHub Application)的創(chuàng )建者才能創(chuàng )建帶有標簽的issue。參考GitHub界面(POST /repos/:owner/:repo/issues)文檔,上面說(shuō)了
  > Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
  跨域問(wèn)題(暫時(shí)解決)。主要目的是交換 token_access POST 的代碼。這個(gè)接口是跨域的。臨時(shí)解決辦法是
  使用:///login/oauth/access_token 進(jìn)行轉發(fā)??矗?。GitHub授權登錄兼容性問(wèn)題(暫未解決)。經(jīng)過(guò)簡(jiǎn)單的測試,發(fā)現PC端的兼容性問(wèn)題主要是一些舊版本的瀏覽器,包括一些舊版本的谷歌瀏覽器(版本號55.x.xxxx.xx);而移動(dòng)端主要是UC瀏覽器,無(wú)法實(shí)現GitHub授權登錄。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博api開(kāi)發(fā)內容一個(gè)整理和說(shuō)明,應用開(kāi)發(fā))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 81 次瀏覽 ? 2021-10-27 15:03 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博api開(kāi)發(fā)內容一個(gè)整理和說(shuō)明,應用開(kāi)發(fā))
  現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博API開(kāi)發(fā)資源比較大。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺。URL為: 收錄新浪微博開(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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是oauth授權。oauth授權的流程在新浪微博開(kāi)放平臺上做了清晰完整的介紹。我們你可以看看。這里我從實(shí)例開(kāi)發(fā)的角度進(jìn)行介紹和講解。
  1.首先獲取未授權的請求令牌
  復制代碼代碼如下:
  $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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼獲取未授權的請求令牌值,該值將存儲在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_session['keys'] = $keys;
  aurl = $o->getauthorizeurl( $keys['oauth_token'] ,false,'');
  獲取到未授權請求token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置會(huì )話(huà)密鑰的值,在下面獲取的授權訪(fǎng)問(wèn)令牌中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的訪(fǎng)問(wèn)令牌的值是無(wú)法獲取的。必須記住這一點(diǎn)。
  3.最終得到用戶(hù)授權的access token
  復制代碼代碼如下:
  $o = 新的 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ù)授權的訪(fǎng)問(wèn)令牌。一共有兩個(gè)值,存放在 $last_key 數組變量中。我們也可以看到最后兩個(gè)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種api函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; error:'.$msg['error']);
  返回假;
  }
  打印_r($msg);
  通常,我們在獲取到用戶(hù)授權的訪(fǎng)問(wèn)令牌的值后,將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化weiboclient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用json格式數據有先天優(yōu)勢,如果返回json格式數據,直接用php函數 json_decode() 可以轉換為 PHP 常用的數組格式。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博api開(kāi)發(fā)內容一個(gè)整理和說(shuō)明,應用開(kāi)發(fā))
  現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博API開(kāi)發(fā)資源比較大。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺。URL為: 收錄新浪微博開(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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是oauth授權。oauth授權的流程在新浪微博開(kāi)放平臺上做了清晰完整的介紹。我們你可以看看。這里我從實(shí)例開(kāi)發(fā)的角度進(jìn)行介紹和講解。
  1.首先獲取未授權的請求令牌
  復制代碼代碼如下:
  $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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼獲取未授權的請求令牌值,該值將存儲在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_session['keys'] = $keys;
  aurl = $o->getauthorizeurl( $keys['oauth_token'] ,false,'');
  獲取到未授權請求token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置會(huì )話(huà)密鑰的值,在下面獲取的授權訪(fǎng)問(wèn)令牌中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的訪(fǎng)問(wèn)令牌的值是無(wú)法獲取的。必須記住這一點(diǎn)。
  3.最終得到用戶(hù)授權的access token
  復制代碼代碼如下:
  $o = 新的 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ù)授權的訪(fǎng)問(wèn)令牌。一共有兩個(gè)值,存放在 $last_key 數組變量中。我們也可以看到最后兩個(gè)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種api函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; error:'.$msg['error']);
  返回假;
  }
  打印_r($msg);
  通常,我們在獲取到用戶(hù)授權的訪(fǎng)問(wèn)令牌的值后,將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化weiboclient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用json格式數據有先天優(yōu)勢,如果返回json格式數據,直接用php函數 json_decode() 可以轉換為 PHP 常用的數組格式。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API研究研究實(shí)現發(fā)布微博功能的授權認證)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2021-10-24 00:08 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API研究研究實(shí)現發(fā)布微博功能的授權認證)
  本文文章主要介紹Java使用新浪微博API通過(guò)賬號密碼登錄微博的例子。一般來(lái)說(shuō),第三方app使用OAuth授權鑒權,然后跳轉。賬號方式更自由,有需要的朋友可以參考
  今天發(fā)表了一篇關(guān)于新浪微博API的研究,現在已經(jīng)實(shí)現了發(fā)布微博的功能,包括帶圖片的微博。為安全起見(jiàn),新浪微博API不提供微博賬號密碼登錄功能。相反,它使用 OAuth 授權。用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)新浪網(wǎng)站進(jìn)行登錄,登錄成功后,瀏覽器將key和secret返回給程序。
  主文件:
  一個(gè)登錄按鈕、一個(gè)輸入框和一個(gè)發(fā)布按鈕
  因為要接收瀏覽器返回的數據,所以AndroidManifest.xml在注冊Activity的時(shí)候必須添加一個(gè)Intent-Filter
  意圖過(guò)濾器必須分兩部分編寫(xiě)。如果寫(xiě)在一起,就不能啟動(dòng)。
  為簡(jiǎn)單起見(jiàn),直接復制新浪示例中的OAuthConstant類(lèi):
   package weibo4android.androidexamples; import weibo4android.Weibo; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; public class OAuthConstant { private static Weibo weibo=null; private static OAuthConstant instance=null; private RequestToken requestToken; private AccessToken accessToken; private String token; private String tokenSecret; private OAuthConstant(){}; public static synchronized OAuthConstant getInstance(){ if(instance==null) instance= new OAuthConstant(); return instance; } public Weibo getWeibo(){ if(weibo==null) weibo= new Weibo(); return weibo; } public AccessToken getAccessToken() { return accessToken; } public void setAccessToken(AccessToken accessToken) { this.accessToken = accessToken; this.token=accessToken.getToken(); this.tokenSecret=accessToken.getTokenSecret(); } public RequestToken getRequestToken() { return requestToken; } public void setRequestToken(RequestToken requestToken) { this.requestToken = requestToken; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getTokenSecret() { return tokenSecret; } public void setTokenSecret(String tokenSecret) { this.tokenSecret = tokenSecret; } }
  接下來(lái)是最關(guān)鍵的主程序:
   package com.pocketdigi.weibo; import java.io.File; import weibo4android.Weibo; import weibo4android.WeiboException; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Main extends Activity { /** Called when the activity is first created. */ String key = "", secret = ""; Button login,send; EditText status; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.setProperty("weibo4j.oauth.consumerKey", "3997936609"); System.setProperty("weibo4j.oauth.consumerSecret", "8bc9e3bfd6ae8e3b2b8bda9079918950"); //設置在新浪應用開(kāi)放平臺申請的應用的key和secret login=(Button)findViewById(R.id.login); send=(Button)findViewById(R.id.send); status=(EditText)findViewById(R.id.status); login.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub login(); //登錄 }}); send.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String text=String.valueOf(status.getText()); Weibo weibo = new Weibo(); weibo.setToken(key,secret); try { //weibo.updateStatus(text); //只發(fā)文字 File f=new File("/sdcard/wallpaper/129567208597069400.jpg"); weibo.uploadStatus(text,f ); //發(fā)文字+圖片,這里需要導入commons-httpclient-3.0.1.jar,自己網(wǎng)上下 //在實(shí)際項目上,最好放Thread里,因為按下去的時(shí)候按鈕會(huì )卡 } catch (WeiboException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); //啟動(dòng)時(shí)執行檢測是否來(lái)自網(wǎng)頁(yè)登錄返回 //如果是,獲取key和secret //否則讀取SharedPreferences //若得不到key和secret,直接跳轉登錄 Uri uri = this.getIntent().getData(); if (uri != null) { //如果是瀏覽器返回 try { RequestToken requestToken = OAuthConstant.getInstance() .getRequestToken(); AccessToken accessToken = requestToken.getAccessToken(uri .getQueryParameter("oauth_verifier")); OAuthConstant.getInstance().setAccessToken(accessToken); // 保存 Editor sharedata = getSharedPreferences("WeiBo", 0).edit(); sharedata.putString("key", accessToken.getToken()); sharedata.putString("secret", accessToken.getTokenSecret()); sharedata.commit(); key = accessToken.getToken(); secret = accessToken.getTokenSecret(); } catch (WeiboException e) { e.printStackTrace(); } } else { //如果是用戶(hù)自己?jiǎn)?dòng) SharedPreferences settings = getSharedPreferences("WeiBo", 0); key = settings.getString("key", ""); secret = settings.getString("secret", ""); } if (key.equals("") || secret.equals("")) { Toast.makeText(this, "尚未登錄", Toast.LENGTH_LONG).show(); login(); //跳轉到瀏覽器登錄 } } public void login(){ Weibo weibo = OAuthConstant.getInstance().getWeibo(); RequestToken requestToken; try { requestToken =weibo.getOAuthRequestToken("sina://weibo"); //為了避免與同類(lèi)應用沖突,還是自己改下URI吧 Uri uri2 = Uri.parse(requestToken.getAuthenticationURL()+ "&from=xweibo"); OAuthConstant.getInstance().setRequestToken(requestToken); startActivity(new Intent(Intent.ACTION_VIEW, uri2)); } catch (WeiboException e) { e.printStackTrace(); } } }
  發(fā)送圖片需要導入commons-httpclient-3.0.1.jar,否則會(huì )報啟動(dòng)錯誤,當然是weibo4android-1.2.@ >0.jar 是不可接受的 Less
  以上是Java使用新浪微博API通過(guò)賬號密碼登錄微博實(shí)例的詳細內容。更多詳情請關(guān)注html中文網(wǎng)站其他相關(guān)文章! 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API研究研究實(shí)現發(fā)布微博功能的授權認證)
  本文文章主要介紹Java使用新浪微博API通過(guò)賬號密碼登錄微博的例子。一般來(lái)說(shuō),第三方app使用OAuth授權鑒權,然后跳轉。賬號方式更自由,有需要的朋友可以參考
  今天發(fā)表了一篇關(guān)于新浪微博API的研究,現在已經(jīng)實(shí)現了發(fā)布微博的功能,包括帶圖片的微博。為安全起見(jiàn),新浪微博API不提供微博賬號密碼登錄功能。相反,它使用 OAuth 授權。用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)新浪網(wǎng)站進(jìn)行登錄,登錄成功后,瀏覽器將key和secret返回給程序。
  主文件:
  一個(gè)登錄按鈕、一個(gè)輸入框和一個(gè)發(fā)布按鈕
  因為要接收瀏覽器返回的數據,所以AndroidManifest.xml在注冊Activity的時(shí)候必須添加一個(gè)Intent-Filter
  意圖過(guò)濾器必須分兩部分編寫(xiě)。如果寫(xiě)在一起,就不能啟動(dòng)。
  為簡(jiǎn)單起見(jiàn),直接復制新浪示例中的OAuthConstant類(lèi):
   package weibo4android.androidexamples; import weibo4android.Weibo; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; public class OAuthConstant { private static Weibo weibo=null; private static OAuthConstant instance=null; private RequestToken requestToken; private AccessToken accessToken; private String token; private String tokenSecret; private OAuthConstant(){}; public static synchronized OAuthConstant getInstance(){ if(instance==null) instance= new OAuthConstant(); return instance; } public Weibo getWeibo(){ if(weibo==null) weibo= new Weibo(); return weibo; } public AccessToken getAccessToken() { return accessToken; } public void setAccessToken(AccessToken accessToken) { this.accessToken = accessToken; this.token=accessToken.getToken(); this.tokenSecret=accessToken.getTokenSecret(); } public RequestToken getRequestToken() { return requestToken; } public void setRequestToken(RequestToken requestToken) { this.requestToken = requestToken; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getTokenSecret() { return tokenSecret; } public void setTokenSecret(String tokenSecret) { this.tokenSecret = tokenSecret; } }
  接下來(lái)是最關(guān)鍵的主程序:
   package com.pocketdigi.weibo; import java.io.File; import weibo4android.Weibo; import weibo4android.WeiboException; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Main extends Activity { /** Called when the activity is first created. */ String key = "", secret = ""; Button login,send; EditText status; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.setProperty("weibo4j.oauth.consumerKey", "3997936609"); System.setProperty("weibo4j.oauth.consumerSecret", "8bc9e3bfd6ae8e3b2b8bda9079918950"); //設置在新浪應用開(kāi)放平臺申請的應用的key和secret login=(Button)findViewById(R.id.login); send=(Button)findViewById(R.id.send); status=(EditText)findViewById(R.id.status); login.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub login(); //登錄 }}); send.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String text=String.valueOf(status.getText()); Weibo weibo = new Weibo(); weibo.setToken(key,secret); try { //weibo.updateStatus(text); //只發(fā)文字 File f=new File("/sdcard/wallpaper/129567208597069400.jpg"); weibo.uploadStatus(text,f ); //發(fā)文字+圖片,這里需要導入commons-httpclient-3.0.1.jar,自己網(wǎng)上下 //在實(shí)際項目上,最好放Thread里,因為按下去的時(shí)候按鈕會(huì )卡 } catch (WeiboException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); //啟動(dòng)時(shí)執行檢測是否來(lái)自網(wǎng)頁(yè)登錄返回 //如果是,獲取key和secret //否則讀取SharedPreferences //若得不到key和secret,直接跳轉登錄 Uri uri = this.getIntent().getData(); if (uri != null) { //如果是瀏覽器返回 try { RequestToken requestToken = OAuthConstant.getInstance() .getRequestToken(); AccessToken accessToken = requestToken.getAccessToken(uri .getQueryParameter("oauth_verifier")); OAuthConstant.getInstance().setAccessToken(accessToken); // 保存 Editor sharedata = getSharedPreferences("WeiBo", 0).edit(); sharedata.putString("key", accessToken.getToken()); sharedata.putString("secret", accessToken.getTokenSecret()); sharedata.commit(); key = accessToken.getToken(); secret = accessToken.getTokenSecret(); } catch (WeiboException e) { e.printStackTrace(); } } else { //如果是用戶(hù)自己?jiǎn)?dòng) SharedPreferences settings = getSharedPreferences("WeiBo", 0); key = settings.getString("key", ""); secret = settings.getString("secret", ""); } if (key.equals("") || secret.equals("")) { Toast.makeText(this, "尚未登錄", Toast.LENGTH_LONG).show(); login(); //跳轉到瀏覽器登錄 } } public void login(){ Weibo weibo = OAuthConstant.getInstance().getWeibo(); RequestToken requestToken; try { requestToken =weibo.getOAuthRequestToken("sina://weibo"); //為了避免與同類(lèi)應用沖突,還是自己改下URI吧 Uri uri2 = Uri.parse(requestToken.getAuthenticationURL()+ "&from=xweibo"); OAuthConstant.getInstance().setRequestToken(requestToken); startActivity(new Intent(Intent.ACTION_VIEW, uri2)); } catch (WeiboException e) { e.printStackTrace(); } } }
  發(fā)送圖片需要導入commons-httpclient-3.0.1.jar,否則會(huì )報啟動(dòng)錯誤,當然是weibo4android-1.2.@ >0.jar 是不可接受的 Less
  以上是Java使用新浪微博API通過(guò)賬號密碼登錄微博實(shí)例的詳細內容。更多詳情請關(guān)注html中文網(wǎng)站其他相關(guān)文章!

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 更好預置多個(gè)云服務(wù)系統權限管理專(zhuān)家的工作流程(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 134 次瀏覽 ? 2021-10-23 20:13 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
更好預置多個(gè)云服務(wù)系統權限管理專(zhuān)家的工作流程(組圖))
  
  統一身份認證服務(wù)(Identity and Access Management,簡(jiǎn)稱(chēng)IAM)為您打造專(zhuān)屬的權限管理專(zhuān)家。幫助您為每個(gè)員工創(chuàng )建獨立的用戶(hù)名和密碼,避免密碼共享帶來(lái)的安全風(fēng)險。同時(shí),合理配置這些資源的使用權限,滿(mǎn)足您對用戶(hù)權限的安全管控要求。為了幫助您更好地管理權限,IAM預設了多個(gè)云服務(wù)系統權限。如果系統權限不能滿(mǎn)足您的要求,您還可以創(chuàng )建自定義策略來(lái)確保精細的權限管理。華為云權限管理,我們專(zhuān)業(yè)!
  下面通過(guò)一個(gè)簡(jiǎn)單的例子,詳細向您展示如何在權限管理專(zhuān)家的幫助下更好地管理和控制華為云資源。
  A公司的賬戶(hù)擁有多個(gè)華為云資源,圖1所示的各個(gè)職能團隊需要被授予相應的資源使用權限。在IAM中,為每個(gè)團隊設置權限,以實(shí)現團隊之間的權限分離,員工各司其職。
  圖1 A公司人員結構
  
  表1 權限分布
  
  權限管理流程
  了解了公司架構和各職能團隊需要配置的權限后,就該讓權限管理專(zhuān)家上臺了。下面以愛(ài)麗絲作為安全管理團隊的一員,配置“華北-北京4”區域的Anti-DDoS和AAD服務(wù)的所有執行權限為例,給大家展示一個(gè)權限管理專(zhuān)家的工作流程.
  圖1 權限管理流程圖
  
  第一步:創(chuàng )建用戶(hù)組并授權
  據了解,該公司有五個(gè)職能團隊,管理組(admin)由IAM預設。管理組中的用戶(hù)可以幫助該帳戶(hù)創(chuàng )建其他用戶(hù)組。以下是我們的管理員幫助創(chuàng )建用戶(hù)組并對其進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)組”>頁(yè)面右上角的“創(chuàng )建用戶(hù)組”,輸入用戶(hù)組名稱(chēng)為“安全管理團隊”和描述(可選) ),點(diǎn)擊“確定”完成用戶(hù)組的創(chuàng )建。
  
  在上圖所示的用戶(hù)組列表中,點(diǎn)擊用戶(hù)組名稱(chēng)右側的“權限配置”,進(jìn)入用戶(hù)組詳情頁(yè)面。單擊“權限管理”選項卡下的“配置權限”。
  
  在用戶(hù)組授權頁(yè)面,選擇權限范圍“區域項目>cn-north-4[華北-北京四]”,選擇需要的權限“防DDoS管理員”和“CAD管理員”,點(diǎn)擊“確定”完成用戶(hù)組授權。
  
  用戶(hù)組創(chuàng )建并授權后,您可以在用戶(hù)組列表中查看創(chuàng )建的用戶(hù)組,在用戶(hù)組詳情頁(yè)面查看授予用戶(hù)組的權限。
  第 2 步:創(chuàng )建 IAM 用戶(hù)并加入用戶(hù)組
  創(chuàng )建用戶(hù)組后,管理員需要為每個(gè)員工創(chuàng )建一個(gè)IAM用戶(hù),并將其添加到相應的用戶(hù)組中。將用戶(hù)添加到用戶(hù)組,該用戶(hù)將擁有該用戶(hù)組的權限。這個(gè)過(guò)程是對用戶(hù)進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)”>頁(yè)面右上角的“創(chuàng )建用戶(hù)”。
  
  輸入用戶(hù)名“Alice”、郵箱地址、手機號碼(可選)、描述(可選),選擇“華為云管理控制臺訪(fǎng)問(wèn)”>“首次登錄時(shí)設置”,開(kāi)啟登錄保護,點(diǎn)擊“下一步”。
  
  闡明:
  如果開(kāi)發(fā)團隊的Keith和Kelly需要通過(guò)API調用訪(fǎng)問(wèn)華為云,訪(fǎng)問(wèn)方式可以是“程序化訪(fǎng)問(wèn)”。想了解更多請戳→
  3. 選擇“安全管理團隊”,點(diǎn)擊“創(chuàng )建用戶(hù)”,完成IAM用戶(hù)授權。
  第 3 步:IAM 用戶(hù)登錄
  完成以上步驟后,Alice就擁有了自己的華為云專(zhuān)屬通行證,只允許她訪(fǎng)問(wèn)“華北-北京4”區域的Anti-DDoS和AAD服務(wù)。最后,請愛(ài)麗絲登錄華為云,開(kāi)啟華為云的精彩之旅!
  在華為云登錄頁(yè)面,點(diǎn)擊登錄下的“IAM用戶(hù)登錄”。在“IAM用戶(hù)登錄”頁(yè)面,輸入賬號名、用戶(hù)名/郵箱和密碼,點(diǎn)擊“登錄”登錄華為云。
  
  切換區域為【華北-北京4】,Alice可以訪(fǎng)問(wèn)DDoS服務(wù)(Anti-DDoS)、DDoS高防服務(wù)(AAD),為項目安全保駕護航。
  
  至此,正確的管理專(zhuān)家能否“離開(kāi)”?不,他會(huì )一直堅守崗位!
  當您需要更改用戶(hù)權限時(shí),您可以通過(guò)用戶(hù)組添加/刪除用戶(hù)。
  當您需要更改用戶(hù)組權限時(shí),您可以這樣做。
  當需要取消用戶(hù)組的權限時(shí),可以通過(guò)刪除該用戶(hù)組的權限來(lái)實(shí)現。
  解決方案多于問(wèn)題
  如果管理員在IAM控制臺為IAM用戶(hù)設置了權限,IAM用戶(hù)登錄后發(fā)現權限沒(méi)有生效,請繼續往下看。
  可能原因一:管理員授予的權限有依賴(lài)角色,且依賴(lài)角色沒(méi)有同步設置,導致權限不生效。角色的依賴(lài)請參考:系統權限。
  解決方案:重新授權依賴(lài)角色。方法請參考:依賴(lài)角色授權方法。
  可能原因2:管理員授權用戶(hù)組后忘記將IAM用戶(hù)添加到用戶(hù)組。
  解決方案:將 IAM 用戶(hù)添加到用戶(hù)組。請參考方法:將用戶(hù)添加到用戶(hù)組。
  可能原因3:區域級業(yè)務(wù),未在相應區域進(jìn)行授權。
  解決方法:在對IAM所在的用戶(hù)組進(jìn)行授權時(shí),選擇對應的區域。請參考方法:創(chuàng )建用戶(hù)組并授權。
  可能原因4:IAM用戶(hù)登錄控制臺后沒(méi)有切換到授權區域。
  解決方法:請切換到授權區域。請參閱:。
  歡迎觀(guān)看更多IAM資訊 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
更好預置多個(gè)云服務(wù)系統權限管理專(zhuān)家的工作流程(組圖))
  
  統一身份認證服務(wù)(Identity and Access Management,簡(jiǎn)稱(chēng)IAM)為您打造專(zhuān)屬的權限管理專(zhuān)家。幫助您為每個(gè)員工創(chuàng )建獨立的用戶(hù)名和密碼,避免密碼共享帶來(lái)的安全風(fēng)險。同時(shí),合理配置這些資源的使用權限,滿(mǎn)足您對用戶(hù)權限的安全管控要求。為了幫助您更好地管理權限,IAM預設了多個(gè)云服務(wù)系統權限。如果系統權限不能滿(mǎn)足您的要求,您還可以創(chuàng )建自定義策略來(lái)確保精細的權限管理。華為云權限管理,我們專(zhuān)業(yè)!
  下面通過(guò)一個(gè)簡(jiǎn)單的例子,詳細向您展示如何在權限管理專(zhuān)家的幫助下更好地管理和控制華為云資源。
  A公司的賬戶(hù)擁有多個(gè)華為云資源,圖1所示的各個(gè)職能團隊需要被授予相應的資源使用權限。在IAM中,為每個(gè)團隊設置權限,以實(shí)現團隊之間的權限分離,員工各司其職。
  圖1 A公司人員結構
  
  表1 權限分布
  
  權限管理流程
  了解了公司架構和各職能團隊需要配置的權限后,就該讓權限管理專(zhuān)家上臺了。下面以愛(ài)麗絲作為安全管理團隊的一員,配置“華北-北京4”區域的Anti-DDoS和AAD服務(wù)的所有執行權限為例,給大家展示一個(gè)權限管理專(zhuān)家的工作流程.
  圖1 權限管理流程圖
  
  第一步:創(chuàng )建用戶(hù)組并授權
  據了解,該公司有五個(gè)職能團隊,管理組(admin)由IAM預設。管理組中的用戶(hù)可以幫助該帳戶(hù)創(chuàng )建其他用戶(hù)組。以下是我們的管理員幫助創(chuàng )建用戶(hù)組并對其進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)組”>頁(yè)面右上角的“創(chuàng )建用戶(hù)組”,輸入用戶(hù)組名稱(chēng)為“安全管理團隊”和描述(可選) ),點(diǎn)擊“確定”完成用戶(hù)組的創(chuàng )建。
  
  在上圖所示的用戶(hù)組列表中,點(diǎn)擊用戶(hù)組名稱(chēng)右側的“權限配置”,進(jìn)入用戶(hù)組詳情頁(yè)面。單擊“權限管理”選項卡下的“配置權限”。
  
  在用戶(hù)組授權頁(yè)面,選擇權限范圍“區域項目>cn-north-4[華北-北京四]”,選擇需要的權限“防DDoS管理員”和“CAD管理員”,點(diǎn)擊“確定”完成用戶(hù)組授權。
  
  用戶(hù)組創(chuàng )建并授權后,您可以在用戶(hù)組列表中查看創(chuàng )建的用戶(hù)組,在用戶(hù)組詳情頁(yè)面查看授予用戶(hù)組的權限。
  第 2 步:創(chuàng )建 IAM 用戶(hù)并加入用戶(hù)組
  創(chuàng )建用戶(hù)組后,管理員需要為每個(gè)員工創(chuàng )建一個(gè)IAM用戶(hù),并將其添加到相應的用戶(hù)組中。將用戶(hù)添加到用戶(hù)組,該用戶(hù)將擁有該用戶(hù)組的權限。這個(gè)過(guò)程是對用戶(hù)進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)”>頁(yè)面右上角的“創(chuàng )建用戶(hù)”。
  
  輸入用戶(hù)名“Alice”、郵箱地址、手機號碼(可選)、描述(可選),選擇“華為云管理控制臺訪(fǎng)問(wèn)”>“首次登錄時(shí)設置”,開(kāi)啟登錄保護,點(diǎn)擊“下一步”。
  
  闡明:
  如果開(kāi)發(fā)團隊的Keith和Kelly需要通過(guò)API調用訪(fǎng)問(wèn)華為云,訪(fǎng)問(wèn)方式可以是“程序化訪(fǎng)問(wèn)”。想了解更多請戳→
  3. 選擇“安全管理團隊”,點(diǎn)擊“創(chuàng )建用戶(hù)”,完成IAM用戶(hù)授權。
  第 3 步:IAM 用戶(hù)登錄
  完成以上步驟后,Alice就擁有了自己的華為云專(zhuān)屬通行證,只允許她訪(fǎng)問(wèn)“華北-北京4”區域的Anti-DDoS和AAD服務(wù)。最后,請愛(ài)麗絲登錄華為云,開(kāi)啟華為云的精彩之旅!
  在華為云登錄頁(yè)面,點(diǎn)擊登錄下的“IAM用戶(hù)登錄”。在“IAM用戶(hù)登錄”頁(yè)面,輸入賬號名、用戶(hù)名/郵箱和密碼,點(diǎn)擊“登錄”登錄華為云。
  
  切換區域為【華北-北京4】,Alice可以訪(fǎng)問(wèn)DDoS服務(wù)(Anti-DDoS)、DDoS高防服務(wù)(AAD),為項目安全保駕護航。
  
  至此,正確的管理專(zhuān)家能否“離開(kāi)”?不,他會(huì )一直堅守崗位!
  當您需要更改用戶(hù)權限時(shí),您可以通過(guò)用戶(hù)組添加/刪除用戶(hù)。
  當您需要更改用戶(hù)組權限時(shí),您可以這樣做。
  當需要取消用戶(hù)組的權限時(shí),可以通過(guò)刪除該用戶(hù)組的權限來(lái)實(shí)現。
  解決方案多于問(wèn)題
  如果管理員在IAM控制臺為IAM用戶(hù)設置了權限,IAM用戶(hù)登錄后發(fā)現權限沒(méi)有生效,請繼續往下看。
  可能原因一:管理員授予的權限有依賴(lài)角色,且依賴(lài)角色沒(méi)有同步設置,導致權限不生效。角色的依賴(lài)請參考:系統權限。
  解決方案:重新授權依賴(lài)角色。方法請參考:依賴(lài)角色授權方法。
  可能原因2:管理員授權用戶(hù)組后忘記將IAM用戶(hù)添加到用戶(hù)組。
  解決方案:將 IAM 用戶(hù)添加到用戶(hù)組。請參考方法:將用戶(hù)添加到用戶(hù)組。
  可能原因3:區域級業(yè)務(wù),未在相應區域進(jìn)行授權。
  解決方法:在對IAM所在的用戶(hù)組進(jìn)行授權時(shí),選擇對應的區域。請參考方法:創(chuàng )建用戶(hù)組并授權。
  可能原因4:IAM用戶(hù)登錄控制臺后沒(méi)有切換到授權區域。
  解決方法:請切換到授權區域。請參閱:。
  歡迎觀(guān)看更多IAM資訊

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(本地測試階段如何申請后面講述WAP網(wǎng)站提供兩種驗證方式)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2021-10-23 02:11 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(本地測試階段如何申請后面講述WAP網(wǎng)站提供兩種驗證方式)
  新浪微博網(wǎng)站接入應用教程(含本地測試)織夢(mèng)無(wú)憂(yōu)站長(cháng)隨筆2020-09-21 13:59
  總結:進(jìn)入新浪微博開(kāi)放平臺,用賬號登錄。點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。這里
  進(jìn)入新浪微博開(kāi)放平臺,使用賬號登錄。
  
  點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。
  
  左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。
  
  申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。
  
  這里有兩點(diǎn)需要注意:
  1 以這種方式申請appKey,前提是你的網(wǎng)站必須使用過(guò)域名并且在互聯(lián)網(wǎng)上運行。如果您處于本地測試階段,此方法將不起作用。如何申請本地測試階段將在后面介紹。
  2網(wǎng)站提供了兩種驗證方式來(lái)驗證您是否擁有網(wǎng)站的管理員權限。請注意這兩種方法之間的區別。
  沒(méi)有自動(dòng)重定向的網(wǎng)站
  
  具有自動(dòng)重定向功能的網(wǎng)站或 WAP 站點(diǎn)
  
  將驗證碼添加到您的網(wǎng)站首頁(yè)后,點(diǎn)擊下方的【驗證并添加】按鈕。按照提示操作。
  注意:如果此步驟不成功,請參考新浪提供的提示信息仔細分析。如果實(shí)在找不到問(wèn)題,不妨試試以上兩種驗證方式。
  從這一步開(kāi)始,如何在本地調試階段應用。
  因為沒(méi)有本地調試的域名,直接訪(fǎng)問(wèn)網(wǎng)站是不行的。需要使用web應用來(lái)實(shí)現本地調試。
  很多人在申請的時(shí)候都找不到web應用的選項。這是一個(gè)解釋?zhuān)?br />  ?。?)開(kāi)放平臺首頁(yè),直接點(diǎn)擊【微連接】菜單。
  
  注意不要在【微連接】菜單下點(diǎn)擊網(wǎng)站上的應用,點(diǎn)擊網(wǎng)站上的應用后的頁(yè)面不會(huì )是同一個(gè)頁(yè)面。
  
  進(jìn)入頁(yè)面如下圖:
  
 ?。?)這時(shí)候點(diǎn)擊【創(chuàng )建應用】按鈕,會(huì )彈出各種應用類(lèi)型,然后會(huì )出現web應用。
  
  點(diǎn)擊【W(wǎng)eb應用】進(jìn)入應用頁(yè)面。
  
  這里的申請地址可以填寫(xiě)IP地址,方便我們測試。
  
  創(chuàng )建 Web 應用程序后,還沒(méi)有結束。點(diǎn)擊【管理中心】進(jìn)入我們剛剛申請的應用。點(diǎn)擊左側申請信息中的基本信息。
  
  點(diǎn)擊右側編輯,注意下圖中高亮的地方。
  
  申請地址是指微博發(fā)布時(shí)顯示的來(lái)源地址(不通過(guò)將無(wú)法正確顯示)。
  安全域名是必須的,因為新浪微博的Api需要通過(guò)域名訪(fǎng)問(wèn),否則會(huì )報錯。所以下一步是關(guān)鍵。
  設置本地環(huán)境域名映射。
 ?。?)在操作系統hosts文件中添加本地域名映射。
  
 ?。?)在上述安全域名中配置本地自定義域名。
  點(diǎn)擊【高級信息】進(jìn)行設置。
  
  授權設置是調用api成功后返回的頁(yè)面。
  安全設置指定應用程序部署的 IP 地址。
  至此,新浪微博appKey申請成功,可以開(kāi)始自己的本地調試路徑了。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(本地測試階段如何申請后面講述WAP網(wǎng)站提供兩種驗證方式)
  新浪微博網(wǎng)站接入應用教程(含本地測試)織夢(mèng)無(wú)憂(yōu)站長(cháng)隨筆2020-09-21 13:59
  總結:進(jìn)入新浪微博開(kāi)放平臺,用賬號登錄。點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。這里
  進(jìn)入新浪微博開(kāi)放平臺,使用賬號登錄。
  
  點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。
  
  左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。
  
  申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。
  
  這里有兩點(diǎn)需要注意:
  1 以這種方式申請appKey,前提是你的網(wǎng)站必須使用過(guò)域名并且在互聯(lián)網(wǎng)上運行。如果您處于本地測試階段,此方法將不起作用。如何申請本地測試階段將在后面介紹。
  2網(wǎng)站提供了兩種驗證方式來(lái)驗證您是否擁有網(wǎng)站的管理員權限。請注意這兩種方法之間的區別。
  沒(méi)有自動(dòng)重定向的網(wǎng)站
  
  具有自動(dòng)重定向功能的網(wǎng)站或 WAP 站點(diǎn)
  
  將驗證碼添加到您的網(wǎng)站首頁(yè)后,點(diǎn)擊下方的【驗證并添加】按鈕。按照提示操作。
  注意:如果此步驟不成功,請參考新浪提供的提示信息仔細分析。如果實(shí)在找不到問(wèn)題,不妨試試以上兩種驗證方式。
  從這一步開(kāi)始,如何在本地調試階段應用。
  因為沒(méi)有本地調試的域名,直接訪(fǎng)問(wèn)網(wǎng)站是不行的。需要使用web應用來(lái)實(shí)現本地調試。
  很多人在申請的時(shí)候都找不到web應用的選項。這是一個(gè)解釋?zhuān)?br />  ?。?)開(kāi)放平臺首頁(yè),直接點(diǎn)擊【微連接】菜單。
  
  注意不要在【微連接】菜單下點(diǎn)擊網(wǎng)站上的應用,點(diǎn)擊網(wǎng)站上的應用后的頁(yè)面不會(huì )是同一個(gè)頁(yè)面。
  
  進(jìn)入頁(yè)面如下圖:
  
 ?。?)這時(shí)候點(diǎn)擊【創(chuàng )建應用】按鈕,會(huì )彈出各種應用類(lèi)型,然后會(huì )出現web應用。
  
  點(diǎn)擊【W(wǎng)eb應用】進(jìn)入應用頁(yè)面。
  
  這里的申請地址可以填寫(xiě)IP地址,方便我們測試。
  
  創(chuàng )建 Web 應用程序后,還沒(méi)有結束。點(diǎn)擊【管理中心】進(jìn)入我們剛剛申請的應用。點(diǎn)擊左側申請信息中的基本信息。
  
  點(diǎn)擊右側編輯,注意下圖中高亮的地方。
  
  申請地址是指微博發(fā)布時(shí)顯示的來(lái)源地址(不通過(guò)將無(wú)法正確顯示)。
  安全域名是必須的,因為新浪微博的Api需要通過(guò)域名訪(fǎng)問(wèn),否則會(huì )報錯。所以下一步是關(guān)鍵。
  設置本地環(huán)境域名映射。
 ?。?)在操作系統hosts文件中添加本地域名映射。
  
 ?。?)在上述安全域名中配置本地自定義域名。
  點(diǎn)擊【高級信息】進(jìn)行設置。
  
  授權設置是調用api成功后返回的頁(yè)面。
  安全設置指定應用程序部署的 IP 地址。
  至此,新浪微博appKey申請成功,可以開(kāi)始自己的本地調試路徑了。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 利用PHP進(jìn)行新浪微博API開(kāi)發(fā)的內容進(jìn)行一個(gè)整理和說(shuō)明)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 79 次瀏覽 ? 2021-10-23 02:08 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
利用PHP進(jìn)行新浪微博API開(kāi)發(fā)的內容進(jìn)行一個(gè)整理和說(shuō)明)
  新浪微博API開(kāi)發(fā)用戶(hù)授權介紹(PHP基礎)
  更新時(shí)間:2011-09-25 22:52:37 作者:
  在開(kāi)發(fā)和學(xué)習的過(guò)程中,感覺(jué)雖然不是太難,但還是有一些問(wèn)題需要大家注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的用PHP開(kāi)發(fā)了新浪微博API。整理和說(shuō)明內容
  現在玩微博的人越來(lái)越多,微博上的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是OAuth授權。OAuth授權流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。我們你可以看看。這里我將從示例開(kāi)發(fā)的角度進(jìn)行介紹和說(shuō)明。
  1.首先獲取未授權的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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )保存在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_SESSION['keys'] = $keys;
  aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false,'');
  獲取到未授權Request Token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置session key的值,下面獲取的授權Access Token中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的Access Token的值是無(wú)法獲取的。必須記住這一點(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è)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; Error:'.$msg['error'] );
  返回假;
  }
  打印_r($msg);
  通常我們拿到用戶(hù)授權的訪(fǎng)問(wèn)令牌值后,我們將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)相對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用Json格式的數據有先天優(yōu)勢,如果返回Json格式的數據,使用php 函數 json_decode() 可以直接轉換成 PHP 常用的數組格式。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
利用PHP進(jìn)行新浪微博API開(kāi)發(fā)的內容進(jìn)行一個(gè)整理和說(shuō)明)
  新浪微博API開(kāi)發(fā)用戶(hù)授權介紹(PHP基礎)
  更新時(shí)間:2011-09-25 22:52:37 作者:
  在開(kāi)發(fā)和學(xué)習的過(guò)程中,感覺(jué)雖然不是太難,但還是有一些問(wèn)題需要大家注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的用PHP開(kāi)發(fā)了新浪微博API。整理和說(shuō)明內容
  現在玩微博的人越來(lái)越多,微博上的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是OAuth授權。OAuth授權流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。我們你可以看看。這里我將從示例開(kāi)發(fā)的角度進(jìn)行介紹和說(shuō)明。
  1.首先獲取未授權的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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )保存在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_SESSION['keys'] = $keys;
  aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false,'');
  獲取到未授權Request Token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置session key的值,下面獲取的授權Access Token中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的Access Token的值是無(wú)法獲取的。必須記住這一點(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è)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; Error:'.$msg['error'] );
  返回假;
  }
  打印_r($msg);
  通常我們拿到用戶(hù)授權的訪(fǎng)問(wèn)令牌值后,我們將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)相對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用Json格式的數據有先天優(yōu)勢,如果返回Json格式的數據,使用php 函數 json_decode() 可以直接轉換成 PHP 常用的數組格式。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(注冊新浪weibo允許第三方以應用的方式發(fā)布微博(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 99 次瀏覽 ? 2021-10-22 15:10 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(注冊新浪weibo允許第三方以應用的方式發(fā)布微博(組圖))
  前言
  前不久萌生了學(xué)python的念頭,于是為了練手的目的為微博做了這樣一個(gè)小工具。
  登記
  新浪微博允許第三方以應用的形式發(fā)布微博,所以我們首先要做的就是通過(guò)新浪微博開(kāi)放平臺注冊一個(gè)應用:
  
  weibo_open
  打開(kāi)上述平臺的頁(yè)面,用微博賬號登錄,然后點(diǎn)擊立即訪(fǎng)問(wèn)開(kāi)始注冊自己的應用,按照提示操作即可。以下是我自己創(chuàng )建的應用程序,名為:
  
  應用程序
  在您個(gè)人應用的應用信息-基本信息-基本應用信息中找到您的App Key和App Secret。并在高級信息中設置自己的授權回調頁(yè)面(所謂授權回調頁(yè)面是指個(gè)人應用通過(guò)微博賬號授權后的跳轉頁(yè)面,設置沒(méi)有問(wèn)題,這里我設置為個(gè)人微博主頁(yè))。
  授權獲取代碼
  看了新浪的SDK,很多人可能會(huì )選擇對應的python SDK。實(shí)際上,這是不必要的。界面變得更加復雜。我們在這里不使用他的界面。
  通常,通過(guò)微博界面發(fā)送微博的第三方應用需要用戶(hù)授權。我想你以前也做過(guò)同樣的事情,那么哪個(gè)授權頁(yè)面是?
  def get_auth_url(client_id, redirect_uri):
return '%s%s?%s' % ('https://api.weibo.com/oauth2/', 'authorize',
_encode_params(client_id=client_id,
response_type='code',
redirect_uri=redirect_uri))
  client_id是你的app_key,redirect_uri是上一步填寫(xiě)的授權回調頁(yè)面地址,復制生成的鏈接到瀏覽器打開(kāi),輸入你的微博賬號進(jìn)行授權。
  
  授權
  授權成功后,瀏覽器會(huì )跳轉到我們設置的授權回調頁(yè)面。在瀏覽器地址欄找到code字段,你就會(huì )得到授權碼。
  獲取令牌
  接下來(lái),我們需要通過(guò)代碼獲取token。這個(gè)token是我們在微博上發(fā)帖的憑證:
  def get_access_token(app_key, app_secret, redirect_url):
#通過(guò)url_auth輸入weibo賬號進(jìn)行登錄
#從登錄成功后的回調url獲得code
url_auth = get_auth_url(app_key, redirect_url)
print('[get_access_token]' + url_auth)
code = input('Input code:')
url_get_token = "https://api.weibo.com/oauth2/access_token"
payload = {
"client_id":app_key,
"client_secret":app_secret,
"grant_type":"authorization_code",
"code":code,
"redirect_uri":redirect_url
}

#獲取access_token
res = requests.post(url_get_token, data=payload)
resj = json.loads(res.text)
return resj['access_token']
  令牌只需要獲取一次,令牌可以一直重復使用。有效期好像是5年。
  微博安全域名
  新浪微博要求通過(guò)應用界面發(fā)送的每一條微博內容都必須收錄一個(gè)安全的域名字段。您需要在應用信息-基本信息-應用基本信息中配置安全域名。我設置了
  調用接口
  這里的安全域名依然使用自己的微博主頁(yè),包括:
  def share_weibo(text, img):
access_token = '你的token'
#安全域名,sina限制文本內容必須有此字段
safe_domain = 'https://weibo.com/5296864682/profile?topnav=1&wvr=6'
url_share = 'https://api.weibo.com/2/statuses/share.json'

payload = {
'access_token':access_token,
'status':text + ' ' + safe_domain
}
if img :
files = {
"pic":img
}
res = requests.post(url_share, data = payload, files = files)
else :
res = requests.post(url_share, data = payload)
return res
  測試
  編寫(xiě)測試代碼:
  if __name__ == '__main__':
f = open(r"./share.jpeg", "rb")
text = input('Input text:')
res = share_weibo(text, f)
f.close()
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:hello sky
  成功發(fā)布圖片微博:
  
  你好天空
  如果你想發(fā)布視頻,很遺憾,新浪沒(méi)有提供相應的界面。我們只能通過(guò)在文本中收錄指向現有視頻的鏈接來(lái)實(shí)現類(lèi)似的效果。例如,要發(fā)布此視頻:
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:http://t.cn/Ail9eamb%3Fm%3D439 ... 64682
  成功發(fā)送視頻的微博:
  
  視頻
  你可以在我的微博上看到剛剛發(fā)送的視頻。
  結束語(yǔ)
  還有一些接口比如注釋?zhuān)蠹铱梢宰约簻y試一下,在接口管理里面可以看到相應的介紹。
  附上源代碼: 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(注冊新浪weibo允許第三方以應用的方式發(fā)布微博(組圖))
  前言
  前不久萌生了學(xué)python的念頭,于是為了練手的目的為微博做了這樣一個(gè)小工具。
  登記
  新浪微博允許第三方以應用的形式發(fā)布微博,所以我們首先要做的就是通過(guò)新浪微博開(kāi)放平臺注冊一個(gè)應用:
  
  weibo_open
  打開(kāi)上述平臺的頁(yè)面,用微博賬號登錄,然后點(diǎn)擊立即訪(fǎng)問(wèn)開(kāi)始注冊自己的應用,按照提示操作即可。以下是我自己創(chuàng )建的應用程序,名為:
  
  應用程序
  在您個(gè)人應用的應用信息-基本信息-基本應用信息中找到您的App Key和App Secret。并在高級信息中設置自己的授權回調頁(yè)面(所謂授權回調頁(yè)面是指個(gè)人應用通過(guò)微博賬號授權后的跳轉頁(yè)面,設置沒(méi)有問(wèn)題,這里我設置為個(gè)人微博主頁(yè))。
  授權獲取代碼
  看了新浪的SDK,很多人可能會(huì )選擇對應的python SDK。實(shí)際上,這是不必要的。界面變得更加復雜。我們在這里不使用他的界面。
  通常,通過(guò)微博界面發(fā)送微博的第三方應用需要用戶(hù)授權。我想你以前也做過(guò)同樣的事情,那么哪個(gè)授權頁(yè)面是?
  def get_auth_url(client_id, redirect_uri):
return '%s%s?%s' % ('https://api.weibo.com/oauth2/', 'authorize',
_encode_params(client_id=client_id,
response_type='code',
redirect_uri=redirect_uri))
  client_id是你的app_key,redirect_uri是上一步填寫(xiě)的授權回調頁(yè)面地址,復制生成的鏈接到瀏覽器打開(kāi),輸入你的微博賬號進(jìn)行授權。
  
  授權
  授權成功后,瀏覽器會(huì )跳轉到我們設置的授權回調頁(yè)面。在瀏覽器地址欄找到code字段,你就會(huì )得到授權碼。
  獲取令牌
  接下來(lái),我們需要通過(guò)代碼獲取token。這個(gè)token是我們在微博上發(fā)帖的憑證:
  def get_access_token(app_key, app_secret, redirect_url):
#通過(guò)url_auth輸入weibo賬號進(jìn)行登錄
#從登錄成功后的回調url獲得code
url_auth = get_auth_url(app_key, redirect_url)
print('[get_access_token]' + url_auth)
code = input('Input code:')
url_get_token = "https://api.weibo.com/oauth2/access_token"
payload = {
"client_id":app_key,
"client_secret":app_secret,
"grant_type":"authorization_code",
"code":code,
"redirect_uri":redirect_url
}

#獲取access_token
res = requests.post(url_get_token, data=payload)
resj = json.loads(res.text)
return resj['access_token']
  令牌只需要獲取一次,令牌可以一直重復使用。有效期好像是5年。
  微博安全域名
  新浪微博要求通過(guò)應用界面發(fā)送的每一條微博內容都必須收錄一個(gè)安全的域名字段。您需要在應用信息-基本信息-應用基本信息中配置安全域名。我設置了
  調用接口
  這里的安全域名依然使用自己的微博主頁(yè),包括:
  def share_weibo(text, img):
access_token = '你的token'
#安全域名,sina限制文本內容必須有此字段
safe_domain = 'https://weibo.com/5296864682/profile?topnav=1&wvr=6'
url_share = 'https://api.weibo.com/2/statuses/share.json'

payload = {
'access_token':access_token,
'status':text + ' ' + safe_domain
}
if img :
files = {
"pic":img
}
res = requests.post(url_share, data = payload, files = files)
else :
res = requests.post(url_share, data = payload)
return res
  測試
  編寫(xiě)測試代碼:
  if __name__ == '__main__':
f = open(r"./share.jpeg", "rb")
text = input('Input text:')
res = share_weibo(text, f)
f.close()
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:hello sky
  成功發(fā)布圖片微博:
  
  你好天空
  如果你想發(fā)布視頻,很遺憾,新浪沒(méi)有提供相應的界面。我們只能通過(guò)在文本中收錄指向現有視頻的鏈接來(lái)實(shí)現類(lèi)似的效果。例如,要發(fā)布此視頻:
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:http://t.cn/Ail9eamb%3Fm%3D439 ... 64682
  成功發(fā)送視頻的微博:
  
  視頻
  你可以在我的微博上看到剛剛發(fā)送的視頻。
  結束語(yǔ)
  還有一些接口比如注釋?zhuān)蠹铱梢宰约簻y試一下,在接口管理里面可以看到相應的介紹。
  附上源代碼:

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有時(shí)候整合新浪微博的獨立博客是怎么做的??)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 94 次瀏覽 ? 2021-10-21 16:01 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有時(shí)候整合新浪微博的獨立博客是怎么做的??)
  隨著(zhù)新浪微博用戶(hù)越來(lái)越多,我們有時(shí)會(huì )考慮將新浪微博整合到我們自己的網(wǎng)站中。例如,我目前的獨立博客。
  我博客的整合主要是這幾個(gè)方面:我寫(xiě)了一篇文章,同時(shí)發(fā)到微博。同時(shí),用戶(hù)可以用自己的微博賬號登錄,可以選擇將文章的評論同步到文章的微博。此外,用戶(hù)可以選擇是否將博客消息同步到新浪微博。
  新浪微博開(kāi)放平臺地址在這里。文檔地址在這里。
  首先要涉及的問(wèn)題是用戶(hù)使用新浪微博賬號登錄的問(wèn)題,即授權機制。有兩種基本方法:
  OAuth Basic auth(需要強調的是,微博開(kāi)放平臺將于6月1日正式停止支持Basic Auth,因此不討論這種方式。實(shí)際上,要求用戶(hù)名和密碼的方式本質(zhì)上是不安全的。)
  官方 OAuth 新浪文檔在這里。想了解OAuth技術(shù)說(shuō)明的可以訪(fǎng)問(wèn)項目主頁(yè)。
  其實(shí)OAuth的過(guò)程還是很簡(jiǎn)單的。大致如下:
  從 API 調用中獲取請求令牌。將用戶(hù)重定向到授權頁(yè)面(auth url)。用戶(hù)輸入用戶(hù)名和密碼完成授權。重定向到 Callback_url。將請求令牌交換到新浪微博以獲取訪(fǎng)問(wèn)令牌。結束。
  大致了解了OAuth的原理后,既然是集成到Django,自然需要下載Python版的微博SDK。
  但是,在一切開(kāi)始之前,您必須從新浪微博申請。申請地址在這里。這里需要強調的是,以后的應用需要申請審核,因為只有審核通過(guò)后,才能在源中顯示個(gè)性化的應用名稱(chēng)。因此,在申請時(shí),要注意申請介紹信息的完整性和正確的申請分類(lèi)。(在這個(gè)例子中,我們的分類(lèi)是合作網(wǎng)站。)
  申請完成后,您將獲得您的申請的App Key和App Secret。
  回到授權用戶(hù)登錄的話(huà)題。要允許新浪微博賬號訪(fǎng)問(wèn),首先我們需要在urlpatterns中添加幾個(gè)URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下來(lái),我們啟動(dòng)視圖文件。代碼:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 設置你申請的appkey consumer_secret = '' # 設置你申請的appkey對于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登錄頁(yè)而發(fā)生跳轉錯誤 return referer_url def _oauth(): """獲取oauth認證類(lèi)""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登錄url,以便認證成功后跳轉回來(lái) back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 獲取oauth認證url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用戶(hù)登錄后需要使用它來(lái)獲取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳轉到登錄頁(yè)面 return HttpResponseRedirect(auth_url) def login_check(request): """用戶(hù)成功登錄授權后,會(huì )回調此方法,獲取access_token,完成授權""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 設置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后訪(fǎng)問(wèn)只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳轉回最初登錄前的頁(yè)面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用戶(hù)登出,直接刪除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授權碼后,接下來(lái)我們需要知道如何向新浪微博發(fā)送消息等操作。其實(shí)就是下載的sdk下exanples文件夾下的examples(沒(méi)錯,其實(shí)就是examples,這個(gè)是英文水平的,就不多說(shuō)了)?;旧?,您可以更改它并直接使用它。以oauthSetTokenUpdate.py為例,我們可以這樣寫(xiě):
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必須是UTF-8編碼的字符串,經(jīng)緯度是可以不寫(xiě)的 print status.id print status.text
  運行這個(gè)程序會(huì )提示一個(gè)URL鏈接,在瀏覽器中打開(kāi)這個(gè)鏈接,并授予訪(fǎng)問(wèn)權限,你會(huì )得到一串PIN碼。輸入此 PIN 碼,將發(fā)送一條推文,同時(shí)還會(huì )顯示用戶(hù)的訪(fǎng)問(wèn)令牌密鑰和訪(fǎng)問(wèn)令牌秘密。
  但是,這是否有點(diǎn)太書(shū)呆子了?其實(shí)只要知道Access token key和Access token secret,我們就可以直接使用它們來(lái)創(chuàng )建API對象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' token = '用戶(hù)的Access token key' tokenSecret = '用戶(hù)的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  這時(shí)候我們可以重構代碼,寫(xiě)一個(gè)微博類(lèi)來(lái)實(shí)現上述功能,實(shí)現一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道讀者是否還記得上面授權部分的代碼。在login_check方法代碼中,有這么一句。
  request.session['oauth_access_token'] = access_token
  授權用戶(hù)的 access_token 已經(jīng)存儲在 session 變量中。因此,當用戶(hù)授權完成后,我們可以直接使用session中存儲的access_token,像這樣:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  在上面的例子中,只使用了部分 API。有關(guān)完整的 API 手冊,請參閱此處。
  文章來(lái)源: 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有時(shí)候整合新浪微博的獨立博客是怎么做的??)
  隨著(zhù)新浪微博用戶(hù)越來(lái)越多,我們有時(shí)會(huì )考慮將新浪微博整合到我們自己的網(wǎng)站中。例如,我目前的獨立博客。
  我博客的整合主要是這幾個(gè)方面:我寫(xiě)了一篇文章,同時(shí)發(fā)到微博。同時(shí),用戶(hù)可以用自己的微博賬號登錄,可以選擇將文章的評論同步到文章的微博。此外,用戶(hù)可以選擇是否將博客消息同步到新浪微博。
  新浪微博開(kāi)放平臺地址在這里。文檔地址在這里。
  首先要涉及的問(wèn)題是用戶(hù)使用新浪微博賬號登錄的問(wèn)題,即授權機制。有兩種基本方法:
  OAuth Basic auth(需要強調的是,微博開(kāi)放平臺將于6月1日正式停止支持Basic Auth,因此不討論這種方式。實(shí)際上,要求用戶(hù)名和密碼的方式本質(zhì)上是不安全的。)
  官方 OAuth 新浪文檔在這里。想了解OAuth技術(shù)說(shuō)明的可以訪(fǎng)問(wèn)項目主頁(yè)。
  其實(shí)OAuth的過(guò)程還是很簡(jiǎn)單的。大致如下:
  從 API 調用中獲取請求令牌。將用戶(hù)重定向到授權頁(yè)面(auth url)。用戶(hù)輸入用戶(hù)名和密碼完成授權。重定向到 Callback_url。將請求令牌交換到新浪微博以獲取訪(fǎng)問(wèn)令牌。結束。
  大致了解了OAuth的原理后,既然是集成到Django,自然需要下載Python版的微博SDK。
  但是,在一切開(kāi)始之前,您必須從新浪微博申請。申請地址在這里。這里需要強調的是,以后的應用需要申請審核,因為只有審核通過(guò)后,才能在源中顯示個(gè)性化的應用名稱(chēng)。因此,在申請時(shí),要注意申請介紹信息的完整性和正確的申請分類(lèi)。(在這個(gè)例子中,我們的分類(lèi)是合作網(wǎng)站。)
  申請完成后,您將獲得您的申請的App Key和App Secret。
  回到授權用戶(hù)登錄的話(huà)題。要允許新浪微博賬號訪(fǎng)問(wèn),首先我們需要在urlpatterns中添加幾個(gè)URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下來(lái),我們啟動(dòng)視圖文件。代碼:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 設置你申請的appkey consumer_secret = '' # 設置你申請的appkey對于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登錄頁(yè)而發(fā)生跳轉錯誤 return referer_url def _oauth(): """獲取oauth認證類(lèi)""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登錄url,以便認證成功后跳轉回來(lái) back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 獲取oauth認證url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用戶(hù)登錄后需要使用它來(lái)獲取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳轉到登錄頁(yè)面 return HttpResponseRedirect(auth_url) def login_check(request): """用戶(hù)成功登錄授權后,會(huì )回調此方法,獲取access_token,完成授權""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 設置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后訪(fǎng)問(wèn)只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳轉回最初登錄前的頁(yè)面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用戶(hù)登出,直接刪除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授權碼后,接下來(lái)我們需要知道如何向新浪微博發(fā)送消息等操作。其實(shí)就是下載的sdk下exanples文件夾下的examples(沒(méi)錯,其實(shí)就是examples,這個(gè)是英文水平的,就不多說(shuō)了)?;旧?,您可以更改它并直接使用它。以oauthSetTokenUpdate.py為例,我們可以這樣寫(xiě):
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必須是UTF-8編碼的字符串,經(jīng)緯度是可以不寫(xiě)的 print status.id print status.text
  運行這個(gè)程序會(huì )提示一個(gè)URL鏈接,在瀏覽器中打開(kāi)這個(gè)鏈接,并授予訪(fǎng)問(wèn)權限,你會(huì )得到一串PIN碼。輸入此 PIN 碼,將發(fā)送一條推文,同時(shí)還會(huì )顯示用戶(hù)的訪(fǎng)問(wèn)令牌密鑰和訪(fǎng)問(wèn)令牌秘密。
  但是,這是否有點(diǎn)太書(shū)呆子了?其實(shí)只要知道Access token key和Access token secret,我們就可以直接使用它們來(lái)創(chuàng )建API對象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' token = '用戶(hù)的Access token key' tokenSecret = '用戶(hù)的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  這時(shí)候我們可以重構代碼,寫(xiě)一個(gè)微博類(lèi)來(lái)實(shí)現上述功能,實(shí)現一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道讀者是否還記得上面授權部分的代碼。在login_check方法代碼中,有這么一句。
  request.session['oauth_access_token'] = access_token
  授權用戶(hù)的 access_token 已經(jīng)存儲在 session 變量中。因此,當用戶(hù)授權完成后,我們可以直接使用session中存儲的access_token,像這樣:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  在上面的例子中,只使用了部分 API。有關(guān)完整的 API 手冊,請參閱此處。
  文章來(lái)源:

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博推出可嵌入到第三方網(wǎng)站的贊按鈕(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2021-10-21 16:01 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博推出可嵌入到第三方網(wǎng)站的贊按鈕(組圖))
  【編者按】網(wǎng)站 正在建設中,還有一種方式分享。
  在網(wǎng)頁(yè)版微博和手機客戶(hù)端推出點(diǎn)贊按鈕后,新浪微博現在有了一個(gè)可以嵌入第三方的點(diǎn)贊按鈕網(wǎng)站。
  
  據新浪微博開(kāi)放平臺相關(guān)頁(yè)面介紹,用戶(hù)可以通過(guò)點(diǎn)贊按鈕同時(shí)表達態(tài)度、發(fā)現朋友、分享內容。
  隨時(shí)隨地輕松表達態(tài)度——用戶(hù)瀏覽網(wǎng)頁(yè),找到自己喜歡的內容,一鍵“贊”即可表達心情,方便快捷
  發(fā)現朋友——“喜歡”按鈕也會(huì )顯示表達過(guò)他們態(tài)度的用戶(hù)。如果你的微博朋友也“點(diǎn)贊”了,那你就會(huì )看到她/他
  同步內容分享-----點(diǎn)擊按鈕后,用戶(hù)將一條收錄對象內容的動(dòng)態(tài)消息同步到微博,并通過(guò)微博繼續傳播
  網(wǎng)站 開(kāi)發(fā)人員現在可以將此按鈕嵌入到他們自己的 網(wǎng)站 中。
  Like按鈕最早出現在FriendFeed(Twitter的競爭對手,后來(lái)被Facebook收購)網(wǎng)站,然后被Facebook發(fā)揚光大,現在充斥著(zhù)世界各個(gè)角落(中國除外)。我用 36 氪 文章 寫(xiě)了一篇文章,解釋了 Like 按鈕的強大:
  帶有“贊”按鈕網(wǎng)站 的媒體將其推薦流量平均增加了 300%。
  Levi's 于 2010 年 4 月添加了 Like 按鈕,此后流量增長(cháng)了 40 倍并保持穩定。
  添加“贊”按鈕后,收入在 2 周內增長(cháng)了 100%。
  添加贊按鈕后,Tea 采集 的每日收入翻了 10 倍。
  但是,要實(shí)現這個(gè)效果,微博需要支持將用戶(hù)喜歡的內容同步到時(shí)間線(xiàn)(目前只顯示在自己的個(gè)人資料頁(yè)面)。上次與新浪微博開(kāi)放平臺總經(jīng)理楚大臣交流時(shí),他透露未來(lái)會(huì )加入這個(gè)功能,但他們還在探索內容的呈現方式。Timeline 中出現的點(diǎn)贊內容非常有利于流量,但處理不當會(huì )對用戶(hù)造成干擾。
  
 ?。▊€(gè)人資料頁(yè)面點(diǎn)贊按鈕的顯示效果)
  除了新浪微博,QQ空間和人人網(wǎng)也早就推出了自己的點(diǎn)贊按鈕。據說(shuō)騰訊微博很早就在規劃這個(gè)功能。
  對于微博來(lái)說(shuō),點(diǎn)贊按鈕可以讓他們采集大量的用戶(hù)數據,這對于未來(lái)無(wú)論是用于投放精準廣告還是對內容進(jìn)行個(gè)性化推薦都將是非常有價(jià)值的。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博推出可嵌入到第三方網(wǎng)站的贊按鈕(組圖))
  【編者按】網(wǎng)站 正在建設中,還有一種方式分享。
  在網(wǎng)頁(yè)版微博和手機客戶(hù)端推出點(diǎn)贊按鈕后,新浪微博現在有了一個(gè)可以嵌入第三方的點(diǎn)贊按鈕網(wǎng)站。
  
  據新浪微博開(kāi)放平臺相關(guān)頁(yè)面介紹,用戶(hù)可以通過(guò)點(diǎn)贊按鈕同時(shí)表達態(tài)度、發(fā)現朋友、分享內容。
  隨時(shí)隨地輕松表達態(tài)度——用戶(hù)瀏覽網(wǎng)頁(yè),找到自己喜歡的內容,一鍵“贊”即可表達心情,方便快捷
  發(fā)現朋友——“喜歡”按鈕也會(huì )顯示表達過(guò)他們態(tài)度的用戶(hù)。如果你的微博朋友也“點(diǎn)贊”了,那你就會(huì )看到她/他
  同步內容分享-----點(diǎn)擊按鈕后,用戶(hù)將一條收錄對象內容的動(dòng)態(tài)消息同步到微博,并通過(guò)微博繼續傳播
  網(wǎng)站 開(kāi)發(fā)人員現在可以將此按鈕嵌入到他們自己的 網(wǎng)站 中。
  Like按鈕最早出現在FriendFeed(Twitter的競爭對手,后來(lái)被Facebook收購)網(wǎng)站,然后被Facebook發(fā)揚光大,現在充斥著(zhù)世界各個(gè)角落(中國除外)。我用 36 氪 文章 寫(xiě)了一篇文章,解釋了 Like 按鈕的強大:
  帶有“贊”按鈕網(wǎng)站 的媒體將其推薦流量平均增加了 300%。
  Levi's 于 2010 年 4 月添加了 Like 按鈕,此后流量增長(cháng)了 40 倍并保持穩定。
  添加“贊”按鈕后,收入在 2 周內增長(cháng)了 100%。
  添加贊按鈕后,Tea 采集 的每日收入翻了 10 倍。
  但是,要實(shí)現這個(gè)效果,微博需要支持將用戶(hù)喜歡的內容同步到時(shí)間線(xiàn)(目前只顯示在自己的個(gè)人資料頁(yè)面)。上次與新浪微博開(kāi)放平臺總經(jīng)理楚大臣交流時(shí),他透露未來(lái)會(huì )加入這個(gè)功能,但他們還在探索內容的呈現方式。Timeline 中出現的點(diǎn)贊內容非常有利于流量,但處理不當會(huì )對用戶(hù)造成干擾。
  
 ?。▊€(gè)人資料頁(yè)面點(diǎn)贊按鈕的顯示效果)
  除了新浪微博,QQ空間和人人網(wǎng)也早就推出了自己的點(diǎn)贊按鈕。據說(shuō)騰訊微博很早就在規劃這個(gè)功能。
  對于微博來(lái)說(shuō),點(diǎn)贊按鈕可以讓他們采集大量的用戶(hù)數據,這對于未來(lái)無(wú)論是用于投放精準廣告還是對內容進(jìn)行個(gè)性化推薦都將是非常有價(jià)值的。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博V2版PHPSDKDemo使用教程版Demo演示地址)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 77 次瀏覽 ? 2021-10-21 02:17 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博V2版PHPSDKDemo使用教程版Demo演示地址)
  ==================
  用于新浪微博開(kāi)放平臺的PHP SDK。收錄可以直接使用的DEMO。
  SAE(Sina App Engine,)內置SDK,無(wú)需下載,需要手動(dòng)調用require_once('saetv2.ex.class.php');
  作曲家
  composer.phar 需要 xiaosier/libweibo:dev-master
  微博寫(xiě)界面說(shuō)明
  由于微博開(kāi)放平臺的調整,寫(xiě)界面需要切換到分享分享界面,說(shuō)明是%E3%80%90%E5%B9%B3%E5%8F%B0%E5 %85%AC%E5% 91%8A%E3%80%91%E5%BE%AE%E5%8D%9A%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F %B0%E5%88% 86%E4%BA%AB%E5%88%B0%E5%BE%AE%E5%8D%9A%E6%8E%A5%E5%8F%A3%E5%8D%87 %E7%BA%A7% E5%85%AC 在這里。您需要使用 $instance->share($status, $pic);調用時(shí)的方法,例如:
  share($status.'', ??$file_local);var_dump($ret);">
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , WB_ACCESSTOKEN );
// 待發(fā)送的文字內容
$status = '發(fā)送的文字內容';
// 本地一張圖片,也可以不帶圖片
$file_local = '5486087cly1fhh2yaksr1j20j60srtd0.jpg';
// 拼接'http://weibosdk.sinaapp.com/'是因為這個(gè)share接口至少要帶上一個(gè)【安全域名】下的鏈接。
$ret = $c->share($status.'http://weibosdk.sinaapp.com/', $file_local);
var_dump($ret);
  更新說(shuō)明
  Demo 演示地址
  如何申請API Key
  您需要有新浪微博開(kāi)放平臺的API Key。在此處申請:
  關(guān)于Class的功能
  新浪微博V2版PHPSDK Demo使用教程
  新浪微博應用Demo教程
  OAuth 版演示教程
  錯誤跟蹤器
  有錯誤嗎?請在 GitHub 上創(chuàng )建問(wèn)題!
  作者授權 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博V2版PHPSDKDemo使用教程版Demo演示地址)
  ==================
  用于新浪微博開(kāi)放平臺的PHP SDK。收錄可以直接使用的DEMO。
  SAE(Sina App Engine,)內置SDK,無(wú)需下載,需要手動(dòng)調用require_once('saetv2.ex.class.php');
  作曲家
  composer.phar 需要 xiaosier/libweibo:dev-master
  微博寫(xiě)界面說(shuō)明
  由于微博開(kāi)放平臺的調整,寫(xiě)界面需要切換到分享分享界面,說(shuō)明是%E3%80%90%E5%B9%B3%E5%8F%B0%E5 %85%AC%E5% 91%8A%E3%80%91%E5%BE%AE%E5%8D%9A%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F %B0%E5%88% 86%E4%BA%AB%E5%88%B0%E5%BE%AE%E5%8D%9A%E6%8E%A5%E5%8F%A3%E5%8D%87 %E7%BA%A7% E5%85%AC 在這里。您需要使用 $instance->share($status, $pic);調用時(shí)的方法,例如:
  share($status.'', ??$file_local);var_dump($ret);">
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , WB_ACCESSTOKEN );
// 待發(fā)送的文字內容
$status = '發(fā)送的文字內容';
// 本地一張圖片,也可以不帶圖片
$file_local = '5486087cly1fhh2yaksr1j20j60srtd0.jpg';
// 拼接'http://weibosdk.sinaapp.com/'是因為這個(gè)share接口至少要帶上一個(gè)【安全域名】下的鏈接。
$ret = $c->share($status.'http://weibosdk.sinaapp.com/', $file_local);
var_dump($ret);
  更新說(shuō)明
  Demo 演示地址
  如何申請API Key
  您需要有新浪微博開(kāi)放平臺的API Key。在此處申請:
  關(guān)于Class的功能
  新浪微博V2版PHPSDK Demo使用教程
  新浪微博應用Demo教程
  OAuth 版演示教程
  錯誤跟蹤器
  有錯誤嗎?請在 GitHub 上創(chuàng )建問(wèn)題!
  作者授權

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博新的API授權方式為OAuth2以往的BasicAuth(圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2021-10-19 11:09 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博新的API授權方式為OAuth2以往的BasicAuth(圖))
  1、注冊新浪賬號2、開(kāi)發(fā)者認證
  我需要認證,我等了一天。提交身份認證后即可使用,無(wú)需等待認證通過(guò)。
  3、創(chuàng )建APP
  系統會(huì )為此應用分配一個(gè)APP KEY和APP SECRET。這兩個(gè)字符串非常重要,將在以后的身份驗證或信息交換中使用。
  4、設置應用授權回調頁(yè)面
  應用信息-高級信息-OAuth2.0 授權設置,設置授權回調頁(yè)面。
  如果沒(méi)有自己的網(wǎng)站,可以設置redirecturl為,程序中的redirecturl要和這個(gè)一致。
  如圖所示:
  
  如果沒(méi)有設置授權回調頁(yè)面地址,或者程序與此不同,會(huì )出現如下錯誤:
  訪(fǎng)問(wèn)出錯了!
你所訪(fǎng)問(wèn)的站點(diǎn)在新浪微博的認證失敗,請你聯(lián)系gnocob或者稍后再試。
(error:redirect_uri_mismatch)
  如圖所示:
  
  5、下載所需版本的sdk
  6、查看可用的 API
  %E6%96%87%E6%A1%A3
  可用于我的應用程序的接口:
  
  7、測試及其他
  Python SDK 調用 API 測試如下:
  #encoding=utf-8
from weibo import APIClient
def get_access_token(app_key, app_secret, callback_url):
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
# 獲取授權頁(yè)面網(wǎng)址
auth_url = client.get_authorize_url()
print auth_url

# 在瀏覽器中訪(fǎng)問(wèn)這個(gè)URL,會(huì )跳轉到回調地址,回調地址后面跟著(zhù)code,輸入code
code = raw_input("Input code:")
r = client.request_access_token(code)
access_token = r.access_token
# token過(guò)期的UNIX時(shí)間
expires_in = r.expires_in
print 'access_token:',access_token
print 'expires_in:', expires_in
return access_token, expires_in
if __name__ == '__main__':
app_key = '1234567'
app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
callback_url = 'https://api.weibo.com/oauth2/default.html'
access_token, expires_in = get_access_token(app_key, app_secret, callback_url)
# 上面的語(yǔ)句運行一次后,可保存得到的access token,不必每次都申請
#access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
#expires_in = '00000000'
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
client.set_access_token(access_token, expires_in)
# 使用獲得的OAuth2.0 Access Token調用API
print client.get.statuses__user_timeline()
print client.post.statuses__update(status=u'測試OAuth 2.0發(fā)微博')
  OAuth 認證方式:
  得到auth_url后,長(cháng)這樣:
  %3A//oauth2/default.html&response_type=code&client_id=180341588&display=default,
  用瀏覽器打開(kāi),會(huì )跳轉到授權回調頁(yè)面地址,像這樣:
  ,
  獲取后面的code值,申請access_token。成功后即可獲得訪(fǎng)問(wèn)權限。
  注意新浪微博新的API授權方式是OAuth2,與之前的Basic Auth不同。詳細參考:
  如何使用OAuth2以及如何使用API??,請參考:
  如果在使用過(guò)程中出現問(wèn)題,在google或者官方論壇搜索提示信息, 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博新的API授權方式為OAuth2以往的BasicAuth(圖))
  1、注冊新浪賬號2、開(kāi)發(fā)者認證
  我需要認證,我等了一天。提交身份認證后即可使用,無(wú)需等待認證通過(guò)。
  3、創(chuàng )建APP
  系統會(huì )為此應用分配一個(gè)APP KEY和APP SECRET。這兩個(gè)字符串非常重要,將在以后的身份驗證或信息交換中使用。
  4、設置應用授權回調頁(yè)面
  應用信息-高級信息-OAuth2.0 授權設置,設置授權回調頁(yè)面。
  如果沒(méi)有自己的網(wǎng)站,可以設置redirecturl為,程序中的redirecturl要和這個(gè)一致。
  如圖所示:
  
  如果沒(méi)有設置授權回調頁(yè)面地址,或者程序與此不同,會(huì )出現如下錯誤:
  訪(fǎng)問(wèn)出錯了!
你所訪(fǎng)問(wèn)的站點(diǎn)在新浪微博的認證失敗,請你聯(lián)系gnocob或者稍后再試。
(error:redirect_uri_mismatch)
  如圖所示:
  
  5、下載所需版本的sdk
  6、查看可用的 API
  %E6%96%87%E6%A1%A3
  可用于我的應用程序的接口:
  
  7、測試及其他
  Python SDK 調用 API 測試如下:
  #encoding=utf-8
from weibo import APIClient
def get_access_token(app_key, app_secret, callback_url):
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
# 獲取授權頁(yè)面網(wǎng)址
auth_url = client.get_authorize_url()
print auth_url

# 在瀏覽器中訪(fǎng)問(wèn)這個(gè)URL,會(huì )跳轉到回調地址,回調地址后面跟著(zhù)code,輸入code
code = raw_input("Input code:")
r = client.request_access_token(code)
access_token = r.access_token
# token過(guò)期的UNIX時(shí)間
expires_in = r.expires_in
print 'access_token:',access_token
print 'expires_in:', expires_in
return access_token, expires_in
if __name__ == '__main__':
app_key = '1234567'
app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
callback_url = 'https://api.weibo.com/oauth2/default.html'
access_token, expires_in = get_access_token(app_key, app_secret, callback_url)
# 上面的語(yǔ)句運行一次后,可保存得到的access token,不必每次都申請
#access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
#expires_in = '00000000'
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
client.set_access_token(access_token, expires_in)
# 使用獲得的OAuth2.0 Access Token調用API
print client.get.statuses__user_timeline()
print client.post.statuses__update(status=u'測試OAuth 2.0發(fā)微博')
  OAuth 認證方式:
  得到auth_url后,長(cháng)這樣:
  %3A//oauth2/default.html&response_type=code&client_id=180341588&display=default,
  用瀏覽器打開(kāi),會(huì )跳轉到授權回調頁(yè)面地址,像這樣:
  ,
  獲取后面的code值,申請access_token。成功后即可獲得訪(fǎng)問(wèn)權限。
  注意新浪微博新的API授權方式是OAuth2,與之前的Basic Auth不同。詳細參考:
  如何使用OAuth2以及如何使用API??,請參考:
  如果在使用過(guò)程中出現問(wèn)題,在google或者官方論壇搜索提示信息,

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪云平臺(SinaAppEngine)開(kāi)放的是什么:Sina)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2021-11-01 23:17 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪云平臺(SinaAppEngine)開(kāi)放的是什么:Sina)
  1、新浪微博開(kāi)放平臺()
  什么是開(kāi)放的:開(kāi)放平臺對開(kāi)發(fā)者開(kāi)放的是每個(gè)用戶(hù)的用戶(hù)關(guān)系。開(kāi)發(fā)者不像傳統應用那樣面對單個(gè)開(kāi)發(fā)者,而是面對用戶(hù)背后的整個(gè)朋友圈。每個(gè)API都提供了圍繞好友與好友交流的相關(guān)功能,如發(fā)送微博、查看好友信息等。
  為什么要使用開(kāi)放平臺?一個(gè)開(kāi)放的平臺可以加快應用的推廣。每個(gè)用戶(hù)都可以影響周?chē)呐笥?。一旦應用程序真的很好,用?hù)可以很容易地推薦給他的朋友,朋友可以再次推薦給他的朋友。開(kāi)放的平臺,更容易獲得用戶(hù)關(guān)系。當一個(gè)應用涉及到用戶(hù)溝通時(shí),它需要同時(shí)擁有一定的用戶(hù)群和用戶(hù)關(guān)系鏈,與如此多的用戶(hù)建立關(guān)系鏈需要花費大量的時(shí)間和精力。微博通過(guò)草根與草根、草根與名人、名人與名人的相互關(guān)注,形成了龐大的社交網(wǎng)絡(luò ),應用程序可以通過(guò)開(kāi)放平臺直接使用這個(gè)網(wǎng)絡(luò )。
  2、新浪云平臺(Sina AppEngine、SAE)
  新浪App Engine(以下簡(jiǎn)稱(chēng)SAE)是新浪研發(fā)中心于2009年8月開(kāi)始內部開(kāi)發(fā)并于2009年11月3日正式推出首個(gè)Alpha版本的國內首個(gè)公有云計算平臺。SAE是新浪云的核心組件計算策略。
  SAE作為國內的公有云計算公司,從發(fā)展之初就借鑒了谷歌、亞馬遜等國外公司在公有云計算方面的成功技術(shù)經(jīng)驗,并很快推出了與眾不同的具有自身特色的云計算平臺。SAE 選擇中國最流行的 Web 開(kāi)發(fā)語(yǔ)言 PHP 作為首選支持語(yǔ)言。Web 開(kāi)發(fā)者可以使用 SVN、SDK 或 Web 版本的在線(xiàn)代碼編輯器在 Linux/Mac/Windows 上進(jìn)行開(kāi)發(fā)、部署和調試。團隊開(kāi)發(fā)成員也可以協(xié)作,不同角色對代碼和項目有不同的權限;SAE 提供了一系列分布式計算和存儲服務(wù)供開(kāi)發(fā)者使用,包括分布式文件存儲、分布式數據庫集群、分布式緩存、分布式定時(shí)服務(wù)等,這些服務(wù)將大大降低開(kāi)發(fā)者的開(kāi)發(fā)成本。同時(shí),由于SAE整體架構的高可靠性和新浪的品牌保證,大大降低了開(kāi)發(fā)商的運營(yíng)風(fēng)險。另外,作為典型的云計算,SAE采用了“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。
  簡(jiǎn)而言之,SAE 是一個(gè)簡(jiǎn)單高效的分布式 Web 服務(wù)開(kāi)發(fā)和運營(yíng)平臺。
  查看更多。
  3、新浪云平臺(Sina AppEngine, SAE)與新浪微博開(kāi)放平臺的關(guān)系
  微博應用開(kāi)發(fā)成功后,需要將代碼部署到Web上才能使用。也就是說(shuō),微博應用開(kāi)發(fā)是通過(guò)調用新浪微博開(kāi)放平臺中的API來(lái)完成編程的,這些程序必須上傳到SAE并在SAE上運行。
  在開(kāi)發(fā)過(guò)程中,您可以搭建一個(gè)web服務(wù)器在本地運行程序,也可以選擇完成傳統的服務(wù)托管。但是,這兩種方案都需要很多麻煩的配置。
  開(kāi)發(fā)時(shí)直接將代碼部署到SAE,無(wú)需任何配置,SAE為您準備了更多以后可能用到的服務(wù)。我們可以直接進(jìn)入話(huà)題開(kāi)發(fā)微博應用。
  SAE 是免費的(至少作為個(gè)人學(xué)習的資源),這也很重要。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪云平臺(SinaAppEngine)開(kāi)放的是什么:Sina)
  1、新浪微博開(kāi)放平臺()
  什么是開(kāi)放的:開(kāi)放平臺對開(kāi)發(fā)者開(kāi)放的是每個(gè)用戶(hù)的用戶(hù)關(guān)系。開(kāi)發(fā)者不像傳統應用那樣面對單個(gè)開(kāi)發(fā)者,而是面對用戶(hù)背后的整個(gè)朋友圈。每個(gè)API都提供了圍繞好友與好友交流的相關(guān)功能,如發(fā)送微博、查看好友信息等。
  為什么要使用開(kāi)放平臺?一個(gè)開(kāi)放的平臺可以加快應用的推廣。每個(gè)用戶(hù)都可以影響周?chē)呐笥?。一旦應用程序真的很好,用?hù)可以很容易地推薦給他的朋友,朋友可以再次推薦給他的朋友。開(kāi)放的平臺,更容易獲得用戶(hù)關(guān)系。當一個(gè)應用涉及到用戶(hù)溝通時(shí),它需要同時(shí)擁有一定的用戶(hù)群和用戶(hù)關(guān)系鏈,與如此多的用戶(hù)建立關(guān)系鏈需要花費大量的時(shí)間和精力。微博通過(guò)草根與草根、草根與名人、名人與名人的相互關(guān)注,形成了龐大的社交網(wǎng)絡(luò ),應用程序可以通過(guò)開(kāi)放平臺直接使用這個(gè)網(wǎng)絡(luò )。
  2、新浪云平臺(Sina AppEngine、SAE)
  新浪App Engine(以下簡(jiǎn)稱(chēng)SAE)是新浪研發(fā)中心于2009年8月開(kāi)始內部開(kāi)發(fā)并于2009年11月3日正式推出首個(gè)Alpha版本的國內首個(gè)公有云計算平臺。SAE是新浪云的核心組件計算策略。
  SAE作為國內的公有云計算公司,從發(fā)展之初就借鑒了谷歌、亞馬遜等國外公司在公有云計算方面的成功技術(shù)經(jīng)驗,并很快推出了與眾不同的具有自身特色的云計算平臺。SAE 選擇中國最流行的 Web 開(kāi)發(fā)語(yǔ)言 PHP 作為首選支持語(yǔ)言。Web 開(kāi)發(fā)者可以使用 SVN、SDK 或 Web 版本的在線(xiàn)代碼編輯器在 Linux/Mac/Windows 上進(jìn)行開(kāi)發(fā)、部署和調試。團隊開(kāi)發(fā)成員也可以協(xié)作,不同角色對代碼和項目有不同的權限;SAE 提供了一系列分布式計算和存儲服務(wù)供開(kāi)發(fā)者使用,包括分布式文件存儲、分布式數據庫集群、分布式緩存、分布式定時(shí)服務(wù)等,這些服務(wù)將大大降低開(kāi)發(fā)者的開(kāi)發(fā)成本。同時(shí),由于SAE整體架構的高可靠性和新浪的品牌保證,大大降低了開(kāi)發(fā)商的運營(yíng)風(fēng)險。另外,作為典型的云計算,SAE采用了“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。作為典型的云計算,SAE采用“所付即付,所付即用”的計費理念。它通過(guò)日志和統計中心準確計算每個(gè)應用程序的資源消耗(包括CPU、內存、磁盤(pán)等)。
  簡(jiǎn)而言之,SAE 是一個(gè)簡(jiǎn)單高效的分布式 Web 服務(wù)開(kāi)發(fā)和運營(yíng)平臺。
  查看更多。
  3、新浪云平臺(Sina AppEngine, SAE)與新浪微博開(kāi)放平臺的關(guān)系
  微博應用開(kāi)發(fā)成功后,需要將代碼部署到Web上才能使用。也就是說(shuō),微博應用開(kāi)發(fā)是通過(guò)調用新浪微博開(kāi)放平臺中的API來(lái)完成編程的,這些程序必須上傳到SAE并在SAE上運行。
  在開(kāi)發(fā)過(guò)程中,您可以搭建一個(gè)web服務(wù)器在本地運行程序,也可以選擇完成傳統的服務(wù)托管。但是,這兩種方案都需要很多麻煩的配置。
  開(kāi)發(fā)時(shí)直接將代碼部署到SAE,無(wú)需任何配置,SAE為您準備了更多以后可能用到的服務(wù)。我們可以直接進(jìn)入話(huà)題開(kāi)發(fā)微博應用。
  SAE 是免費的(至少作為個(gè)人學(xué)習的資源),這也很重要。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博短鏈接API開(kāi)放,騰訊微博短地址API沒(méi)有開(kāi)放)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 92 次瀏覽 ? 2021-11-01 20:10 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博短鏈接API開(kāi)放,騰訊微博短地址API沒(méi)有開(kāi)放)
  在短地址(又稱(chēng)短鏈接、短地址等)方面,推特是經(jīng)過(guò)發(fā)展后發(fā)展起來(lái)的,很多互聯(lián)網(wǎng)網(wǎng)站都使用短地址。國內外有很多,但穩定可靠。國內的比較靠譜。我不怕沒(méi)有墻。幾家外國公司已經(jīng)遭遇悲劇。所以,如果在項目中使用短地址,我還是推薦使用新浪或者其他國內的短鏈接服務(wù)。
  新浪微博短鏈接API開(kāi)放,但騰訊微博短地址API未開(kāi)放。我想通過(guò)不同的路徑獲取騰訊微博的API,但以失敗告終。新浪微博短地址API不需要用戶(hù)登錄,直接調用即可,速度非???。以下代碼取自網(wǎng)站,使用CURLPOST方法供參考。
  新浪微博短鏈接API文檔在老版本的開(kāi)發(fā)文檔中,但新版本沒(méi)有添加:
  function shortenSinaUrl($long_url){
$apiKey='1234567890';//這里是你申請的應用的API KEY,隨便寫(xiě)個(gè)應用名就會(huì )自動(dòng)分配給你
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandSinaUrl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_long;
}
  參考新浪微博的開(kāi)發(fā)文檔,推薦使用get方式獲取。代碼更簡(jiǎn)單
  function shorturl($long_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandurl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_long;
}
  好,容易嗎?
  調試上面代碼的時(shí)候,需要填寫(xiě)自己的API key,不然肯定拿不到。
  特別說(shuō)明:短地址服務(wù)現在只為經(jīng)過(guò)認證的APP KEY提供服務(wù),剛剛申請的APP KEY會(huì )提示沒(méi)有權限??梢允褂?09678993和3818214747這兩個(gè)KEY進(jìn)行測試。這兩個(gè)KEY的來(lái)源不明,不推薦用于生產(chǎn)。(感謝您的提醒)
  Jucelin 寫(xiě)了一個(gè)調試文檔,你可以測試一下:
  長(cháng)到短:://
  短到長(cháng)::///S4bLBm
  參數只有2個(gè),類(lèi)型:1表示長(cháng)轉短,2表示短轉長(cháng),后面的URL是目標域名,因為懶所以沒(méi)有錯誤判斷,新浪微博短地址不支持短地址和那么短地址是的,邏輯上應該是這樣控制的。(不信你可以試試)。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博短鏈接API開(kāi)放,騰訊微博短地址API沒(méi)有開(kāi)放)
  在短地址(又稱(chēng)短鏈接、短地址等)方面,推特是經(jīng)過(guò)發(fā)展后發(fā)展起來(lái)的,很多互聯(lián)網(wǎng)網(wǎng)站都使用短地址。國內外有很多,但穩定可靠。國內的比較靠譜。我不怕沒(méi)有墻。幾家外國公司已經(jīng)遭遇悲劇。所以,如果在項目中使用短地址,我還是推薦使用新浪或者其他國內的短鏈接服務(wù)。
  新浪微博短鏈接API開(kāi)放,但騰訊微博短地址API未開(kāi)放。我想通過(guò)不同的路徑獲取騰訊微博的API,但以失敗告終。新浪微博短地址API不需要用戶(hù)登錄,直接調用即可,速度非???。以下代碼取自網(wǎng)站,使用CURLPOST方法供參考。
  新浪微博短鏈接API文檔在老版本的開(kāi)發(fā)文檔中,但新版本沒(méi)有添加:
  function shortenSinaUrl($long_url){
$apiKey='1234567890';//這里是你申請的應用的API KEY,隨便寫(xiě)個(gè)應用名就會(huì )自動(dòng)分配給你
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandSinaUrl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_long;
}
  參考新浪微博的開(kāi)發(fā)文檔,推薦使用get方式獲取。代碼更簡(jiǎn)單
  function shorturl($long_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandurl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_long;
}
  好,容易嗎?
  調試上面代碼的時(shí)候,需要填寫(xiě)自己的API key,不然肯定拿不到。
  特別說(shuō)明:短地址服務(wù)現在只為經(jīng)過(guò)認證的APP KEY提供服務(wù),剛剛申請的APP KEY會(huì )提示沒(méi)有權限??梢允褂?09678993和3818214747這兩個(gè)KEY進(jìn)行測試。這兩個(gè)KEY的來(lái)源不明,不推薦用于生產(chǎn)。(感謝您的提醒)
  Jucelin 寫(xiě)了一個(gè)調試文檔,你可以測試一下:
  長(cháng)到短:://
  短到長(cháng)::///S4bLBm
  參數只有2個(gè),類(lèi)型:1表示長(cháng)轉短,2表示短轉長(cháng),后面的URL是目標域名,因為懶所以沒(méi)有錯誤判斷,新浪微博短地址不支持短地址和那么短地址是的,邏輯上應該是這樣控制的。(不信你可以試試)。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(weibo.sdk.android--這個(gè)是sina微博微博登陸認證的源碼)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 140 次瀏覽 ? 2021-11-01 20:07 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(weibo.sdk.android--這個(gè)是sina微博微博登陸認證的源碼)
  首先要告訴大家的是,新浪微博API項目已經(jīng)轉移到GitHub上,原來(lái)的Google Code()項目沒(méi)有更新。如果使用舊代碼運行登錄,會(huì )彈出網(wǎng)頁(yè)錯誤bug。最新地址在:
  界面也從之前的V1轉為V2。具體信息請參考:。但是如果你像我一樣從頭開(kāi)始,不用擔心,直接去github下載最新的SDK即可。
  下載源代碼后解壓:
  
  哎,本來(lái)不想關(guān)心各個(gè)文件夾在干什么的……不過(guò)想起博客的格言……還是有問(wèn)題,別偷懶,想問(wèn)題……
  weibo.sdk.android ---- 這是新浪微博登錄認證的源碼。它是一個(gè) Android Lib 項目。什么是ALP這里就不解釋了。同學(xué)們可以參考鏈接( )。
  weibo.sdk.android.api ---- 這是新浪微博交互界面的源碼,是一個(gè)ALP。
  weibo.sdk.androi.sso ---- 這是新浪微薄的SSO源碼。如果不了解SSO,請看百度百科:
  weibo.sdk.android.sso.demo ---- 最后一個(gè)是我們需要的Demo,我們可以在Eclipse中引入這個(gè)項目。
  凌亂的 Doc ---- 我猜它是在 linux 下寫(xiě)的還是什么?無(wú)論如何,這是技術(shù)文檔。新浪真是懶得開(kāi)發(fā)。本文檔中的某些內容不再有效,例如 Android 權限聲明。無(wú)論如何,請隨意看看。
  weibo.sdk.android.sso.jar ---- 這是你需要引入到自己項目中的jar包。
  在這個(gè)文章中,我們不談其他,只談?wù){用sina接口進(jìn)行登錄認證,其余功能請參考官方Demo。
  首先,我們創(chuàng )建一個(gè)Android項目,命名為L(cháng)oginTest
  創(chuàng )建布局文件:
  創(chuàng )建活動(dòng)并在其中放置一個(gè)按鈕。點(diǎn)擊按鈕后,會(huì )彈出新浪認證窗口。認證成功后,界面上會(huì )顯示認證文本。
  package com.example.logintest;
import java.text.SimpleDateFormat;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;
import com.weibo.sdk.android.WeiboAuthListener;
import com.weibo.sdk.android.WeiboDialogError;
import com.weibo.sdk.android.WeiboException;
public class MainActivity extends Activity {
private Weibo mWeibo;
private static final String CONSUMER_KEY = "966056985";// 替換為開(kāi)發(fā)者的appkey,例如"1646212860";
private static final String REDIRECT_URL = "http://www.sina.com";
public static Oauth2AccessToken accessToken;
private TextView mText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWeibo = Weibo.getInstance(CONSUMER_KEY, REDIRECT_URL);
Button btn = (Button) findViewById(R.id.button1);
mText = (TextView) findViewById(R.id.textView1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mWeibo.authorize(MainActivity.this, new AuthDialogListener());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class AuthDialogListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
MainActivity.accessToken = new Oauth2AccessToken(token, expires_in);
if (MainActivity.accessToken.isSessionValid()) {
String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(MainActivity.accessToken
.getExpiresTime()));
mText.setText("認證成功: \r\n access_token: " + token + "\r\n"
+ "expires_in: " + expires_in + "\r\n有效期:" + date);
try {
Class sso = Class
.forName("com.weibo.sdk.android.api.WeiboAPI");// 如果支持weiboapi的話(huà),顯示api功能演示入口按鈕
} catch (ClassNotFoundException e) {
// e.printStackTrace();
Log.i("H3c", "com.weibo.sdk.android.api.WeiboAPI not found");
}
AccessTokenKeeper.keepAccessToken(MainActivity.this,
accessToken);
Toast.makeText(MainActivity.this, "認證成功", Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onError(WeiboDialogError e) {
Toast.makeText(getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
}
  將使用 AccessTokenKeeper 對象。該對象用于存儲認證信息??梢詮腄emo中獲取,直接復制粘貼即可。
  最后,添加權限(那一團糟的描述。doc 有點(diǎn)錯誤):
  
  
  啊,就是這樣。
  一開(kāi)始,我在糾結那個(gè)新浪APP_KEY,也就是應用中的CONSUMER_KEY。我認為要獲得APPKEY,我必須上傳工作,但現在我還沒(méi)有做到。如何上傳?這是一個(gè)雞和蛋的Bug。后來(lái)想太多了!APPKEY的作用應該是在認證登錄時(shí)彈出的登錄框中顯示你的應用名稱(chēng)。比如Demo中顯示的是“新浪在你的掌中”。我們在開(kāi)發(fā)應用等的時(shí)候可以參考demo先做功能,等所有功能完成后,上傳APP獲取APPKEY,然后替換。
  這篇文章純粹是我今天的初步研究所寫(xiě)的。如有不對之處,請指出!
  最后附上新浪微薄的API:%E5%B9%B3%E5%8F%B0%E6%A6%82%E8%BF%B0 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(weibo.sdk.android--這個(gè)是sina微博微博登陸認證的源碼)
  首先要告訴大家的是,新浪微博API項目已經(jīng)轉移到GitHub上,原來(lái)的Google Code()項目沒(méi)有更新。如果使用舊代碼運行登錄,會(huì )彈出網(wǎng)頁(yè)錯誤bug。最新地址在:
  界面也從之前的V1轉為V2。具體信息請參考:。但是如果你像我一樣從頭開(kāi)始,不用擔心,直接去github下載最新的SDK即可。
  下載源代碼后解壓:
  
  哎,本來(lái)不想關(guān)心各個(gè)文件夾在干什么的……不過(guò)想起博客的格言……還是有問(wèn)題,別偷懶,想問(wèn)題……
  weibo.sdk.android ---- 這是新浪微博登錄認證的源碼。它是一個(gè) Android Lib 項目。什么是ALP這里就不解釋了。同學(xué)們可以參考鏈接( )。
  weibo.sdk.android.api ---- 這是新浪微博交互界面的源碼,是一個(gè)ALP。
  weibo.sdk.androi.sso ---- 這是新浪微薄的SSO源碼。如果不了解SSO,請看百度百科:
  weibo.sdk.android.sso.demo ---- 最后一個(gè)是我們需要的Demo,我們可以在Eclipse中引入這個(gè)項目。
  凌亂的 Doc ---- 我猜它是在 linux 下寫(xiě)的還是什么?無(wú)論如何,這是技術(shù)文檔。新浪真是懶得開(kāi)發(fā)。本文檔中的某些內容不再有效,例如 Android 權限聲明。無(wú)論如何,請隨意看看。
  weibo.sdk.android.sso.jar ---- 這是你需要引入到自己項目中的jar包。
  在這個(gè)文章中,我們不談其他,只談?wù){用sina接口進(jìn)行登錄認證,其余功能請參考官方Demo。
  首先,我們創(chuàng )建一個(gè)Android項目,命名為L(cháng)oginTest
  創(chuàng )建布局文件:
  創(chuàng )建活動(dòng)并在其中放置一個(gè)按鈕。點(diǎn)擊按鈕后,會(huì )彈出新浪認證窗口。認證成功后,界面上會(huì )顯示認證文本。
  package com.example.logintest;
import java.text.SimpleDateFormat;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;
import com.weibo.sdk.android.WeiboAuthListener;
import com.weibo.sdk.android.WeiboDialogError;
import com.weibo.sdk.android.WeiboException;
public class MainActivity extends Activity {
private Weibo mWeibo;
private static final String CONSUMER_KEY = "966056985";// 替換為開(kāi)發(fā)者的appkey,例如"1646212860";
private static final String REDIRECT_URL = "http://www.sina.com";
public static Oauth2AccessToken accessToken;
private TextView mText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWeibo = Weibo.getInstance(CONSUMER_KEY, REDIRECT_URL);
Button btn = (Button) findViewById(R.id.button1);
mText = (TextView) findViewById(R.id.textView1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mWeibo.authorize(MainActivity.this, new AuthDialogListener());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class AuthDialogListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
MainActivity.accessToken = new Oauth2AccessToken(token, expires_in);
if (MainActivity.accessToken.isSessionValid()) {
String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(MainActivity.accessToken
.getExpiresTime()));
mText.setText("認證成功: \r\n access_token: " + token + "\r\n"
+ "expires_in: " + expires_in + "\r\n有效期:" + date);
try {
Class sso = Class
.forName("com.weibo.sdk.android.api.WeiboAPI");// 如果支持weiboapi的話(huà),顯示api功能演示入口按鈕
} catch (ClassNotFoundException e) {
// e.printStackTrace();
Log.i("H3c", "com.weibo.sdk.android.api.WeiboAPI not found");
}
AccessTokenKeeper.keepAccessToken(MainActivity.this,
accessToken);
Toast.makeText(MainActivity.this, "認證成功", Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onError(WeiboDialogError e) {
Toast.makeText(getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
}
  將使用 AccessTokenKeeper 對象。該對象用于存儲認證信息??梢詮腄emo中獲取,直接復制粘貼即可。
  最后,添加權限(那一團糟的描述。doc 有點(diǎn)錯誤):
  
  
  啊,就是這樣。
  一開(kāi)始,我在糾結那個(gè)新浪APP_KEY,也就是應用中的CONSUMER_KEY。我認為要獲得APPKEY,我必須上傳工作,但現在我還沒(méi)有做到。如何上傳?這是一個(gè)雞和蛋的Bug。后來(lái)想太多了!APPKEY的作用應該是在認證登錄時(shí)彈出的登錄框中顯示你的應用名稱(chēng)。比如Demo中顯示的是“新浪在你的掌中”。我們在開(kāi)發(fā)應用等的時(shí)候可以參考demo先做功能,等所有功能完成后,上傳APP獲取APPKEY,然后替換。
  這篇文章純粹是我今天的初步研究所寫(xiě)的。如有不對之處,請指出!
  最后附上新浪微薄的API:%E5%B9%B3%E5%8F%B0%E6%A6%82%E8%BF%B0

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(8款國外開(kāi)源微博,搭建自己的微博輕松又簡(jiǎn)單)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 85 次瀏覽 ? 2021-10-30 09:21 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(8款國外開(kāi)源微博,搭建自己的微博輕松又簡(jiǎn)單)
  文章標簽文章分類(lèi) MySQL 數據庫
  ?版權歸作者所有:原創(chuàng ) 作品來(lái)自51CTO博主朗基江湖。如需轉載請注明出處,否則將追究法律責任
  輕松打造自己的“推特”微博平臺!開(kāi)源程序是免費的
  當推特風(fēng)靡全球,新浪微博主導的群博時(shí)代爆發(fā)時(shí),幾乎所有的SNS產(chǎn)品都采用微博作為標準配置。你也喜歡建立自己的微博嗎?
  自己開(kāi)發(fā)微博產(chǎn)品并不容易,但在分享精神遍及全球互聯(lián)網(wǎng)領(lǐng)域的今天,其中的秘訣是什么?自己建立一個(gè)虛假的“推特”微博。從網(wǎng)上搜集了十個(gè)開(kāi)源微博程序,手握這些開(kāi)源代碼,搭建自己的微博輕而易舉。
  如果你也有好的微博開(kāi)源程序,請給我留言。IT人的精神是:分享!
  先介紹兩條中文開(kāi)源微博:
  易話(huà)
  接口與飯否類(lèi)似,API接口與飯否相似?;赑HP和MySQL,點(diǎn)擊這里下載源代碼。
  網(wǎng)頁(yè)烹飪
  基于PHP和MySQL,支持與機外同步,點(diǎn)此下載源代碼。
  以下是8條國外開(kāi)源微博:
  齋庫
  Jaiku(演示地址)是一個(gè)基于Python的微博平臺。2007年被谷歌收購,之后并未成功運營(yíng)。不得不在 2009 年宣布暫停維護。 后來(lái),Google 將 Jaiku 完全開(kāi)源并進(jìn)行了切換。在 AppEngine 上運行。Jaiku 目前是完全開(kāi)源的,可供用戶(hù)免費下載??梢缘絁aiku源代碼項目地址,使用SVN工具下載其源代碼。
  Laconica/ StatusNet
  Laconica/StatusNet(演示地址)是一個(gè)基于PHP和MySQL的開(kāi)源微博系統。也是可以實(shí)現微博常用功能的推特克隆版。國外很多微博系統都是通過(guò)這個(gè)開(kāi)源系統搭建的。Laconica 得到了大量應用系統的支持,包括 Twitterfeed、Hellotxt 和 Gravity,它們已經(jīng)成熟穩定。單擊此處下載其源代碼。
  永克利
  Yonkly 是一個(gè)基于 Asp.Net 的開(kāi)源微博。除了開(kāi)源版本,它還擁有高級的獨立托管版本。
  弗洛波
  Floopo是一個(gè)基于PHP和MySQL的免費微博系統。它的功能與推特非常相似,并提供了強大的后臺管理系統。
  更甜
  Sweetter是一個(gè)基于Python的具有一定投票機制的開(kāi)源微博項目,點(diǎn)擊這里下載其源代碼。
  吉斯科
  Jisko 的界面與 Twitter 非常相似。它可以通過(guò) AJAX 自動(dòng)更新。它還基于 PHP 和 MySQL。這個(gè)系統可能是由西班牙人開(kāi)發(fā)的。使用 SVN 在此處下載其源代碼。
  P2 WordPress 主題
  Wordpress 主題的P2(PHP)是一個(gè)WordPress Twitter 主題,可以將您的WordPress 博客轉換為類(lèi)似Twitter 的微博系統。支持實(shí)時(shí)更新,發(fā)布的信息和評論無(wú)需刷新即可顯示。
  這十個(gè)開(kāi)源微薄中的一個(gè)永遠適合你。凡夫,推特對你來(lái)說(shuō)不再是個(gè)謎。
  上一篇:真正“徹底”將火狐(Maxthon)設置為默認瀏覽器 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(8款國外開(kāi)源微博,搭建自己的微博輕松又簡(jiǎn)單)
  文章標簽文章分類(lèi) MySQL 數據庫
  ?版權歸作者所有:原創(chuàng ) 作品來(lái)自51CTO博主朗基江湖。如需轉載請注明出處,否則將追究法律責任
  輕松打造自己的“推特”微博平臺!開(kāi)源程序是免費的
  當推特風(fēng)靡全球,新浪微博主導的群博時(shí)代爆發(fā)時(shí),幾乎所有的SNS產(chǎn)品都采用微博作為標準配置。你也喜歡建立自己的微博嗎?
  自己開(kāi)發(fā)微博產(chǎn)品并不容易,但在分享精神遍及全球互聯(lián)網(wǎng)領(lǐng)域的今天,其中的秘訣是什么?自己建立一個(gè)虛假的“推特”微博。從網(wǎng)上搜集了十個(gè)開(kāi)源微博程序,手握這些開(kāi)源代碼,搭建自己的微博輕而易舉。
  如果你也有好的微博開(kāi)源程序,請給我留言。IT人的精神是:分享!
  先介紹兩條中文開(kāi)源微博:
  易話(huà)
  接口與飯否類(lèi)似,API接口與飯否相似?;赑HP和MySQL,點(diǎn)擊這里下載源代碼。
  網(wǎng)頁(yè)烹飪
  基于PHP和MySQL,支持與機外同步,點(diǎn)此下載源代碼。
  以下是8條國外開(kāi)源微博:
  齋庫
  Jaiku(演示地址)是一個(gè)基于Python的微博平臺。2007年被谷歌收購,之后并未成功運營(yíng)。不得不在 2009 年宣布暫停維護。 后來(lái),Google 將 Jaiku 完全開(kāi)源并進(jìn)行了切換。在 AppEngine 上運行。Jaiku 目前是完全開(kāi)源的,可供用戶(hù)免費下載??梢缘絁aiku源代碼項目地址,使用SVN工具下載其源代碼。
  Laconica/ StatusNet
  Laconica/StatusNet(演示地址)是一個(gè)基于PHP和MySQL的開(kāi)源微博系統。也是可以實(shí)現微博常用功能的推特克隆版。國外很多微博系統都是通過(guò)這個(gè)開(kāi)源系統搭建的。Laconica 得到了大量應用系統的支持,包括 Twitterfeed、Hellotxt 和 Gravity,它們已經(jīng)成熟穩定。單擊此處下載其源代碼。
  永克利
  Yonkly 是一個(gè)基于 Asp.Net 的開(kāi)源微博。除了開(kāi)源版本,它還擁有高級的獨立托管版本。
  弗洛波
  Floopo是一個(gè)基于PHP和MySQL的免費微博系統。它的功能與推特非常相似,并提供了強大的后臺管理系統。
  更甜
  Sweetter是一個(gè)基于Python的具有一定投票機制的開(kāi)源微博項目,點(diǎn)擊這里下載其源代碼。
  吉斯科
  Jisko 的界面與 Twitter 非常相似。它可以通過(guò) AJAX 自動(dòng)更新。它還基于 PHP 和 MySQL。這個(gè)系統可能是由西班牙人開(kāi)發(fā)的。使用 SVN 在此處下載其源代碼。
  P2 WordPress 主題
  Wordpress 主題的P2(PHP)是一個(gè)WordPress Twitter 主題,可以將您的WordPress 博客轉換為類(lèi)似Twitter 的微博系統。支持實(shí)時(shí)更新,發(fā)布的信息和評論無(wú)需刷新即可顯示。
  這十個(gè)開(kāi)源微薄中的一個(gè)永遠適合你。凡夫,推特對你來(lái)說(shuō)不再是個(gè)謎。
  上一篇:真正“徹底”將火狐(Maxthon)設置為默認瀏覽器

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用API提交數據(發(fā)布一條微博信息)(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 78 次瀏覽 ? 2021-10-29 18:02 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用API提交數據(發(fā)布一條微博信息)(組圖))
  我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我把這個(gè)經(jīng)驗介紹給新手(高手不用看,當然,如果你能提出一些意見(jiàn)和建議,我非常感謝),我想和你交流。
  本例介紹如何使用API??提交數據(發(fā)微博)和使用API??獲取數據(獲取最新更新的20條公眾微博消息),即官方中的“獲取下行數據集(時(shí)間線(xiàn))接口” “微博訪(fǎng)問(wèn)接口”下的“Statuses/public_timeline獲取最新更新的公眾微博新聞”和“Statuses/update發(fā)布微博信息”API。
  首先,你必須有一個(gè)新浪微博賬號,并申請一個(gè)app key(詳情請參考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97)@ >,然后在VS中新建一個(gè)解決方案,在解決方案中添加一個(gè)類(lèi)庫和一個(gè)網(wǎng)站,并添加一個(gè)引用(網(wǎng)站引用類(lèi)庫)。
  
  由于發(fā)布微博是POST請求,獲取數據是GET請求,并且通過(guò)HTTP基本認證(Basic Authentication)授權,我把這些函數寫(xiě)在一個(gè)類(lèi)中(在類(lèi)庫中),代碼如下(該類(lèi)參考我沒(méi)有仔細考慮是否達到了普遍性):
  
  發(fā)送請求和授權碼
  然后在類(lèi)庫中創(chuàng )建兩個(gè)實(shí)體類(lèi)status和user,字段與官方API相同:
  
  狀態(tài)實(shí)體類(lèi)
  
  用戶(hù)實(shí)體類(lèi)
  好了,經(jīng)過(guò)上面的步驟,準備工作就完成了,現在可以調用API了,我們來(lái)看看發(fā)布一條微博消息。雖然在這個(gè)文章()中有介紹,但為了本文的完整性,我還是把它貼出來(lái)。我的代碼,在類(lèi)庫中添加了一個(gè)微博訪(fǎng)問(wèn)類(lèi)MiniBlogVisit類(lèi):
  
  微博訪(fǎng)問(wèn)
  您可以通過(guò)調用 update 方法發(fā)布微博。但是需要注意的是,這里的Content必須使用HttpUtility.UrlEncode進(jìn)行編碼,否則會(huì )出現亂碼。
  看20條已更新的公眾微博消息,為最新更新,這是官方API中的第一個(gè)接口。這里返回的是 XML 數據或 JSON 數據。您可以根據自己的喜好自由選擇。我選擇返回 XML 數據。我的方法是將返回的XML數據寫(xiě)入XML文件,然后解析XML文件。代碼如下:
  
  獲取數據代碼
  好的,現在它被調用了。調用比較簡(jiǎn)單,就是一個(gè)空的Default.aspx頁(yè)面。后臺代碼如下:
  
  呼叫代碼
  至此,所有的代碼都寫(xiě)完了,我們來(lái)看一下完整的解決方案:
  
  運行后效果如下:
  
  第一次調用API,也是第一次寫(xiě)這么長(cháng)的文章。歡迎大家多拍幾張?。?! 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用API提交數據(發(fā)布一條微博信息)(組圖))
  我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我把這個(gè)經(jīng)驗介紹給新手(高手不用看,當然,如果你能提出一些意見(jiàn)和建議,我非常感謝),我想和你交流。
  本例介紹如何使用API??提交數據(發(fā)微博)和使用API??獲取數據(獲取最新更新的20條公眾微博消息),即官方中的“獲取下行數據集(時(shí)間線(xiàn))接口” “微博訪(fǎng)問(wèn)接口”下的“Statuses/public_timeline獲取最新更新的公眾微博新聞”和“Statuses/update發(fā)布微博信息”API。
  首先,你必須有一個(gè)新浪微博賬號,并申請一個(gè)app key(詳情請參考%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97)@ >,然后在VS中新建一個(gè)解決方案,在解決方案中添加一個(gè)類(lèi)庫和一個(gè)網(wǎng)站,并添加一個(gè)引用(網(wǎng)站引用類(lèi)庫)。
  
  由于發(fā)布微博是POST請求,獲取數據是GET請求,并且通過(guò)HTTP基本認證(Basic Authentication)授權,我把這些函數寫(xiě)在一個(gè)類(lèi)中(在類(lèi)庫中),代碼如下(該類(lèi)參考我沒(méi)有仔細考慮是否達到了普遍性):
  
  發(fā)送請求和授權碼
  然后在類(lèi)庫中創(chuàng )建兩個(gè)實(shí)體類(lèi)status和user,字段與官方API相同:
  
  狀態(tài)實(shí)體類(lèi)
  
  用戶(hù)實(shí)體類(lèi)
  好了,經(jīng)過(guò)上面的步驟,準備工作就完成了,現在可以調用API了,我們來(lái)看看發(fā)布一條微博消息。雖然在這個(gè)文章()中有介紹,但為了本文的完整性,我還是把它貼出來(lái)。我的代碼,在類(lèi)庫中添加了一個(gè)微博訪(fǎng)問(wèn)類(lèi)MiniBlogVisit類(lèi):
  
  微博訪(fǎng)問(wèn)
  您可以通過(guò)調用 update 方法發(fā)布微博。但是需要注意的是,這里的Content必須使用HttpUtility.UrlEncode進(jìn)行編碼,否則會(huì )出現亂碼。
  看20條已更新的公眾微博消息,為最新更新,這是官方API中的第一個(gè)接口。這里返回的是 XML 數據或 JSON 數據。您可以根據自己的喜好自由選擇。我選擇返回 XML 數據。我的方法是將返回的XML數據寫(xiě)入XML文件,然后解析XML文件。代碼如下:
  
  獲取數據代碼
  好的,現在它被調用了。調用比較簡(jiǎn)單,就是一個(gè)空的Default.aspx頁(yè)面。后臺代碼如下:
  
  呼叫代碼
  至此,所有的代碼都寫(xiě)完了,我們來(lái)看一下完整的解決方案:
  
  運行后效果如下:
  
  第一次調用API,也是第一次寫(xiě)這么長(cháng)的文章。歡迎大家多拍幾張?。?!

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(python用python調用微博API項目實(shí)踐的相關(guān)內容嗎?)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 85 次瀏覽 ? 2021-10-29 17:22 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(python用python調用微博API項目實(shí)踐的相關(guān)內容嗎?)
  想知道python調用新浪微博API項目的相關(guān)內容嗎?在本文中,我將仔細講解調用新浪微博API的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。先重點(diǎn)介紹一下:python,新浪微博,API,一起來(lái)學(xué)習吧。
  因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
  SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
  如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
  要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。OAuth2授權參數除了app key和app secret外還需要網(wǎng)站回調地址redirect_uri,并且這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.0.0.1 好像不行),這著(zhù)實(shí)讓我著(zhù)急了好久。我沒(méi)有使用API??調用網(wǎng)站,所以查了很多??吹接腥藢?xiě)這個(gè)地址可以代替,我試了一下,成功了,這對Diosi來(lái)說(shuō)是個(gè)好消息。
  這是一個(gè)簡(jiǎn)單的程序來(lái)感受一下:
  設置以下參數
  
import sys
import weibo
import webbrowser
APP_KEY = ''
MY_APP_SECRET = ''
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html'
  獲取微博授權網(wǎng)址,如第二行,用默認瀏覽器打開(kāi)后,會(huì )要求登錄微博,用需要授權的賬號登錄,如下圖
  
api = weibo.APIClient(app_key=APP_KEY,app_secret=MY_APP_SECRET,redirect_uri=REDIRECT_URL)
authorize_url = api.get_authorize_url()
print(authorize_url)
webbrowser.open_new(authorize_url)
  
  登錄后會(huì )轉成一個(gè)連接
  key是code值,是認證的關(guān)鍵。手動(dòng)輸入code值模擬認證
  
request = api.request_access_token(code, REDIRECT_URL)
access_token = request.access_token
expires_in = request.expires_in
api.set_access_token(access_token, expires_in)
api.statuses.update.post(status=u'Test OAuth 2.0 Send a Weibo!')
  access_token是獲取到的token,expires_in是授權的過(guò)期時(shí)間(UNIX時(shí)間)
  使用 set_access_token 保存授權。然后就可以調用微博界面了。測試發(fā)了一條微博
  
  但是,這種手動(dòng)輸入代碼的方式并不適合程序調用。是否可以不打開(kāi)鏈接請求登錄并獲得授權?經(jīng)多方搜索參考,程序改進(jìn)如下,可自動(dòng)獲取并保存代碼,方便程序服務(wù)調用。
  
accessWeibo
# -*- coding: utf-8 -*-
#/usr/bin/env python
#access to SinaWeibo By sinaweibopy
#實(shí)現微博自動(dòng)登錄,token自動(dòng)生成,保存及更新
#適合于后端服務(wù)調用
from weibo import APIClient
import pymongo
import sys, os, urllib, urllib2
from http_helper import *
from retry import *
try:
import json
except ImportError:
import simplejson as json
# setting sys encoding to utf-8
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
# weibo api訪(fǎng)問(wèn)配置
APP_KEY = '' # app key
APP_SECRET = '' # app secret
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html' # callback url 授權回調頁(yè),與OAuth2.0 授權設置的一致
USERID = '' # 登陸的微博用戶(hù)名,必須是OAuth2.0 設置的測試賬號
USERPASSWD = '' # 用戶(hù)密碼
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
def make_access_token():
#請求access token
params = urllib.urlencode({
'action':'submit',
'withOfficalFlag':'0',
'ticket':'',
'isLoginSina':'',
'response_type':'code',
'regCallback':'',
'redirect_uri':REDIRECT_URL,
'client_id':APP_KEY,
'state':'',
'from':'',
'userId':USERID,
'passwd':USERPASSWD,
})
login_url = 'https://api.weibo.com/oauth2/authorize'
url = client.get_authorize_url()
content = urllib2.urlopen(url)
if content:
headers = { 'Referer' : url }
request = urllib2.Request(login_url, params, headers)
opener = get_opener(False)
urllib2.install_opener(opener)
try:
f = opener.open(request)
return_redirect_uri = f.url
except urllib2.HTTPError, e:
return_redirect_uri = e.geturl()
# 取到返回的code
code = return_redirect_uri.split('=')[1]
#得到token
token = client.request_access_token(code,REDIRECT_URL)
save_access_token(token)
def save_access_token(token):
#將access token保存到MongoDB數據庫
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
t={
"access_token":token['access_token'],
"expires_in":str(token['expires_in']),
"date":time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
}
db.token.insert(t,safe=True)
#Decorator 目的是當調用make_access_token()后再執行一次apply_access_token()
@retry(1)
def apply_access_token():
#從MongoDB讀取及設置access token
try:
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
if db.token.count()>0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
  
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
  
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv
  相關(guān)文章 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(python用python調用微博API項目實(shí)踐的相關(guān)內容嗎?)
  想知道python調用新浪微博API項目的相關(guān)內容嗎?在本文中,我將仔細講解調用新浪微博API的相關(guān)知識和一些代碼示例。歡迎閱讀和指正。先重點(diǎn)介紹一下:python,新浪微博,API,一起來(lái)學(xué)習吧。
  因為最近接觸到一個(gè)調用新浪微博開(kāi)放接口的項目,想嘗試用python調用微博API。
  SDK下載地址:代碼不超過(guò)十幾K,完全可以理解。
  如果你有微博賬號,你可以創(chuàng )建一個(gè)新的應用程序,然后你就可以得到應用程序密鑰和應用程序密鑰。這是應用獲得 OAuth2.0 授權所必需的。
  要了解OAuth2,可以查看鏈接新浪微博的說(shuō)明。OAuth2授權參數除了app key和app secret外還需要網(wǎng)站回調地址redirect_uri,并且這個(gè)回調地址不允許在局域網(wǎng)內(神馬localhost,127.0.0.1 好像不行),這著(zhù)實(shí)讓我著(zhù)急了好久。我沒(méi)有使用API??調用網(wǎng)站,所以查了很多??吹接腥藢?xiě)這個(gè)地址可以代替,我試了一下,成功了,這對Diosi來(lái)說(shuō)是個(gè)好消息。
  這是一個(gè)簡(jiǎn)單的程序來(lái)感受一下:
  設置以下參數
  
import sys
import weibo
import webbrowser
APP_KEY = ''
MY_APP_SECRET = ''
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html'
  獲取微博授權網(wǎng)址,如第二行,用默認瀏覽器打開(kāi)后,會(huì )要求登錄微博,用需要授權的賬號登錄,如下圖
  
api = weibo.APIClient(app_key=APP_KEY,app_secret=MY_APP_SECRET,redirect_uri=REDIRECT_URL)
authorize_url = api.get_authorize_url()
print(authorize_url)
webbrowser.open_new(authorize_url)
  
  登錄后會(huì )轉成一個(gè)連接
  key是code值,是認證的關(guān)鍵。手動(dòng)輸入code值模擬認證
  
request = api.request_access_token(code, REDIRECT_URL)
access_token = request.access_token
expires_in = request.expires_in
api.set_access_token(access_token, expires_in)
api.statuses.update.post(status=u'Test OAuth 2.0 Send a Weibo!')
  access_token是獲取到的token,expires_in是授權的過(guò)期時(shí)間(UNIX時(shí)間)
  使用 set_access_token 保存授權。然后就可以調用微博界面了。測試發(fā)了一條微博
  
  但是,這種手動(dòng)輸入代碼的方式并不適合程序調用。是否可以不打開(kāi)鏈接請求登錄并獲得授權?經(jīng)多方搜索參考,程序改進(jìn)如下,可自動(dòng)獲取并保存代碼,方便程序服務(wù)調用。
  
accessWeibo
# -*- coding: utf-8 -*-
#/usr/bin/env python
#access to SinaWeibo By sinaweibopy
#實(shí)現微博自動(dòng)登錄,token自動(dòng)生成,保存及更新
#適合于后端服務(wù)調用
from weibo import APIClient
import pymongo
import sys, os, urllib, urllib2
from http_helper import *
from retry import *
try:
import json
except ImportError:
import simplejson as json
# setting sys encoding to utf-8
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
# weibo api訪(fǎng)問(wèn)配置
APP_KEY = '' # app key
APP_SECRET = '' # app secret
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html' # callback url 授權回調頁(yè),與OAuth2.0 授權設置的一致
USERID = '' # 登陸的微博用戶(hù)名,必須是OAuth2.0 設置的測試賬號
USERPASSWD = '' # 用戶(hù)密碼
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
def make_access_token():
#請求access token
params = urllib.urlencode({
'action':'submit',
'withOfficalFlag':'0',
'ticket':'',
'isLoginSina':'',
'response_type':'code',
'regCallback':'',
'redirect_uri':REDIRECT_URL,
'client_id':APP_KEY,
'state':'',
'from':'',
'userId':USERID,
'passwd':USERPASSWD,
})
login_url = 'https://api.weibo.com/oauth2/authorize'
url = client.get_authorize_url()
content = urllib2.urlopen(url)
if content:
headers = { 'Referer' : url }
request = urllib2.Request(login_url, params, headers)
opener = get_opener(False)
urllib2.install_opener(opener)
try:
f = opener.open(request)
return_redirect_uri = f.url
except urllib2.HTTPError, e:
return_redirect_uri = e.geturl()
# 取到返回的code
code = return_redirect_uri.split('=')[1]
#得到token
token = client.request_access_token(code,REDIRECT_URL)
save_access_token(token)
def save_access_token(token):
#將access token保存到MongoDB數據庫
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
t={
"access_token":token['access_token'],
"expires_in":str(token['expires_in']),
"date":time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
}
db.token.insert(t,safe=True)
#Decorator 目的是當調用make_access_token()后再執行一次apply_access_token()
@retry(1)
def apply_access_token():
#從MongoDB讀取及設置access token
try:
mongoCon=pymongo.Connection(host="127.0.0.1",port=27017)
db= mongoCon.weibo
if db.token.count()>0:
tokenInfos=db.token.find().sort([("_id",pymongo.DESCENDING)]).limit(1)
else:
make_access_token()
return False
for tokenInfo in tokenInfos:
access_token=tokenInfo["access_token"]
expires_in=tokenInfo["expires_in"]
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token過(guò)期重新生成
make_access_token()
return False
else:
pass
except:
make_access_token()
return False
return True
if __name__ == "__main__":
apply_access_token()
# 以下為訪(fǎng)問(wèn)微博api的應用邏輯
# 以發(fā)布文字微博接口為例
client.statuses.update.post(status='Test OAuth 2.0 Send a Weibo!')
  
retry.py
import math
import time
# Retry decorator with exponential backoff
def retry(tries, delay=1, backoff=2):
"""Retries a function or method until it returns True.
delay sets the initial delay, and backoff sets how much the delay should
lengthen after each failure. backoff must be greater than 1, or else it
isn't really a backoff. tries must be at least 0, and delay greater than
0."""
if backoff decorated function
return deco_retry # @retry(arg[, ...]) -> true decorator
  
http_helper.py
# -*- coding: utf-8 -*-
#/usr/bin/env python
import urllib2,cookielib
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def http_error_302(cls, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(cls, req, fp, code, msg, headers)
result.status = code
print headers
return result
def get_cookie():
cookies = cookielib.CookieJar()
return urllib2.HTTPCookieProcessor(cookies)
def get_opener(proxy=False):
rv=urllib2.build_opener(get_cookie(), SmartRedirectHandler())
rv.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
return rv
  相關(guān)文章

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(1.微博三方登錄流程和獲取認證.2獲取流程)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 131 次瀏覽 ? 2021-10-29 17:21 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(1.微博三方登錄流程和獲取認證.2獲取流程)
  內容
  1. 微博三方登錄流程
  
  https://api.weibo.com/oauth2/authorize?
client_id=4122644977
&response_type=code
&state=study&
forcelogin=true&
redirect_uri=https%3A%2F%2Fstudy.163.com%2Fsns%2Fweibo%2FoAuthCallback.htm%3Foaut
hType%3Dlogin%26returnUrl%3DaHR0cHM6Ly9zdHVkeS4xNjMuY29tL3Byb3ZpZGVyLzQwMDAwMDAwM
DQ3ODAxMi9pbmRleC5odG0%2FZnJvbT1zdHVkeQ%3D%3D%26nrsstcw%3Dfalse%26nc%3Dtrue###
https://study.163.com/provider ... study
  1.1 從前端獲取認證碼1.2 獲取微博access_token1.3 獲取微博用戶(hù)基本信息并存入數據庫1.4 生成token to Vue2.第三方登錄與本地登錄的關(guān)聯(lián)(三種情況)2.1 情況一:沒(méi)有本地登錄,先登錄第三方
  這時(shí)候就相當于注冊了,只是拉取第三方信息注冊為本地用戶(hù),建立本地用戶(hù)和第三方用戶(hù)
  (Openid) 綁定關(guān)系
  2.2 情況二:本地未登錄,重新登錄第三方
  此時(shí)用戶(hù)已經(jīng)注冊了,獲取openid后可以直接找到對應的本地用戶(hù)
  2.3 案例三:本地登錄并綁定第三方
  這只需要將獲取到的openid綁定到本地用戶(hù)。
  3.Oauth 認證原理4.為什么要使用三方登錄 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(1.微博三方登錄流程和獲取認證.2獲取流程)
  內容
  1. 微博三方登錄流程
  
  https://api.weibo.com/oauth2/authorize?
client_id=4122644977
&response_type=code
&state=study&
forcelogin=true&
redirect_uri=https%3A%2F%2Fstudy.163.com%2Fsns%2Fweibo%2FoAuthCallback.htm%3Foaut
hType%3Dlogin%26returnUrl%3DaHR0cHM6Ly9zdHVkeS4xNjMuY29tL3Byb3ZpZGVyLzQwMDAwMDAwM
DQ3ODAxMi9pbmRleC5odG0%2FZnJvbT1zdHVkeQ%3D%3D%26nrsstcw%3Dfalse%26nc%3Dtrue###
https://study.163.com/provider ... study
  1.1 從前端獲取認證碼1.2 獲取微博access_token1.3 獲取微博用戶(hù)基本信息并存入數據庫1.4 生成token to Vue2.第三方登錄與本地登錄的關(guān)聯(lián)(三種情況)2.1 情況一:沒(méi)有本地登錄,先登錄第三方
  這時(shí)候就相當于注冊了,只是拉取第三方信息注冊為本地用戶(hù),建立本地用戶(hù)和第三方用戶(hù)
  (Openid) 綁定關(guān)系
  2.2 情況二:本地未登錄,重新登錄第三方
  此時(shí)用戶(hù)已經(jīng)注冊了,獲取openid后可以直接找到對應的本地用戶(hù)
  2.3 案例三:本地登錄并綁定第三方
  這只需要將獲取到的openid綁定到本地用戶(hù)。
  3.Oauth 認證原理4.為什么要使用三方登錄

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博直播新浪微博開(kāi)放平臺SDKforNet40+支持OAuth20)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 85 次瀏覽 ? 2021-10-28 10:11 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博直播新浪微博開(kāi)放平臺SDKforNet40+支持OAuth20)
  查看代碼 新浪微博開(kāi)放平臺使用的PHP SDK收錄DEMO SAESina App Engine,可以直接使用。SDK已內置,無(wú)需下載,使用前需要。微博開(kāi)放平臺基于微博的海量用戶(hù)和強大的問(wèn)答百科傳播能力,接入第三方合作伙伴服務(wù),為用戶(hù)提供建議。微博直播組件可以讓用戶(hù)在你的網(wǎng)站上實(shí)時(shí)討論熱點(diǎn)話(huà)題。用戶(hù)在此發(fā)布的微博將發(fā)布到微博模塊設置顯示標題欄顯示邊框顯示發(fā)布框設置主題多個(gè)主題。
  微博話(huà)題墻可以部署在任何支持HTML的網(wǎng)頁(yè)上,展示話(huà)題相關(guān)的微博公眾號和轉發(fā)熱榜,支持微博置頂。有基礎版和PK版兩個(gè)版本?;A版支持多主題的配置。支持的話(huà)。您的訪(fǎng)問(wèn)者可以點(diǎn)擊它,將您的內容分享到新浪微博,帶來(lái)更高回訪(fǎng)的關(guān)注按鈕,該按鈕可以部署在任何支持 ifarme 的網(wǎng)頁(yè)上。在這些網(wǎng)頁(yè)上點(diǎn)擊關(guān)注按鈕的用戶(hù)可以成為您的微博粉絲微博話(huà)題。我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我不需要給新手高手看這個(gè)經(jīng)驗了。
  
  
  歡迎測試新浪微博開(kāi)放平臺SDK for Net 40+支持OAuth20。新浪微博正式支持新版APISDK,并加入官方SDK下載列表。下載中提供了使用 Web 和 Winform 的示例。新浪科技訊 10月16日消息,由SSO授權的SSO微博開(kāi)放平臺近日正式上線(xiàn)。用戶(hù)只需登錄一次即可以普通微博用戶(hù)身份訪(fǎng)問(wèn)其他可信應用系統。關(guān)注新浪微博關(guān)注簡(jiǎn)體版設置簡(jiǎn)單,只需到新浪微博開(kāi)放平臺申請網(wǎng)站訪(fǎng)問(wèn)權注意簡(jiǎn)體版不提供技術(shù)支持,商業(yè)版不提供兼容簡(jiǎn)化版,
  微博直播
  新浪微博開(kāi)放平臺配備專(zhuān)業(yè)團隊,為開(kāi)發(fā)者提供360度全方位支持,服務(wù)涵蓋商業(yè)產(chǎn)品運營(yíng)技術(shù)四個(gè)層面。希望可以拓展更多優(yōu)質(zhì)的現場(chǎng)應用。官方數據顯示,新浪微博開(kāi)放平臺已經(jīng)吸引了數十萬(wàn)第三方開(kāi)發(fā)者,平臺上上傳了3500個(gè)應用程序,其中處于開(kāi)發(fā)或審核階段的應用程序有7萬(wàn)至8萬(wàn)個(gè)。在首屆互聯(lián)網(wǎng)公開(kāi)大會(huì )上,總經(jīng)理彭少斌表示,新浪微博將推出開(kāi)放游戲平臺,一年內不參與利潤分享。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博直播新浪微博開(kāi)放平臺SDKforNet40+支持OAuth20)
  查看代碼 新浪微博開(kāi)放平臺使用的PHP SDK收錄DEMO SAESina App Engine,可以直接使用。SDK已內置,無(wú)需下載,使用前需要。微博開(kāi)放平臺基于微博的海量用戶(hù)和強大的問(wèn)答百科傳播能力,接入第三方合作伙伴服務(wù),為用戶(hù)提供建議。微博直播組件可以讓用戶(hù)在你的網(wǎng)站上實(shí)時(shí)討論熱點(diǎn)話(huà)題。用戶(hù)在此發(fā)布的微博將發(fā)布到微博模塊設置顯示標題欄顯示邊框顯示發(fā)布框設置主題多個(gè)主題。
  微博話(huà)題墻可以部署在任何支持HTML的網(wǎng)頁(yè)上,展示話(huà)題相關(guān)的微博公眾號和轉發(fā)熱榜,支持微博置頂。有基礎版和PK版兩個(gè)版本?;A版支持多主題的配置。支持的話(huà)。您的訪(fǎng)問(wèn)者可以點(diǎn)擊它,將您的內容分享到新浪微博,帶來(lái)更高回訪(fǎng)的關(guān)注按鈕,該按鈕可以部署在任何支持 ifarme 的網(wǎng)頁(yè)上。在這些網(wǎng)頁(yè)上點(diǎn)擊關(guān)注按鈕的用戶(hù)可以成為您的微博粉絲微博話(huà)題。我也是新手,第一次使用開(kāi)放平臺進(jìn)行開(kāi)發(fā)。一開(kāi)始我覺(jué)得無(wú)處可去。經(jīng)過(guò)長(cháng)時(shí)間的摸索,終于成功調用了API?,F在我不需要給新手高手看這個(gè)經(jīng)驗了。
  
  
  歡迎測試新浪微博開(kāi)放平臺SDK for Net 40+支持OAuth20。新浪微博正式支持新版APISDK,并加入官方SDK下載列表。下載中提供了使用 Web 和 Winform 的示例。新浪科技訊 10月16日消息,由SSO授權的SSO微博開(kāi)放平臺近日正式上線(xiàn)。用戶(hù)只需登錄一次即可以普通微博用戶(hù)身份訪(fǎng)問(wèn)其他可信應用系統。關(guān)注新浪微博關(guān)注簡(jiǎn)體版設置簡(jiǎn)單,只需到新浪微博開(kāi)放平臺申請網(wǎng)站訪(fǎng)問(wèn)權注意簡(jiǎn)體版不提供技術(shù)支持,商業(yè)版不提供兼容簡(jiǎn)化版,
  微博直播
  新浪微博開(kāi)放平臺配備專(zhuān)業(yè)團隊,為開(kāi)發(fā)者提供360度全方位支持,服務(wù)涵蓋商業(yè)產(chǎn)品運營(yíng)技術(shù)四個(gè)層面。希望可以拓展更多優(yōu)質(zhì)的現場(chǎng)應用。官方數據顯示,新浪微博開(kāi)放平臺已經(jīng)吸引了數十萬(wàn)第三方開(kāi)發(fā)者,平臺上上傳了3500個(gè)應用程序,其中處于開(kāi)發(fā)或審核階段的應用程序有7萬(wàn)至8萬(wàn)個(gè)。在首屆互聯(lián)網(wǎng)公開(kāi)大會(huì )上,總經(jīng)理彭少斌表示,新浪微博將推出開(kāi)放游戲平臺,一年內不參與利潤分享。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何對網(wǎng)頁(yè)分享的樣式進(jìn)行自定義呢?(一))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 129 次瀏覽 ? 2021-10-27 22:21 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何對網(wǎng)頁(yè)分享的樣式進(jìn)行自定義呢?(一))
  寫(xiě)作背景:
  分享內容是用戶(hù)的常用操作,也是產(chǎn)品中常用的功能之一。在網(wǎng)站的一個(gè)設計中,正好涉及到分享功能,于是搜集了網(wǎng)上各種前輩資料,整理了APP和網(wǎng)頁(yè)的分享功能(所有信息來(lái)源基本都是通過(guò)鏈接標注出來(lái)的)。本文僅對共享的一般實(shí)現原理進(jìn)行說(shuō)明,不涉及具體的功能流程和實(shí)現代碼。如有不當之處,希望大家多多指教。
  一、在網(wǎng)絡(luò )上分享
  1臺PC網(wǎng)絡(luò )共享
  1.1 分享到微信
  PC網(wǎng)頁(yè)一般會(huì )生成網(wǎng)頁(yè)二維碼,用戶(hù)可以使用手機微信掃描二維碼,在微信瀏覽器中打開(kāi);打開(kāi)后,在微信內置瀏覽器中使用微信自帶的分享功能進(jìn)行分享。
  
  分享PC網(wǎng)頁(yè)到微信
  -----如何自定義分享風(fēng)格?
  使用微信內置瀏覽器進(jìn)行二次分享時(shí),會(huì )遇到一個(gè)問(wèn)題,就是無(wú)法顯示網(wǎng)頁(yè)的縮略圖,只能顯示默認的占位圖。那么如何自定義共享樣式呢?以下為官方微信解決方案:
  接入微信的JS-SDK(開(kāi)發(fā)者通過(guò)JavaScript代碼在網(wǎng)頁(yè)上使用微信原生功能的工具包)。使用微信內置瀏覽器分享時(shí),可以自定義網(wǎng)頁(yè)分享風(fēng)格(標題和圖片風(fēng)格)。這樣可以保證用戶(hù)在微信生態(tài)中進(jìn)行二次分享時(shí)有更好的分享效果。
  你可以參考這個(gè)文章
  【解決方案】微信網(wǎng)頁(yè)鏈接分享定制-黑子的開(kāi)發(fā)筆記-CSDN博客
  
  上圖為使用safari分享網(wǎng)頁(yè)到微信的樣式,下圖為使用微信瀏覽器二次分享網(wǎng)頁(yè)的樣式
  1.2 分享到微博、QQ
  與微信不同,微博和QQ從網(wǎng)頁(yè)發(fā)展而來(lái),對網(wǎng)頁(yè)分享有很好的支持。通過(guò)代碼將分享按鈕嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  具體方法請參考平臺官方文檔/sharebutton
  
  官方微博說(shuō)明
  2 移動(dòng)網(wǎng)絡(luò )共享
  移動(dòng)端可以使用瀏覽器自帶的分享功能;當然,為了保持與PC的統一,頁(yè)面中也可以加入分享功能。
  2.1 分享到微信
  移動(dòng)端一般會(huì )生成一個(gè)網(wǎng)頁(yè)鏈接,讓用戶(hù)復制鏈接,然后手動(dòng)分享(粘貼鏈接)到微信。效果比較差
  
  百度百科的微信分享風(fēng)格
  2.2 分享到微博、QQ
  和PC端沒(méi)有區別:分享按鈕通過(guò)代碼嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  
  分享到微博
  二、在A(yíng)PP中分享
  1 使用系統級分享插件
  iOS 提供系統級分享擴展分享插件,幫助系統與應用、應用、應用分享內容。App開(kāi)發(fā)者只需在開(kāi)發(fā)代碼中添加原生分享插件,在系統注冊后,即可通過(guò)Extension與系統和其他App(也注冊使用的擴展)分享內容(輸出、接受)。
  使用原生分享插件的好處是分享操作不需要進(jìn)入收錄APP(接受內容的APP),也不需要在應用之間來(lái)回跳轉;容納更多應用,更開(kāi)放;用戶(hù)可以根據自己的習慣自定義分享面板 收錄APP。
  詳情請參考這個(gè)文章iOS Share Extension分享機制
  
  要在 safari 中將網(wǎng)頁(yè)分享到微信,您可以使用本機分享插件。無(wú)需喚醒微信客戶(hù)端即可實(shí)現分享,不影響用戶(hù)操作的主流。
  2 使用自定義分享插件
  國內應用更符合自己的業(yè)務(wù)目標和業(yè)務(wù)需求,使用自定義分享插件。這時(shí)候就需要遵循所收錄的APP(接受內容的APP)的規范。以分享到微信為例。一般來(lái)說(shuō),通過(guò)集成微信SDK,調用微信接口,調用微信分享表(分享面板)進(jìn)行分享,然后返回給自己的應用。
  
  左圖為荔枝APP自定義分享面板。分享H5到微信時(shí),需要喚醒微信客戶(hù)端,分享后返回荔枝APP。
  -------官方微信分享說(shuō)明------
  微信分享采集是指第三方應用允許用戶(hù)通過(guò)訪(fǎng)問(wèn)該功能,將應用中的文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序分享到微信好友會(huì )話(huà)、朋友圈或添加到微信采集。
  微信分享和采集功能已向所有開(kāi)發(fā)者開(kāi)放。開(kāi)發(fā)者在微信開(kāi)放平臺賬號下申請App并審核通過(guò)后,即可獲得微信分享和采集權限。
  微信分享采集目前支持文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序六種類(lèi)型(海外應用支持網(wǎng)頁(yè)和小程序類(lèi)型分享)。開(kāi)發(fā)者在A(yíng)pp中集成微信SDK后,即可調用接口實(shí)現。
  -------------------------------------
  詳情請參考微信官方文檔
  /cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN
  但是目前微信已經(jīng)取消了分享結果的返回,所以我們無(wú)法再知道用戶(hù)是真的完成了分享還是中途離開(kāi)了。. .
  
  微信官方說(shuō)明
  結論:
  分享功能雖然經(jīng)常使用,但很容易被用戶(hù)和產(chǎn)品經(jīng)理忽略。以上簡(jiǎn)單梳理了APP和網(wǎng)頁(yè)的分享實(shí)現,很多細節有待進(jìn)一步研究和補充~ 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(如何對網(wǎng)頁(yè)分享的樣式進(jìn)行自定義呢?(一))
  寫(xiě)作背景:
  分享內容是用戶(hù)的常用操作,也是產(chǎn)品中常用的功能之一。在網(wǎng)站的一個(gè)設計中,正好涉及到分享功能,于是搜集了網(wǎng)上各種前輩資料,整理了APP和網(wǎng)頁(yè)的分享功能(所有信息來(lái)源基本都是通過(guò)鏈接標注出來(lái)的)。本文僅對共享的一般實(shí)現原理進(jìn)行說(shuō)明,不涉及具體的功能流程和實(shí)現代碼。如有不當之處,希望大家多多指教。
  一、在網(wǎng)絡(luò )上分享
  1臺PC網(wǎng)絡(luò )共享
  1.1 分享到微信
  PC網(wǎng)頁(yè)一般會(huì )生成網(wǎng)頁(yè)二維碼,用戶(hù)可以使用手機微信掃描二維碼,在微信瀏覽器中打開(kāi);打開(kāi)后,在微信內置瀏覽器中使用微信自帶的分享功能進(jìn)行分享。
  
  分享PC網(wǎng)頁(yè)到微信
  -----如何自定義分享風(fēng)格?
  使用微信內置瀏覽器進(jìn)行二次分享時(shí),會(huì )遇到一個(gè)問(wèn)題,就是無(wú)法顯示網(wǎng)頁(yè)的縮略圖,只能顯示默認的占位圖。那么如何自定義共享樣式呢?以下為官方微信解決方案:
  接入微信的JS-SDK(開(kāi)發(fā)者通過(guò)JavaScript代碼在網(wǎng)頁(yè)上使用微信原生功能的工具包)。使用微信內置瀏覽器分享時(shí),可以自定義網(wǎng)頁(yè)分享風(fēng)格(標題和圖片風(fēng)格)。這樣可以保證用戶(hù)在微信生態(tài)中進(jìn)行二次分享時(shí)有更好的分享效果。
  你可以參考這個(gè)文章
  【解決方案】微信網(wǎng)頁(yè)鏈接分享定制-黑子的開(kāi)發(fā)筆記-CSDN博客
  
  上圖為使用safari分享網(wǎng)頁(yè)到微信的樣式,下圖為使用微信瀏覽器二次分享網(wǎng)頁(yè)的樣式
  1.2 分享到微博、QQ
  與微信不同,微博和QQ從網(wǎng)頁(yè)發(fā)展而來(lái),對網(wǎng)頁(yè)分享有很好的支持。通過(guò)代碼將分享按鈕嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  具體方法請參考平臺官方文檔/sharebutton
  
  官方微博說(shuō)明
  2 移動(dòng)網(wǎng)絡(luò )共享
  移動(dòng)端可以使用瀏覽器自帶的分享功能;當然,為了保持與PC的統一,頁(yè)面中也可以加入分享功能。
  2.1 分享到微信
  移動(dòng)端一般會(huì )生成一個(gè)網(wǎng)頁(yè)鏈接,讓用戶(hù)復制鏈接,然后手動(dòng)分享(粘貼鏈接)到微信。效果比較差
  
  百度百科的微信分享風(fēng)格
  2.2 分享到微博、QQ
  和PC端沒(méi)有區別:分享按鈕通過(guò)代碼嵌入到網(wǎng)站中,用戶(hù)可以點(diǎn)擊按鈕調出微博/QQ登錄或分享頁(yè)面(網(wǎng)頁(yè)代替客戶(hù)端)
  
  分享到微博
  二、在A(yíng)PP中分享
  1 使用系統級分享插件
  iOS 提供系統級分享擴展分享插件,幫助系統與應用、應用、應用分享內容。App開(kāi)發(fā)者只需在開(kāi)發(fā)代碼中添加原生分享插件,在系統注冊后,即可通過(guò)Extension與系統和其他App(也注冊使用的擴展)分享內容(輸出、接受)。
  使用原生分享插件的好處是分享操作不需要進(jìn)入收錄APP(接受內容的APP),也不需要在應用之間來(lái)回跳轉;容納更多應用,更開(kāi)放;用戶(hù)可以根據自己的習慣自定義分享面板 收錄APP。
  詳情請參考這個(gè)文章iOS Share Extension分享機制
  
  要在 safari 中將網(wǎng)頁(yè)分享到微信,您可以使用本機分享插件。無(wú)需喚醒微信客戶(hù)端即可實(shí)現分享,不影響用戶(hù)操作的主流。
  2 使用自定義分享插件
  國內應用更符合自己的業(yè)務(wù)目標和業(yè)務(wù)需求,使用自定義分享插件。這時(shí)候就需要遵循所收錄的APP(接受內容的APP)的規范。以分享到微信為例。一般來(lái)說(shuō),通過(guò)集成微信SDK,調用微信接口,調用微信分享表(分享面板)進(jìn)行分享,然后返回給自己的應用。
  
  左圖為荔枝APP自定義分享面板。分享H5到微信時(shí),需要喚醒微信客戶(hù)端,分享后返回荔枝APP。
  -------官方微信分享說(shuō)明------
  微信分享采集是指第三方應用允許用戶(hù)通過(guò)訪(fǎng)問(wèn)該功能,將應用中的文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序分享到微信好友會(huì )話(huà)、朋友圈或添加到微信采集。
  微信分享和采集功能已向所有開(kāi)發(fā)者開(kāi)放。開(kāi)發(fā)者在微信開(kāi)放平臺賬號下申請App并審核通過(guò)后,即可獲得微信分享和采集權限。
  微信分享采集目前支持文字、圖片、音樂(lè )、視頻、網(wǎng)頁(yè)、小程序六種類(lèi)型(海外應用支持網(wǎng)頁(yè)和小程序類(lèi)型分享)。開(kāi)發(fā)者在A(yíng)pp中集成微信SDK后,即可調用接口實(shí)現。
  -------------------------------------
  詳情請參考微信官方文檔
  /cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN
  但是目前微信已經(jīng)取消了分享結果的返回,所以我們無(wú)法再知道用戶(hù)是真的完成了分享還是中途離開(kāi)了。. .
  
  微信官方說(shuō)明
  結論:
  分享功能雖然經(jīng)常使用,但很容易被用戶(hù)和產(chǎn)品經(jīng)理忽略。以上簡(jiǎn)單梳理了APP和網(wǎng)頁(yè)的分享實(shí)現,很多細節有待進(jìn)一步研究和補充~

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(靜態(tài)博客框架Hexo入門(mén),本文評論系統怎么做?)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 90 次瀏覽 ? 2021-10-27 22:20 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(靜態(tài)博客框架Hexo入門(mén),本文評論系統怎么做?)
  本文僅介紹如何基于github問(wèn)題實(shí)現第三方評論系統。對于 Hexo 的介紹,本文不打算贅述。如果有之前不了解Hexo的童鞋,可以看看之前的文章《Hexo介紹,一個(gè)靜態(tài)博客框架》,或者直接訪(fǎng)問(wèn)Hexo官網(wǎng)
  一、原因
  個(gè)人博客基于靜態(tài)博客系統(Hexo),沒(méi)有任何后端功能,如搜索和評論系統。不過(guò),如果想給靜態(tài)博客添加評論功能,也不是沒(méi)有可能。這時(shí)候就必須使用第三方評論系統。
  什么是第三方評論系統?博客或 cms 系統通常由兩部分組成:內容和評論。評論可以增加博主與用戶(hù)之間的互動(dòng),也是博主傳達思想和觀(guān)點(diǎn)的一對多交流平臺。所以除了社區平臺,評論也成為了一般博客和cms系統的必備功能。大型網(wǎng)站自己開(kāi)發(fā)評論系統和分享系統,一般中小網(wǎng)站自己開(kāi)發(fā)評論系統,成本高。而且垃圾評論和非法關(guān)鍵詞過(guò)濾比較困難,所以國內外都有第三方評論系統。以下是一些曾經(jīng)流行或現在流行的第三方評論系統。
  那么回到主題,市面上的第三方評論系統太多了,哪怕只有一兩個(gè)宕機了,選擇還是很多的。為什么要自己做一個(gè)?這不是造輪子嗎?其實(shí)剛開(kāi)始的時(shí)候,我話(huà)很多,心里也很高興。突然有一天我說(shuō)我掛了。沒(méi)有辦法。然后我選擇了另一個(gè),然后我將其更改為網(wǎng)易云。過(guò)了一會(huì )兒,網(wǎng)易云也死了。
  后來(lái)在網(wǎng)上搜了搜,發(fā)現居然有人用GitHub Issue做了一個(gè)評論系統。這無(wú)疑是一個(gè)非常好的想法,非常有創(chuàng )意。當然我也用過(guò),但總覺(jué)得有點(diǎn)難看,和自己博客的主題不符。只用了兩天,我就把它撤了。我打算自己做一個(gè)。就去做吧,程序員總喜歡造輪子。
  二、什么是 GitHub 問(wèn)題
  如果你經(jīng)常訪(fǎng)問(wèn)GitHub的童鞋,你應該知道這個(gè)功能。有人了解GitHub的問(wèn)題功能,就像TODO列表一樣。你可以把下一步想要完成的所有工作,比如功能添加、bug修復等,都寫(xiě)到一個(gè)issue里面,放在上面。它可以用作提醒或統一管理。此外,每個(gè)提交都可以有選擇地與一個(gè)問(wèn)題相關(guān)聯(lián)。例如,通過(guò)在消息中添加 #n,它可以與第 n 個(gè)問(wèn)題相關(guān)聯(lián)。詳情請參考知乎。其他人對“github問(wèn)題”做了什么?”答案。而這個(gè)博客的評論數據存儲issues倉庫地址是,倉庫里沒(méi)有托管代碼??傊?,如果我想用github Issues做一個(gè)評論系統,我實(shí)際上是把數據存儲在github issues .
  三、評論系統實(shí)現
  準備工作
  
  應用名稱(chēng):您的站點(diǎn)名稱(chēng);
  主頁(yè)網(wǎng)址:您的網(wǎng)站主頁(yè)鏈接;
  應用描述:站點(diǎn)描述;
  授權回調地址:GitHub授權成功后的返回地址
  創(chuàng )建成功后,會(huì )生成一個(gè)Client ID和一個(gè)Client Secret。
  GitHub 提供了很多方便第三方開(kāi)發(fā)的API。當然,添加、刪除、修改、檢查github問(wèn)題的API也在其中。有了這些API,你就可以執行各種技巧,比如我們現在要寫(xiě)的評論系統。此外,也有人懷疑我們是否應該“濫用”這些 API。不過(guò)我個(gè)人覺(jué)得GitHub既然提供了這些API,也就意味著(zhù)把這些權限開(kāi)放給大家,大家不要害怕“濫用”。那么,需要哪些API來(lái)滿(mǎn)足我們目前的需求,下面就讓我一一列舉,以我的賬號為例,jangdelong是Github名稱(chēng),blog_comments是倉庫名稱(chēng)。
  GET:獲取所有問(wèn)題信息
  GET:獲取問(wèn)題下的信息(11 是問(wèn)題編號)
  GET: comments 獲取問(wèn)題下的評論
  GET:獲取評論ID 111下的所有反應(反應包括[+1]、不喜歡[-1]、喜歡[心]等字段)
  POST:創(chuàng )建一個(gè)問(wèn)題
  POST:在問(wèn)題編號 11 下創(chuàng )建評論
  POST:在 ID 為 111 的評論下創(chuàng )建一個(gè)反應(例如心臟)
  POST:markdown語(yǔ)法解析接口
  整體設計
  流程圖:
   |--> 顯示已登錄
|--> 已登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
| |--> 其他
| |--> 評論操作 --> 成功/失敗 |
開(kāi)始 --> GitHub 授權登錄 ? --> | |--> 結束
| |--> 顯示未登錄 |
|--> 未登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
|--> 其他
|--> 評論操作 --> 提示未登錄狀態(tài)
  效果圖:
  
  因此,我們可以將評論系統分為列表(list)、評論框(box)、頂部登錄狀態(tài)欄(signbar)等部分。View部分的代碼組織為:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Renders = {
// 列表模塊
list: {
tpl: ...,
...
},
// 評論框模塊
box: {
tpl: ...,
...
},
// 頂部登錄狀態(tài)欄
signBar: {
tpl: ...,
...
},
... // 其他模塊視圖
};
...
})(JELON);
  將視圖部分的代碼整理好后,我們根據GitHub提供的各種API將其封裝在Requests中,整理如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Requests = {
// 根據 label 獲取 issue 編號
getIssueNumberByLabel: function () { ... },
// 創(chuàng )建 issue
createIssue: function () { ... },
// 根據 issue 編號獲取評論列表
getCommentListByIssueNumber: function () { ... },
// 根據評論 ID 獲取 reactions (即點(diǎn)贊數據)
getReactionsByCommentId: function () { ... },
// markdown 解析
markdown: function () { ... },
// 通過(guò) code 獲取 access_token
getAccessToken: function () { ... },
// 利用 access_token 去獲取 GitHub 用戶(hù)信息
getUserInfo: function () { ... },
// 創(chuàng )建評論
createComment: function () { ... },
// 創(chuàng )建 reactions (點(diǎn)贊)
createReaction: function () { ... }
};
...
})(JELON);
  下一步是封裝事件操作。我們將其封裝到 Actions 中。代碼組織如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Actions = {
// 初始加載,如列表、登錄狀態(tài)等
init: function () { ... },
// 登出操作
signOut: function () { ... },
// 列表翻頁(yè)跳轉
pageJump: function () { ... },
// 編輯預覽
editPreviewSwitch: function () { ... },
// 提交評論操作
postComment: function () { ... },
// 點(diǎn)贊操作
like: function () { ... }
};
...
})(JELON);
  程序入口:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Comment = function (options) {
JL.options = options || {};
$('comments').innerHTML = [
this.Renders.signBar.tpl,
this.Renders.box.tpl,
this.Renders.tips,
this.Renders.list.tpl
].join('');
JL.Actions.init();
};
...
})(JELON);
  登錄流程
  GitHub授權登錄是必不可少的功能,登錄后才能發(fā)表評論。 前面說(shuō)過(guò),GitHub授權登錄遵循OAuth2.0標準。下面是OAuth2.0的操作流程,讓我們更好的理解。
  
  那么,GitHub 授權登錄是如何按照這個(gè)標準進(jìn)行的呢?我們來(lái)簡(jiǎn)單介紹一下。如果想更詳細的了解,也可以訪(fǎng)問(wèn)GitHub官方文檔。
  用戶(hù)發(fā)起重定向請求授權服務(wù)器換取code
  `GET http://github.com/login/oauth/authorize`
  拿到code后,用client_id、client_secret和code兌換token_access。(上面的準備工作中提到了client_id和client_secret)
  `POST https://github.com/login/oauth/access_token`
  獲取token_access后,我們可以使用token_access獲取登錄用戶(hù)的信息
  `GET https://api.github.com/user`
  經(jīng)過(guò)以上3步,GitHub授權登錄就完成了。
  四、如何使用評論系統
  介紹評論系統相關(guān)的css和js。引入相關(guān)樣式和腳本后,在頁(yè)面中添加以下代碼:
  
JELON.Comment({
container: 'comments', // 評論框容器id或對象,留空是默認為 comments
label: '' || '', // 文章標簽
owner: '', // GitHub application 創(chuàng )建者
repo: '', // issue 所在倉庫名
clientId: '', // GitHub application client_id
clientSecret: '' // GitHub application client_secret
});
  由于這個(gè)評論系統要集成到個(gè)人主題中,所以應該配合hexo-theme-xups使用。hexo-theme-xups 的主題鏈接是最新的主題(帶GitHub登錄評論功能),后續會(huì )更新上來(lái),當然以后會(huì )持續更新優(yōu)化,歡迎多多star。五、遇到的問(wèn)題
  主要遇到三個(gè)問(wèn)題,一個(gè)是標簽權限的創(chuàng )建,一個(gè)是跨域問(wèn)題,一個(gè)是GitHub授權登錄兼容性問(wèn)題。
  創(chuàng )建標簽權限問(wèn)題(目前未解決)。標簽是文章和issue之間的鏈接,因為我們需要使用標簽來(lái)查詢(xún)issue號,以便后續的流程可以繼續?,F在遇到的問(wèn)題是,對于新的文章,只有自己賬號(GitHub Application)的創(chuàng )建者才能創(chuàng )建帶有標簽的issue。參考GitHub界面(POST /repos/:owner/:repo/issues)文檔,上面說(shuō)了
  > Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
  跨域問(wèn)題(暫時(shí)解決)。主要目的是交換 token_access POST 的代碼。這個(gè)接口是跨域的。臨時(shí)解決辦法是
  使用:///login/oauth/access_token 進(jìn)行轉發(fā)??矗?。GitHub授權登錄兼容性問(wèn)題(暫未解決)。經(jīng)過(guò)簡(jiǎn)單的測試,發(fā)現PC端的兼容性問(wèn)題主要是一些舊版本的瀏覽器,包括一些舊版本的谷歌瀏覽器(版本號55.x.xxxx.xx);而移動(dòng)端主要是UC瀏覽器,無(wú)法實(shí)現GitHub授權登錄。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(靜態(tài)博客框架Hexo入門(mén),本文評論系統怎么做?)
  本文僅介紹如何基于github問(wèn)題實(shí)現第三方評論系統。對于 Hexo 的介紹,本文不打算贅述。如果有之前不了解Hexo的童鞋,可以看看之前的文章《Hexo介紹,一個(gè)靜態(tài)博客框架》,或者直接訪(fǎng)問(wèn)Hexo官網(wǎng)
  一、原因
  個(gè)人博客基于靜態(tài)博客系統(Hexo),沒(méi)有任何后端功能,如搜索和評論系統。不過(guò),如果想給靜態(tài)博客添加評論功能,也不是沒(méi)有可能。這時(shí)候就必須使用第三方評論系統。
  什么是第三方評論系統?博客或 cms 系統通常由兩部分組成:內容和評論。評論可以增加博主與用戶(hù)之間的互動(dòng),也是博主傳達思想和觀(guān)點(diǎn)的一對多交流平臺。所以除了社區平臺,評論也成為了一般博客和cms系統的必備功能。大型網(wǎng)站自己開(kāi)發(fā)評論系統和分享系統,一般中小網(wǎng)站自己開(kāi)發(fā)評論系統,成本高。而且垃圾評論和非法關(guān)鍵詞過(guò)濾比較困難,所以國內外都有第三方評論系統。以下是一些曾經(jīng)流行或現在流行的第三方評論系統。
  那么回到主題,市面上的第三方評論系統太多了,哪怕只有一兩個(gè)宕機了,選擇還是很多的。為什么要自己做一個(gè)?這不是造輪子嗎?其實(shí)剛開(kāi)始的時(shí)候,我話(huà)很多,心里也很高興。突然有一天我說(shuō)我掛了。沒(méi)有辦法。然后我選擇了另一個(gè),然后我將其更改為網(wǎng)易云。過(guò)了一會(huì )兒,網(wǎng)易云也死了。
  后來(lái)在網(wǎng)上搜了搜,發(fā)現居然有人用GitHub Issue做了一個(gè)評論系統。這無(wú)疑是一個(gè)非常好的想法,非常有創(chuàng )意。當然我也用過(guò),但總覺(jué)得有點(diǎn)難看,和自己博客的主題不符。只用了兩天,我就把它撤了。我打算自己做一個(gè)。就去做吧,程序員總喜歡造輪子。
  二、什么是 GitHub 問(wèn)題
  如果你經(jīng)常訪(fǎng)問(wèn)GitHub的童鞋,你應該知道這個(gè)功能。有人了解GitHub的問(wèn)題功能,就像TODO列表一樣。你可以把下一步想要完成的所有工作,比如功能添加、bug修復等,都寫(xiě)到一個(gè)issue里面,放在上面。它可以用作提醒或統一管理。此外,每個(gè)提交都可以有選擇地與一個(gè)問(wèn)題相關(guān)聯(lián)。例如,通過(guò)在消息中添加 #n,它可以與第 n 個(gè)問(wèn)題相關(guān)聯(lián)。詳情請參考知乎。其他人對“github問(wèn)題”做了什么?”答案。而這個(gè)博客的評論數據存儲issues倉庫地址是,倉庫里沒(méi)有托管代碼??傊?,如果我想用github Issues做一個(gè)評論系統,我實(shí)際上是把數據存儲在github issues .
  三、評論系統實(shí)現
  準備工作
  
  應用名稱(chēng):您的站點(diǎn)名稱(chēng);
  主頁(yè)網(wǎng)址:您的網(wǎng)站主頁(yè)鏈接;
  應用描述:站點(diǎn)描述;
  授權回調地址:GitHub授權成功后的返回地址
  創(chuàng )建成功后,會(huì )生成一個(gè)Client ID和一個(gè)Client Secret。
  GitHub 提供了很多方便第三方開(kāi)發(fā)的API。當然,添加、刪除、修改、檢查github問(wèn)題的API也在其中。有了這些API,你就可以執行各種技巧,比如我們現在要寫(xiě)的評論系統。此外,也有人懷疑我們是否應該“濫用”這些 API。不過(guò)我個(gè)人覺(jué)得GitHub既然提供了這些API,也就意味著(zhù)把這些權限開(kāi)放給大家,大家不要害怕“濫用”。那么,需要哪些API來(lái)滿(mǎn)足我們目前的需求,下面就讓我一一列舉,以我的賬號為例,jangdelong是Github名稱(chēng),blog_comments是倉庫名稱(chēng)。
  GET:獲取所有問(wèn)題信息
  GET:獲取問(wèn)題下的信息(11 是問(wèn)題編號)
  GET: comments 獲取問(wèn)題下的評論
  GET:獲取評論ID 111下的所有反應(反應包括[+1]、不喜歡[-1]、喜歡[心]等字段)
  POST:創(chuàng )建一個(gè)問(wèn)題
  POST:在問(wèn)題編號 11 下創(chuàng )建評論
  POST:在 ID 為 111 的評論下創(chuàng )建一個(gè)反應(例如心臟)
  POST:markdown語(yǔ)法解析接口
  整體設計
  流程圖:
   |--> 顯示已登錄
|--> 已登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
| |--> 其他
| |--> 評論操作 --> 成功/失敗 |
開(kāi)始 --> GitHub 授權登錄 ? --> | |--> 結束
| |--> 顯示未登錄 |
|--> 未登錄 --> |--> 加載評論列表 --> 分頁(yè)加載
|--> 其他
|--> 評論操作 --> 提示未登錄狀態(tài)
  效果圖:
  
  因此,我們可以將評論系統分為列表(list)、評論框(box)、頂部登錄狀態(tài)欄(signbar)等部分。View部分的代碼組織為:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Renders = {
// 列表模塊
list: {
tpl: ...,
...
},
// 評論框模塊
box: {
tpl: ...,
...
},
// 頂部登錄狀態(tài)欄
signBar: {
tpl: ...,
...
},
... // 其他模塊視圖
};
...
})(JELON);
  將視圖部分的代碼整理好后,我們根據GitHub提供的各種API將其封裝在Requests中,整理如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Requests = {
// 根據 label 獲取 issue 編號
getIssueNumberByLabel: function () { ... },
// 創(chuàng )建 issue
createIssue: function () { ... },
// 根據 issue 編號獲取評論列表
getCommentListByIssueNumber: function () { ... },
// 根據評論 ID 獲取 reactions (即點(diǎn)贊數據)
getReactionsByCommentId: function () { ... },
// markdown 解析
markdown: function () { ... },
// 通過(guò) code 獲取 access_token
getAccessToken: function () { ... },
// 利用 access_token 去獲取 GitHub 用戶(hù)信息
getUserInfo: function () { ... },
// 創(chuàng )建評論
createComment: function () { ... },
// 創(chuàng )建 reactions (點(diǎn)贊)
createReaction: function () { ... }
};
...
})(JELON);
  下一步是封裝事件操作。我們將其封裝到 Actions 中。代碼組織如下:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Actions = {
// 初始加載,如列表、登錄狀態(tài)等
init: function () { ... },
// 登出操作
signOut: function () { ... },
// 列表翻頁(yè)跳轉
pageJump: function () { ... },
// 編輯預覽
editPreviewSwitch: function () { ... },
// 提交評論操作
postComment: function () { ... },
// 點(diǎn)贊操作
like: function () { ... }
};
...
})(JELON);
  程序入口:
  // 為了減少全局變量,整個(gè)網(wǎng)站就暴露一個(gè)全局變量 JELON
var JELON = JELON || {};
;(function (JL) {
...
JL.Comment = function (options) {
JL.options = options || {};
$('comments').innerHTML = [
this.Renders.signBar.tpl,
this.Renders.box.tpl,
this.Renders.tips,
this.Renders.list.tpl
].join('');
JL.Actions.init();
};
...
})(JELON);
  登錄流程
  GitHub授權登錄是必不可少的功能,登錄后才能發(fā)表評論。 前面說(shuō)過(guò),GitHub授權登錄遵循OAuth2.0標準。下面是OAuth2.0的操作流程,讓我們更好的理解。
  
  那么,GitHub 授權登錄是如何按照這個(gè)標準進(jìn)行的呢?我們來(lái)簡(jiǎn)單介紹一下。如果想更詳細的了解,也可以訪(fǎng)問(wèn)GitHub官方文檔。
  用戶(hù)發(fā)起重定向請求授權服務(wù)器換取code
  `GET http://github.com/login/oauth/authorize`
  拿到code后,用client_id、client_secret和code兌換token_access。(上面的準備工作中提到了client_id和client_secret)
  `POST https://github.com/login/oauth/access_token`
  獲取token_access后,我們可以使用token_access獲取登錄用戶(hù)的信息
  `GET https://api.github.com/user`
  經(jīng)過(guò)以上3步,GitHub授權登錄就完成了。
  四、如何使用評論系統
  介紹評論系統相關(guān)的css和js。引入相關(guān)樣式和腳本后,在頁(yè)面中添加以下代碼:
  
JELON.Comment({
container: 'comments', // 評論框容器id或對象,留空是默認為 comments
label: '' || '', // 文章標簽
owner: '', // GitHub application 創(chuàng )建者
repo: '', // issue 所在倉庫名
clientId: '', // GitHub application client_id
clientSecret: '' // GitHub application client_secret
});
  由于這個(gè)評論系統要集成到個(gè)人主題中,所以應該配合hexo-theme-xups使用。hexo-theme-xups 的主題鏈接是最新的主題(帶GitHub登錄評論功能),后續會(huì )更新上來(lái),當然以后會(huì )持續更新優(yōu)化,歡迎多多star。五、遇到的問(wèn)題
  主要遇到三個(gè)問(wèn)題,一個(gè)是標簽權限的創(chuàng )建,一個(gè)是跨域問(wèn)題,一個(gè)是GitHub授權登錄兼容性問(wèn)題。
  創(chuàng )建標簽權限問(wèn)題(目前未解決)。標簽是文章和issue之間的鏈接,因為我們需要使用標簽來(lái)查詢(xún)issue號,以便后續的流程可以繼續?,F在遇到的問(wèn)題是,對于新的文章,只有自己賬號(GitHub Application)的創(chuàng )建者才能創(chuàng )建帶有標簽的issue。參考GitHub界面(POST /repos/:owner/:repo/issues)文檔,上面說(shuō)了
  > Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
  跨域問(wèn)題(暫時(shí)解決)。主要目的是交換 token_access POST 的代碼。這個(gè)接口是跨域的。臨時(shí)解決辦法是
  使用:///login/oauth/access_token 進(jìn)行轉發(fā)??矗?。GitHub授權登錄兼容性問(wèn)題(暫未解決)。經(jīng)過(guò)簡(jiǎn)單的測試,發(fā)現PC端的兼容性問(wèn)題主要是一些舊版本的瀏覽器,包括一些舊版本的谷歌瀏覽器(版本號55.x.xxxx.xx);而移動(dòng)端主要是UC瀏覽器,無(wú)法實(shí)現GitHub授權登錄。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博api開(kāi)發(fā)內容一個(gè)整理和說(shuō)明,應用開(kāi)發(fā))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 81 次瀏覽 ? 2021-10-27 15:03 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博api開(kāi)發(fā)內容一個(gè)整理和說(shuō)明,應用開(kāi)發(fā))
  現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博API開(kāi)發(fā)資源比較大。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺。URL為: 收錄新浪微博開(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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是oauth授權。oauth授權的流程在新浪微博開(kāi)放平臺上做了清晰完整的介紹。我們你可以看看。這里我從實(shí)例開(kāi)發(fā)的角度進(jìn)行介紹和講解。
  1.首先獲取未授權的請求令牌
  復制代碼代碼如下:
  $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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼獲取未授權的請求令牌值,該值將存儲在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_session['keys'] = $keys;
  aurl = $o->getauthorizeurl( $keys['oauth_token'] ,false,'');
  獲取到未授權請求token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置會(huì )話(huà)密鑰的值,在下面獲取的授權訪(fǎng)問(wèn)令牌中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的訪(fǎng)問(wèn)令牌的值是無(wú)法獲取的。必須記住這一點(diǎn)。
  3.最終得到用戶(hù)授權的access token
  復制代碼代碼如下:
  $o = 新的 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ù)授權的訪(fǎng)問(wèn)令牌。一共有兩個(gè)值,存放在 $last_key 數組變量中。我們也可以看到最后兩個(gè)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種api函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; error:'.$msg['error']);
  返回假;
  }
  打印_r($msg);
  通常,我們在獲取到用戶(hù)授權的訪(fǎng)問(wèn)令牌的值后,將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化weiboclient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用json格式數據有先天優(yōu)勢,如果返回json格式數據,直接用php函數 json_decode() 可以轉換為 PHP 常用的數組格式。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博api開(kāi)發(fā)內容一個(gè)整理和說(shuō)明,應用開(kāi)發(fā))
  現在玩微博的人越來(lái)越多,關(guān)于微博的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博API開(kāi)發(fā)資源比較大。新浪微博為開(kāi)發(fā)者提供了一個(gè)平臺。URL為: 收錄新浪微博開(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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是oauth授權。oauth授權的流程在新浪微博開(kāi)放平臺上做了清晰完整的介紹。我們你可以看看。這里我從實(shí)例開(kāi)發(fā)的角度進(jìn)行介紹和講解。
  1.首先獲取未授權的請求令牌
  復制代碼代碼如下:
  $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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼獲取未授權的請求令牌值,該值將存儲在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_session['keys'] = $keys;
  aurl = $o->getauthorizeurl( $keys['oauth_token'] ,false,'');
  獲取到未授權請求token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置會(huì )話(huà)密鑰的值,在下面獲取的授權訪(fǎng)問(wèn)令牌中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的訪(fǎng)問(wèn)令牌的值是無(wú)法獲取的。必須記住這一點(diǎn)。
  3.最終得到用戶(hù)授權的access token
  復制代碼代碼如下:
  $o = 新的 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ù)授權的訪(fǎng)問(wèn)令牌。一共有兩個(gè)值,存放在 $last_key 數組變量中。我們也可以看到最后兩個(gè)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種api函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; error:'.$msg['error']);
  返回假;
  }
  打印_r($msg);
  通常,我們在獲取到用戶(hù)授權的訪(fǎng)問(wèn)令牌的值后,將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化weiboclient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用json格式數據有先天優(yōu)勢,如果返回json格式數據,直接用php函數 json_decode() 可以轉換為 PHP 常用的數組格式。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API研究研究實(shí)現發(fā)布微博功能的授權認證)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 70 次瀏覽 ? 2021-10-24 00:08 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API研究研究實(shí)現發(fā)布微博功能的授權認證)
  本文文章主要介紹Java使用新浪微博API通過(guò)賬號密碼登錄微博的例子。一般來(lái)說(shuō),第三方app使用OAuth授權鑒權,然后跳轉。賬號方式更自由,有需要的朋友可以參考
  今天發(fā)表了一篇關(guān)于新浪微博API的研究,現在已經(jīng)實(shí)現了發(fā)布微博的功能,包括帶圖片的微博。為安全起見(jiàn),新浪微博API不提供微博賬號密碼登錄功能。相反,它使用 OAuth 授權。用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)新浪網(wǎng)站進(jìn)行登錄,登錄成功后,瀏覽器將key和secret返回給程序。
  主文件:
  一個(gè)登錄按鈕、一個(gè)輸入框和一個(gè)發(fā)布按鈕
  因為要接收瀏覽器返回的數據,所以AndroidManifest.xml在注冊Activity的時(shí)候必須添加一個(gè)Intent-Filter
  意圖過(guò)濾器必須分兩部分編寫(xiě)。如果寫(xiě)在一起,就不能啟動(dòng)。
  為簡(jiǎn)單起見(jiàn),直接復制新浪示例中的OAuthConstant類(lèi):
   package weibo4android.androidexamples; import weibo4android.Weibo; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; public class OAuthConstant { private static Weibo weibo=null; private static OAuthConstant instance=null; private RequestToken requestToken; private AccessToken accessToken; private String token; private String tokenSecret; private OAuthConstant(){}; public static synchronized OAuthConstant getInstance(){ if(instance==null) instance= new OAuthConstant(); return instance; } public Weibo getWeibo(){ if(weibo==null) weibo= new Weibo(); return weibo; } public AccessToken getAccessToken() { return accessToken; } public void setAccessToken(AccessToken accessToken) { this.accessToken = accessToken; this.token=accessToken.getToken(); this.tokenSecret=accessToken.getTokenSecret(); } public RequestToken getRequestToken() { return requestToken; } public void setRequestToken(RequestToken requestToken) { this.requestToken = requestToken; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getTokenSecret() { return tokenSecret; } public void setTokenSecret(String tokenSecret) { this.tokenSecret = tokenSecret; } }
  接下來(lái)是最關(guān)鍵的主程序:
   package com.pocketdigi.weibo; import java.io.File; import weibo4android.Weibo; import weibo4android.WeiboException; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Main extends Activity { /** Called when the activity is first created. */ String key = "", secret = ""; Button login,send; EditText status; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.setProperty("weibo4j.oauth.consumerKey", "3997936609"); System.setProperty("weibo4j.oauth.consumerSecret", "8bc9e3bfd6ae8e3b2b8bda9079918950"); //設置在新浪應用開(kāi)放平臺申請的應用的key和secret login=(Button)findViewById(R.id.login); send=(Button)findViewById(R.id.send); status=(EditText)findViewById(R.id.status); login.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub login(); //登錄 }}); send.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String text=String.valueOf(status.getText()); Weibo weibo = new Weibo(); weibo.setToken(key,secret); try { //weibo.updateStatus(text); //只發(fā)文字 File f=new File("/sdcard/wallpaper/129567208597069400.jpg"); weibo.uploadStatus(text,f ); //發(fā)文字+圖片,這里需要導入commons-httpclient-3.0.1.jar,自己網(wǎng)上下 //在實(shí)際項目上,最好放Thread里,因為按下去的時(shí)候按鈕會(huì )卡 } catch (WeiboException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); //啟動(dòng)時(shí)執行檢測是否來(lái)自網(wǎng)頁(yè)登錄返回 //如果是,獲取key和secret //否則讀取SharedPreferences //若得不到key和secret,直接跳轉登錄 Uri uri = this.getIntent().getData(); if (uri != null) { //如果是瀏覽器返回 try { RequestToken requestToken = OAuthConstant.getInstance() .getRequestToken(); AccessToken accessToken = requestToken.getAccessToken(uri .getQueryParameter("oauth_verifier")); OAuthConstant.getInstance().setAccessToken(accessToken); // 保存 Editor sharedata = getSharedPreferences("WeiBo", 0).edit(); sharedata.putString("key", accessToken.getToken()); sharedata.putString("secret", accessToken.getTokenSecret()); sharedata.commit(); key = accessToken.getToken(); secret = accessToken.getTokenSecret(); } catch (WeiboException e) { e.printStackTrace(); } } else { //如果是用戶(hù)自己?jiǎn)?dòng) SharedPreferences settings = getSharedPreferences("WeiBo", 0); key = settings.getString("key", ""); secret = settings.getString("secret", ""); } if (key.equals("") || secret.equals("")) { Toast.makeText(this, "尚未登錄", Toast.LENGTH_LONG).show(); login(); //跳轉到瀏覽器登錄 } } public void login(){ Weibo weibo = OAuthConstant.getInstance().getWeibo(); RequestToken requestToken; try { requestToken =weibo.getOAuthRequestToken("sina://weibo"); //為了避免與同類(lèi)應用沖突,還是自己改下URI吧 Uri uri2 = Uri.parse(requestToken.getAuthenticationURL()+ "&from=xweibo"); OAuthConstant.getInstance().setRequestToken(requestToken); startActivity(new Intent(Intent.ACTION_VIEW, uri2)); } catch (WeiboException e) { e.printStackTrace(); } } }
  發(fā)送圖片需要導入commons-httpclient-3.0.1.jar,否則會(huì )報啟動(dòng)錯誤,當然是weibo4android-1.2.@ >0.jar 是不可接受的 Less
  以上是Java使用新浪微博API通過(guò)賬號密碼登錄微博實(shí)例的詳細內容。更多詳情請關(guān)注html中文網(wǎng)站其他相關(guān)文章! 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博API研究研究實(shí)現發(fā)布微博功能的授權認證)
  本文文章主要介紹Java使用新浪微博API通過(guò)賬號密碼登錄微博的例子。一般來(lái)說(shuō),第三方app使用OAuth授權鑒權,然后跳轉。賬號方式更自由,有需要的朋友可以參考
  今天發(fā)表了一篇關(guān)于新浪微博API的研究,現在已經(jīng)實(shí)現了發(fā)布微博的功能,包括帶圖片的微博。為安全起見(jiàn),新浪微博API不提供微博賬號密碼登錄功能。相反,它使用 OAuth 授權。用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)新浪網(wǎng)站進(jìn)行登錄,登錄成功后,瀏覽器將key和secret返回給程序。
  主文件:
  一個(gè)登錄按鈕、一個(gè)輸入框和一個(gè)發(fā)布按鈕
  因為要接收瀏覽器返回的數據,所以AndroidManifest.xml在注冊Activity的時(shí)候必須添加一個(gè)Intent-Filter
  意圖過(guò)濾器必須分兩部分編寫(xiě)。如果寫(xiě)在一起,就不能啟動(dòng)。
  為簡(jiǎn)單起見(jiàn),直接復制新浪示例中的OAuthConstant類(lèi):
   package weibo4android.androidexamples; import weibo4android.Weibo; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; public class OAuthConstant { private static Weibo weibo=null; private static OAuthConstant instance=null; private RequestToken requestToken; private AccessToken accessToken; private String token; private String tokenSecret; private OAuthConstant(){}; public static synchronized OAuthConstant getInstance(){ if(instance==null) instance= new OAuthConstant(); return instance; } public Weibo getWeibo(){ if(weibo==null) weibo= new Weibo(); return weibo; } public AccessToken getAccessToken() { return accessToken; } public void setAccessToken(AccessToken accessToken) { this.accessToken = accessToken; this.token=accessToken.getToken(); this.tokenSecret=accessToken.getTokenSecret(); } public RequestToken getRequestToken() { return requestToken; } public void setRequestToken(RequestToken requestToken) { this.requestToken = requestToken; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getTokenSecret() { return tokenSecret; } public void setTokenSecret(String tokenSecret) { this.tokenSecret = tokenSecret; } }
  接下來(lái)是最關(guān)鍵的主程序:
   package com.pocketdigi.weibo; import java.io.File; import weibo4android.Weibo; import weibo4android.WeiboException; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Main extends Activity { /** Called when the activity is first created. */ String key = "", secret = ""; Button login,send; EditText status; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.setProperty("weibo4j.oauth.consumerKey", "3997936609"); System.setProperty("weibo4j.oauth.consumerSecret", "8bc9e3bfd6ae8e3b2b8bda9079918950"); //設置在新浪應用開(kāi)放平臺申請的應用的key和secret login=(Button)findViewById(R.id.login); send=(Button)findViewById(R.id.send); status=(EditText)findViewById(R.id.status); login.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub login(); //登錄 }}); send.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String text=String.valueOf(status.getText()); Weibo weibo = new Weibo(); weibo.setToken(key,secret); try { //weibo.updateStatus(text); //只發(fā)文字 File f=new File("/sdcard/wallpaper/129567208597069400.jpg"); weibo.uploadStatus(text,f ); //發(fā)文字+圖片,這里需要導入commons-httpclient-3.0.1.jar,自己網(wǎng)上下 //在實(shí)際項目上,最好放Thread里,因為按下去的時(shí)候按鈕會(huì )卡 } catch (WeiboException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); //啟動(dòng)時(shí)執行檢測是否來(lái)自網(wǎng)頁(yè)登錄返回 //如果是,獲取key和secret //否則讀取SharedPreferences //若得不到key和secret,直接跳轉登錄 Uri uri = this.getIntent().getData(); if (uri != null) { //如果是瀏覽器返回 try { RequestToken requestToken = OAuthConstant.getInstance() .getRequestToken(); AccessToken accessToken = requestToken.getAccessToken(uri .getQueryParameter("oauth_verifier")); OAuthConstant.getInstance().setAccessToken(accessToken); // 保存 Editor sharedata = getSharedPreferences("WeiBo", 0).edit(); sharedata.putString("key", accessToken.getToken()); sharedata.putString("secret", accessToken.getTokenSecret()); sharedata.commit(); key = accessToken.getToken(); secret = accessToken.getTokenSecret(); } catch (WeiboException e) { e.printStackTrace(); } } else { //如果是用戶(hù)自己?jiǎn)?dòng) SharedPreferences settings = getSharedPreferences("WeiBo", 0); key = settings.getString("key", ""); secret = settings.getString("secret", ""); } if (key.equals("") || secret.equals("")) { Toast.makeText(this, "尚未登錄", Toast.LENGTH_LONG).show(); login(); //跳轉到瀏覽器登錄 } } public void login(){ Weibo weibo = OAuthConstant.getInstance().getWeibo(); RequestToken requestToken; try { requestToken =weibo.getOAuthRequestToken("sina://weibo"); //為了避免與同類(lèi)應用沖突,還是自己改下URI吧 Uri uri2 = Uri.parse(requestToken.getAuthenticationURL()+ "&from=xweibo"); OAuthConstant.getInstance().setRequestToken(requestToken); startActivity(new Intent(Intent.ACTION_VIEW, uri2)); } catch (WeiboException e) { e.printStackTrace(); } } }
  發(fā)送圖片需要導入commons-httpclient-3.0.1.jar,否則會(huì )報啟動(dòng)錯誤,當然是weibo4android-1.2.@ >0.jar 是不可接受的 Less
  以上是Java使用新浪微博API通過(guò)賬號密碼登錄微博實(shí)例的詳細內容。更多詳情請關(guān)注html中文網(wǎng)站其他相關(guān)文章!

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 更好預置多個(gè)云服務(wù)系統權限管理專(zhuān)家的工作流程(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 134 次瀏覽 ? 2021-10-23 20:13 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
更好預置多個(gè)云服務(wù)系統權限管理專(zhuān)家的工作流程(組圖))
  
  統一身份認證服務(wù)(Identity and Access Management,簡(jiǎn)稱(chēng)IAM)為您打造專(zhuān)屬的權限管理專(zhuān)家。幫助您為每個(gè)員工創(chuàng )建獨立的用戶(hù)名和密碼,避免密碼共享帶來(lái)的安全風(fēng)險。同時(shí),合理配置這些資源的使用權限,滿(mǎn)足您對用戶(hù)權限的安全管控要求。為了幫助您更好地管理權限,IAM預設了多個(gè)云服務(wù)系統權限。如果系統權限不能滿(mǎn)足您的要求,您還可以創(chuàng )建自定義策略來(lái)確保精細的權限管理。華為云權限管理,我們專(zhuān)業(yè)!
  下面通過(guò)一個(gè)簡(jiǎn)單的例子,詳細向您展示如何在權限管理專(zhuān)家的幫助下更好地管理和控制華為云資源。
  A公司的賬戶(hù)擁有多個(gè)華為云資源,圖1所示的各個(gè)職能團隊需要被授予相應的資源使用權限。在IAM中,為每個(gè)團隊設置權限,以實(shí)現團隊之間的權限分離,員工各司其職。
  圖1 A公司人員結構
  
  表1 權限分布
  
  權限管理流程
  了解了公司架構和各職能團隊需要配置的權限后,就該讓權限管理專(zhuān)家上臺了。下面以愛(ài)麗絲作為安全管理團隊的一員,配置“華北-北京4”區域的Anti-DDoS和AAD服務(wù)的所有執行權限為例,給大家展示一個(gè)權限管理專(zhuān)家的工作流程.
  圖1 權限管理流程圖
  
  第一步:創(chuàng )建用戶(hù)組并授權
  據了解,該公司有五個(gè)職能團隊,管理組(admin)由IAM預設。管理組中的用戶(hù)可以幫助該帳戶(hù)創(chuàng )建其他用戶(hù)組。以下是我們的管理員幫助創(chuàng )建用戶(hù)組并對其進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)組”>頁(yè)面右上角的“創(chuàng )建用戶(hù)組”,輸入用戶(hù)組名稱(chēng)為“安全管理團隊”和描述(可選) ),點(diǎn)擊“確定”完成用戶(hù)組的創(chuàng )建。
  
  在上圖所示的用戶(hù)組列表中,點(diǎn)擊用戶(hù)組名稱(chēng)右側的“權限配置”,進(jìn)入用戶(hù)組詳情頁(yè)面。單擊“權限管理”選項卡下的“配置權限”。
  
  在用戶(hù)組授權頁(yè)面,選擇權限范圍“區域項目>cn-north-4[華北-北京四]”,選擇需要的權限“防DDoS管理員”和“CAD管理員”,點(diǎn)擊“確定”完成用戶(hù)組授權。
  
  用戶(hù)組創(chuàng )建并授權后,您可以在用戶(hù)組列表中查看創(chuàng )建的用戶(hù)組,在用戶(hù)組詳情頁(yè)面查看授予用戶(hù)組的權限。
  第 2 步:創(chuàng )建 IAM 用戶(hù)并加入用戶(hù)組
  創(chuàng )建用戶(hù)組后,管理員需要為每個(gè)員工創(chuàng )建一個(gè)IAM用戶(hù),并將其添加到相應的用戶(hù)組中。將用戶(hù)添加到用戶(hù)組,該用戶(hù)將擁有該用戶(hù)組的權限。這個(gè)過(guò)程是對用戶(hù)進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)”>頁(yè)面右上角的“創(chuàng )建用戶(hù)”。
  
  輸入用戶(hù)名“Alice”、郵箱地址、手機號碼(可選)、描述(可選),選擇“華為云管理控制臺訪(fǎng)問(wèn)”>“首次登錄時(shí)設置”,開(kāi)啟登錄保護,點(diǎn)擊“下一步”。
  
  闡明:
  如果開(kāi)發(fā)團隊的Keith和Kelly需要通過(guò)API調用訪(fǎng)問(wèn)華為云,訪(fǎng)問(wèn)方式可以是“程序化訪(fǎng)問(wèn)”。想了解更多請戳→
  3. 選擇“安全管理團隊”,點(diǎn)擊“創(chuàng )建用戶(hù)”,完成IAM用戶(hù)授權。
  第 3 步:IAM 用戶(hù)登錄
  完成以上步驟后,Alice就擁有了自己的華為云專(zhuān)屬通行證,只允許她訪(fǎng)問(wèn)“華北-北京4”區域的Anti-DDoS和AAD服務(wù)。最后,請愛(ài)麗絲登錄華為云,開(kāi)啟華為云的精彩之旅!
  在華為云登錄頁(yè)面,點(diǎn)擊登錄下的“IAM用戶(hù)登錄”。在“IAM用戶(hù)登錄”頁(yè)面,輸入賬號名、用戶(hù)名/郵箱和密碼,點(diǎn)擊“登錄”登錄華為云。
  
  切換區域為【華北-北京4】,Alice可以訪(fǎng)問(wèn)DDoS服務(wù)(Anti-DDoS)、DDoS高防服務(wù)(AAD),為項目安全保駕護航。
  
  至此,正確的管理專(zhuān)家能否“離開(kāi)”?不,他會(huì )一直堅守崗位!
  當您需要更改用戶(hù)權限時(shí),您可以通過(guò)用戶(hù)組添加/刪除用戶(hù)。
  當您需要更改用戶(hù)組權限時(shí),您可以這樣做。
  當需要取消用戶(hù)組的權限時(shí),可以通過(guò)刪除該用戶(hù)組的權限來(lái)實(shí)現。
  解決方案多于問(wèn)題
  如果管理員在IAM控制臺為IAM用戶(hù)設置了權限,IAM用戶(hù)登錄后發(fā)現權限沒(méi)有生效,請繼續往下看。
  可能原因一:管理員授予的權限有依賴(lài)角色,且依賴(lài)角色沒(méi)有同步設置,導致權限不生效。角色的依賴(lài)請參考:系統權限。
  解決方案:重新授權依賴(lài)角色。方法請參考:依賴(lài)角色授權方法。
  可能原因2:管理員授權用戶(hù)組后忘記將IAM用戶(hù)添加到用戶(hù)組。
  解決方案:將 IAM 用戶(hù)添加到用戶(hù)組。請參考方法:將用戶(hù)添加到用戶(hù)組。
  可能原因3:區域級業(yè)務(wù),未在相應區域進(jìn)行授權。
  解決方法:在對IAM所在的用戶(hù)組進(jìn)行授權時(shí),選擇對應的區域。請參考方法:創(chuàng )建用戶(hù)組并授權。
  可能原因4:IAM用戶(hù)登錄控制臺后沒(méi)有切換到授權區域。
  解決方法:請切換到授權區域。請參閱:。
  歡迎觀(guān)看更多IAM資訊 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
更好預置多個(gè)云服務(wù)系統權限管理專(zhuān)家的工作流程(組圖))
  
  統一身份認證服務(wù)(Identity and Access Management,簡(jiǎn)稱(chēng)IAM)為您打造專(zhuān)屬的權限管理專(zhuān)家。幫助您為每個(gè)員工創(chuàng )建獨立的用戶(hù)名和密碼,避免密碼共享帶來(lái)的安全風(fēng)險。同時(shí),合理配置這些資源的使用權限,滿(mǎn)足您對用戶(hù)權限的安全管控要求。為了幫助您更好地管理權限,IAM預設了多個(gè)云服務(wù)系統權限。如果系統權限不能滿(mǎn)足您的要求,您還可以創(chuàng )建自定義策略來(lái)確保精細的權限管理。華為云權限管理,我們專(zhuān)業(yè)!
  下面通過(guò)一個(gè)簡(jiǎn)單的例子,詳細向您展示如何在權限管理專(zhuān)家的幫助下更好地管理和控制華為云資源。
  A公司的賬戶(hù)擁有多個(gè)華為云資源,圖1所示的各個(gè)職能團隊需要被授予相應的資源使用權限。在IAM中,為每個(gè)團隊設置權限,以實(shí)現團隊之間的權限分離,員工各司其職。
  圖1 A公司人員結構
  
  表1 權限分布
  
  權限管理流程
  了解了公司架構和各職能團隊需要配置的權限后,就該讓權限管理專(zhuān)家上臺了。下面以愛(ài)麗絲作為安全管理團隊的一員,配置“華北-北京4”區域的Anti-DDoS和AAD服務(wù)的所有執行權限為例,給大家展示一個(gè)權限管理專(zhuān)家的工作流程.
  圖1 權限管理流程圖
  
  第一步:創(chuàng )建用戶(hù)組并授權
  據了解,該公司有五個(gè)職能團隊,管理組(admin)由IAM預設。管理組中的用戶(hù)可以幫助該帳戶(hù)創(chuàng )建其他用戶(hù)組。以下是我們的管理員幫助創(chuàng )建用戶(hù)組并對其進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)組”>頁(yè)面右上角的“創(chuàng )建用戶(hù)組”,輸入用戶(hù)組名稱(chēng)為“安全管理團隊”和描述(可選) ),點(diǎn)擊“確定”完成用戶(hù)組的創(chuàng )建。
  
  在上圖所示的用戶(hù)組列表中,點(diǎn)擊用戶(hù)組名稱(chēng)右側的“權限配置”,進(jìn)入用戶(hù)組詳情頁(yè)面。單擊“權限管理”選項卡下的“配置權限”。
  
  在用戶(hù)組授權頁(yè)面,選擇權限范圍“區域項目>cn-north-4[華北-北京四]”,選擇需要的權限“防DDoS管理員”和“CAD管理員”,點(diǎn)擊“確定”完成用戶(hù)組授權。
  
  用戶(hù)組創(chuàng )建并授權后,您可以在用戶(hù)組列表中查看創(chuàng )建的用戶(hù)組,在用戶(hù)組詳情頁(yè)面查看授予用戶(hù)組的權限。
  第 2 步:創(chuàng )建 IAM 用戶(hù)并加入用戶(hù)組
  創(chuàng )建用戶(hù)組后,管理員需要為每個(gè)員工創(chuàng )建一個(gè)IAM用戶(hù),并將其添加到相應的用戶(hù)組中。將用戶(hù)添加到用戶(hù)組,該用戶(hù)將擁有該用戶(hù)組的權限。這個(gè)過(guò)程是對用戶(hù)進(jìn)行授權。
  管理員進(jìn)入統一身份認證控制臺,點(diǎn)擊左側導航欄中的“用戶(hù)”>頁(yè)面右上角的“創(chuàng )建用戶(hù)”。
  
  輸入用戶(hù)名“Alice”、郵箱地址、手機號碼(可選)、描述(可選),選擇“華為云管理控制臺訪(fǎng)問(wèn)”>“首次登錄時(shí)設置”,開(kāi)啟登錄保護,點(diǎn)擊“下一步”。
  
  闡明:
  如果開(kāi)發(fā)團隊的Keith和Kelly需要通過(guò)API調用訪(fǎng)問(wèn)華為云,訪(fǎng)問(wèn)方式可以是“程序化訪(fǎng)問(wèn)”。想了解更多請戳→
  3. 選擇“安全管理團隊”,點(diǎn)擊“創(chuàng )建用戶(hù)”,完成IAM用戶(hù)授權。
  第 3 步:IAM 用戶(hù)登錄
  完成以上步驟后,Alice就擁有了自己的華為云專(zhuān)屬通行證,只允許她訪(fǎng)問(wèn)“華北-北京4”區域的Anti-DDoS和AAD服務(wù)。最后,請愛(ài)麗絲登錄華為云,開(kāi)啟華為云的精彩之旅!
  在華為云登錄頁(yè)面,點(diǎn)擊登錄下的“IAM用戶(hù)登錄”。在“IAM用戶(hù)登錄”頁(yè)面,輸入賬號名、用戶(hù)名/郵箱和密碼,點(diǎn)擊“登錄”登錄華為云。
  
  切換區域為【華北-北京4】,Alice可以訪(fǎng)問(wèn)DDoS服務(wù)(Anti-DDoS)、DDoS高防服務(wù)(AAD),為項目安全保駕護航。
  
  至此,正確的管理專(zhuān)家能否“離開(kāi)”?不,他會(huì )一直堅守崗位!
  當您需要更改用戶(hù)權限時(shí),您可以通過(guò)用戶(hù)組添加/刪除用戶(hù)。
  當您需要更改用戶(hù)組權限時(shí),您可以這樣做。
  當需要取消用戶(hù)組的權限時(shí),可以通過(guò)刪除該用戶(hù)組的權限來(lái)實(shí)現。
  解決方案多于問(wèn)題
  如果管理員在IAM控制臺為IAM用戶(hù)設置了權限,IAM用戶(hù)登錄后發(fā)現權限沒(méi)有生效,請繼續往下看。
  可能原因一:管理員授予的權限有依賴(lài)角色,且依賴(lài)角色沒(méi)有同步設置,導致權限不生效。角色的依賴(lài)請參考:系統權限。
  解決方案:重新授權依賴(lài)角色。方法請參考:依賴(lài)角色授權方法。
  可能原因2:管理員授權用戶(hù)組后忘記將IAM用戶(hù)添加到用戶(hù)組。
  解決方案:將 IAM 用戶(hù)添加到用戶(hù)組。請參考方法:將用戶(hù)添加到用戶(hù)組。
  可能原因3:區域級業(yè)務(wù),未在相應區域進(jìn)行授權。
  解決方法:在對IAM所在的用戶(hù)組進(jìn)行授權時(shí),選擇對應的區域。請參考方法:創(chuàng )建用戶(hù)組并授權。
  可能原因4:IAM用戶(hù)登錄控制臺后沒(méi)有切換到授權區域。
  解決方法:請切換到授權區域。請參閱:。
  歡迎觀(guān)看更多IAM資訊

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(本地測試階段如何申請后面講述WAP網(wǎng)站提供兩種驗證方式)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 75 次瀏覽 ? 2021-10-23 02:11 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(本地測試階段如何申請后面講述WAP網(wǎng)站提供兩種驗證方式)
  新浪微博網(wǎng)站接入應用教程(含本地測試)織夢(mèng)無(wú)憂(yōu)站長(cháng)隨筆2020-09-21 13:59
  總結:進(jìn)入新浪微博開(kāi)放平臺,用賬號登錄。點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。這里
  進(jìn)入新浪微博開(kāi)放平臺,使用賬號登錄。
  
  點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。
  
  左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。
  
  申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。
  
  這里有兩點(diǎn)需要注意:
  1 以這種方式申請appKey,前提是你的網(wǎng)站必須使用過(guò)域名并且在互聯(lián)網(wǎng)上運行。如果您處于本地測試階段,此方法將不起作用。如何申請本地測試階段將在后面介紹。
  2網(wǎng)站提供了兩種驗證方式來(lái)驗證您是否擁有網(wǎng)站的管理員權限。請注意這兩種方法之間的區別。
  沒(méi)有自動(dòng)重定向的網(wǎng)站
  
  具有自動(dòng)重定向功能的網(wǎng)站或 WAP 站點(diǎn)
  
  將驗證碼添加到您的網(wǎng)站首頁(yè)后,點(diǎn)擊下方的【驗證并添加】按鈕。按照提示操作。
  注意:如果此步驟不成功,請參考新浪提供的提示信息仔細分析。如果實(shí)在找不到問(wèn)題,不妨試試以上兩種驗證方式。
  從這一步開(kāi)始,如何在本地調試階段應用。
  因為沒(méi)有本地調試的域名,直接訪(fǎng)問(wèn)網(wǎng)站是不行的。需要使用web應用來(lái)實(shí)現本地調試。
  很多人在申請的時(shí)候都找不到web應用的選項。這是一個(gè)解釋?zhuān)?br />  ?。?)開(kāi)放平臺首頁(yè),直接點(diǎn)擊【微連接】菜單。
  
  注意不要在【微連接】菜單下點(diǎn)擊網(wǎng)站上的應用,點(diǎn)擊網(wǎng)站上的應用后的頁(yè)面不會(huì )是同一個(gè)頁(yè)面。
  
  進(jìn)入頁(yè)面如下圖:
  
 ?。?)這時(shí)候點(diǎn)擊【創(chuàng )建應用】按鈕,會(huì )彈出各種應用類(lèi)型,然后會(huì )出現web應用。
  
  點(diǎn)擊【W(wǎng)eb應用】進(jìn)入應用頁(yè)面。
  
  這里的申請地址可以填寫(xiě)IP地址,方便我們測試。
  
  創(chuàng )建 Web 應用程序后,還沒(méi)有結束。點(diǎn)擊【管理中心】進(jìn)入我們剛剛申請的應用。點(diǎn)擊左側申請信息中的基本信息。
  
  點(diǎn)擊右側編輯,注意下圖中高亮的地方。
  
  申請地址是指微博發(fā)布時(shí)顯示的來(lái)源地址(不通過(guò)將無(wú)法正確顯示)。
  安全域名是必須的,因為新浪微博的Api需要通過(guò)域名訪(fǎng)問(wèn),否則會(huì )報錯。所以下一步是關(guān)鍵。
  設置本地環(huán)境域名映射。
 ?。?)在操作系統hosts文件中添加本地域名映射。
  
 ?。?)在上述安全域名中配置本地自定義域名。
  點(diǎn)擊【高級信息】進(jìn)行設置。
  
  授權設置是調用api成功后返回的頁(yè)面。
  安全設置指定應用程序部署的 IP 地址。
  至此,新浪微博appKey申請成功,可以開(kāi)始自己的本地調試路徑了。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(本地測試階段如何申請后面講述WAP網(wǎng)站提供兩種驗證方式)
  新浪微博網(wǎng)站接入應用教程(含本地測試)織夢(mèng)無(wú)憂(yōu)站長(cháng)隨筆2020-09-21 13:59
  總結:進(jìn)入新浪微博開(kāi)放平臺,用賬號登錄。點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。這里
  進(jìn)入新浪微博開(kāi)放平臺,使用賬號登錄。
  
  點(diǎn)擊【網(wǎng)站訪(fǎng)問(wèn)】或在頂部菜單中選擇【微連接】進(jìn)入網(wǎng)站訪(fǎng)問(wèn)頁(yè)面。
  
  左側提供了一系列開(kāi)放平臺的公共組件,可以在你的網(wǎng)站中直接引用。
  
  申請微連接appKey,點(diǎn)擊【開(kāi)始訪(fǎng)問(wèn)】按鈕。
  
  這里有兩點(diǎn)需要注意:
  1 以這種方式申請appKey,前提是你的網(wǎng)站必須使用過(guò)域名并且在互聯(lián)網(wǎng)上運行。如果您處于本地測試階段,此方法將不起作用。如何申請本地測試階段將在后面介紹。
  2網(wǎng)站提供了兩種驗證方式來(lái)驗證您是否擁有網(wǎng)站的管理員權限。請注意這兩種方法之間的區別。
  沒(méi)有自動(dòng)重定向的網(wǎng)站
  
  具有自動(dòng)重定向功能的網(wǎng)站或 WAP 站點(diǎn)
  
  將驗證碼添加到您的網(wǎng)站首頁(yè)后,點(diǎn)擊下方的【驗證并添加】按鈕。按照提示操作。
  注意:如果此步驟不成功,請參考新浪提供的提示信息仔細分析。如果實(shí)在找不到問(wèn)題,不妨試試以上兩種驗證方式。
  從這一步開(kāi)始,如何在本地調試階段應用。
  因為沒(méi)有本地調試的域名,直接訪(fǎng)問(wèn)網(wǎng)站是不行的。需要使用web應用來(lái)實(shí)現本地調試。
  很多人在申請的時(shí)候都找不到web應用的選項。這是一個(gè)解釋?zhuān)?br />  ?。?)開(kāi)放平臺首頁(yè),直接點(diǎn)擊【微連接】菜單。
  
  注意不要在【微連接】菜單下點(diǎn)擊網(wǎng)站上的應用,點(diǎn)擊網(wǎng)站上的應用后的頁(yè)面不會(huì )是同一個(gè)頁(yè)面。
  
  進(jìn)入頁(yè)面如下圖:
  
 ?。?)這時(shí)候點(diǎn)擊【創(chuàng )建應用】按鈕,會(huì )彈出各種應用類(lèi)型,然后會(huì )出現web應用。
  
  點(diǎn)擊【W(wǎng)eb應用】進(jìn)入應用頁(yè)面。
  
  這里的申請地址可以填寫(xiě)IP地址,方便我們測試。
  
  創(chuàng )建 Web 應用程序后,還沒(méi)有結束。點(diǎn)擊【管理中心】進(jìn)入我們剛剛申請的應用。點(diǎn)擊左側申請信息中的基本信息。
  
  點(diǎn)擊右側編輯,注意下圖中高亮的地方。
  
  申請地址是指微博發(fā)布時(shí)顯示的來(lái)源地址(不通過(guò)將無(wú)法正確顯示)。
  安全域名是必須的,因為新浪微博的Api需要通過(guò)域名訪(fǎng)問(wèn),否則會(huì )報錯。所以下一步是關(guān)鍵。
  設置本地環(huán)境域名映射。
 ?。?)在操作系統hosts文件中添加本地域名映射。
  
 ?。?)在上述安全域名中配置本地自定義域名。
  點(diǎn)擊【高級信息】進(jìn)行設置。
  
  授權設置是調用api成功后返回的頁(yè)面。
  安全設置指定應用程序部署的 IP 地址。
  至此,新浪微博appKey申請成功,可以開(kāi)始自己的本地調試路徑了。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站( 利用PHP進(jìn)行新浪微博API開(kāi)發(fā)的內容進(jìn)行一個(gè)整理和說(shuō)明)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 79 次瀏覽 ? 2021-10-23 02:08 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
利用PHP進(jìn)行新浪微博API開(kāi)發(fā)的內容進(jìn)行一個(gè)整理和說(shuō)明)
  新浪微博API開(kāi)發(fā)用戶(hù)授權介紹(PHP基礎)
  更新時(shí)間:2011-09-25 22:52:37 作者:
  在開(kāi)發(fā)和學(xué)習的過(guò)程中,感覺(jué)雖然不是太難,但還是有一些問(wèn)題需要大家注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的用PHP開(kāi)發(fā)了新浪微博API。整理和說(shuō)明內容
  現在玩微博的人越來(lái)越多,微博上的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是OAuth授權。OAuth授權流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。我們你可以看看。這里我將從示例開(kāi)發(fā)的角度進(jìn)行介紹和說(shuō)明。
  1.首先獲取未授權的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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )保存在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_SESSION['keys'] = $keys;
  aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false,'');
  獲取到未授權Request Token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置session key的值,下面獲取的授權Access Token中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的Access Token的值是無(wú)法獲取的。必須記住這一點(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è)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; Error:'.$msg['error'] );
  返回假;
  }
  打印_r($msg);
  通常我們拿到用戶(hù)授權的訪(fǎng)問(wèn)令牌值后,我們將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)相對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用Json格式的數據有先天優(yōu)勢,如果返回Json格式的數據,使用php 函數 json_decode() 可以直接轉換成 PHP 常用的數組格式。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(
利用PHP進(jìn)行新浪微博API開(kāi)發(fā)的內容進(jìn)行一個(gè)整理和說(shuō)明)
  新浪微博API開(kāi)發(fā)用戶(hù)授權介紹(PHP基礎)
  更新時(shí)間:2011-09-25 22:52:37 作者:
  在開(kāi)發(fā)和學(xué)習的過(guò)程中,感覺(jué)雖然不是太難,但還是有一些問(wèn)題需要大家注意。今天在開(kāi)發(fā)學(xué)習的過(guò)程中,簡(jiǎn)單的用PHP開(kāi)發(fā)了新浪微博API。整理和說(shuō)明內容
  現在玩微博的人越來(lái)越多,微博上的第三方應用開(kāi)??發(fā)也越來(lái)越多。偶然接觸到新浪微博API開(kāi)發(fā)。新浪微博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)境中解壓。演示程序也包括在內。我們可以參考它的示例程序進(jìn)行編寫(xiě)。
  新浪微博API開(kāi)發(fā)最重要的用戶(hù)授權流程
  事實(shí)上,開(kāi)發(fā)過(guò)程中的很多問(wèn)題都集中在用戶(hù)授權階段。我開(kāi)發(fā)的第三方應用使用的是OAuth授權。OAuth授權流程在新浪微博開(kāi)放平臺上有非常清晰完整的介紹。我們你可以看看。這里我將從示例開(kāi)發(fā)的角度進(jìn)行介紹和說(shuō)明。
  1.首先獲取未授權的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)鍵。
  獲取到授權值后,我們可以通過(guò)上面的代碼來(lái)獲取未授權的Request Token值,該值會(huì )保存在$key數組變量中。
  2. 然后請求用戶(hù)授權token
  復制代碼代碼如下:
  $_SESSION['keys'] = $keys;
  aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false,'');
  獲取到未授權Request Token值后,我們就可以使用上面的代碼準備去新浪微博授權頁(yè)面進(jìn)行授權了。$aurl 是授權鏈接頁(yè)面。得到$aurl后,我們可以使用header()直接跳轉到它。授權頁(yè)面,然后用戶(hù)輸入新浪微博賬號和密碼進(jìn)行授權。授權完成后會(huì )自動(dòng)跳轉回你最后一個(gè)參數設置的回調頁(yè)面:這個(gè)鏈接可以設置為上一個(gè)頁(yè)面,這樣授權完成后會(huì )顯示 再次自動(dòng)跳轉回來(lái)。
  需要說(shuō)明的是,需要設置session key的值,下面獲取的授權Access Token中需要該值。很多朋友可能會(huì )參考開(kāi)放平臺上的說(shuō)明進(jìn)行授權,但是發(fā)現總是報錯。這通常是問(wèn)題所在。您尚未設置會(huì )話(huà)的鍵值。當然,下面的Access Token的值是無(wú)法獲取的。必須記住這一點(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è)參數是我們之前設置的session值。至此,基本完成。這是一個(gè)完整的新浪微博用戶(hù)授權流程。
  授權完成后工作
  授權完成后,我們就可以開(kāi)始調用新浪微博提供的各種API函數接口進(jìn)行實(shí)際應用開(kāi)發(fā)了。這里我簡(jiǎn)單介紹一下獲取最新微博記錄的界面。其他類(lèi)似。
  獲取新浪微博最新信息的API接口函數為:public_timeline(),示例代碼如下:
  復制代碼代碼如下:
  //獲取前20條最新更新的公眾微博新聞
  $c = 新微博客戶(hù)端( 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'].'; Error:'.$msg['error'] );
  返回假;
  }
  打印_r($msg);
  通常我們拿到用戶(hù)授權的訪(fǎng)問(wèn)令牌值后,我們將它們保存在我們的用戶(hù)表中,并與我們應用程序中的帳戶(hù)相對應。之后我們就不用每次調用新浪微博的API接口都去。認證。
  上面的代碼很簡(jiǎn)單,實(shí)例化WeiboClient對象,然后直接調用接口函數public_timeline獲取返回的信息,如果沒(méi)有錯誤。通常新浪微博api接口返回的數據格式一般是Json格式或者xml格式,而我們這里是用php開(kāi)發(fā)的,使用Json格式的數據有先天優(yōu)勢,如果返回Json格式的數據,使用php 函數 json_decode() 可以直接轉換成 PHP 常用的數組格式。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(注冊新浪weibo允許第三方以應用的方式發(fā)布微博(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 99 次瀏覽 ? 2021-10-22 15:10 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(注冊新浪weibo允許第三方以應用的方式發(fā)布微博(組圖))
  前言
  前不久萌生了學(xué)python的念頭,于是為了練手的目的為微博做了這樣一個(gè)小工具。
  登記
  新浪微博允許第三方以應用的形式發(fā)布微博,所以我們首先要做的就是通過(guò)新浪微博開(kāi)放平臺注冊一個(gè)應用:
  
  weibo_open
  打開(kāi)上述平臺的頁(yè)面,用微博賬號登錄,然后點(diǎn)擊立即訪(fǎng)問(wèn)開(kāi)始注冊自己的應用,按照提示操作即可。以下是我自己創(chuàng )建的應用程序,名為:
  
  應用程序
  在您個(gè)人應用的應用信息-基本信息-基本應用信息中找到您的App Key和App Secret。并在高級信息中設置自己的授權回調頁(yè)面(所謂授權回調頁(yè)面是指個(gè)人應用通過(guò)微博賬號授權后的跳轉頁(yè)面,設置沒(méi)有問(wèn)題,這里我設置為個(gè)人微博主頁(yè))。
  授權獲取代碼
  看了新浪的SDK,很多人可能會(huì )選擇對應的python SDK。實(shí)際上,這是不必要的。界面變得更加復雜。我們在這里不使用他的界面。
  通常,通過(guò)微博界面發(fā)送微博的第三方應用需要用戶(hù)授權。我想你以前也做過(guò)同樣的事情,那么哪個(gè)授權頁(yè)面是?
  def get_auth_url(client_id, redirect_uri):
return '%s%s?%s' % ('https://api.weibo.com/oauth2/', 'authorize',
_encode_params(client_id=client_id,
response_type='code',
redirect_uri=redirect_uri))
  client_id是你的app_key,redirect_uri是上一步填寫(xiě)的授權回調頁(yè)面地址,復制生成的鏈接到瀏覽器打開(kāi),輸入你的微博賬號進(jìn)行授權。
  
  授權
  授權成功后,瀏覽器會(huì )跳轉到我們設置的授權回調頁(yè)面。在瀏覽器地址欄找到code字段,你就會(huì )得到授權碼。
  獲取令牌
  接下來(lái),我們需要通過(guò)代碼獲取token。這個(gè)token是我們在微博上發(fā)帖的憑證:
  def get_access_token(app_key, app_secret, redirect_url):
#通過(guò)url_auth輸入weibo賬號進(jìn)行登錄
#從登錄成功后的回調url獲得code
url_auth = get_auth_url(app_key, redirect_url)
print('[get_access_token]' + url_auth)
code = input('Input code:')
url_get_token = "https://api.weibo.com/oauth2/access_token"
payload = {
"client_id":app_key,
"client_secret":app_secret,
"grant_type":"authorization_code",
"code":code,
"redirect_uri":redirect_url
}

#獲取access_token
res = requests.post(url_get_token, data=payload)
resj = json.loads(res.text)
return resj['access_token']
  令牌只需要獲取一次,令牌可以一直重復使用。有效期好像是5年。
  微博安全域名
  新浪微博要求通過(guò)應用界面發(fā)送的每一條微博內容都必須收錄一個(gè)安全的域名字段。您需要在應用信息-基本信息-應用基本信息中配置安全域名。我設置了
  調用接口
  這里的安全域名依然使用自己的微博主頁(yè),包括:
  def share_weibo(text, img):
access_token = '你的token'
#安全域名,sina限制文本內容必須有此字段
safe_domain = 'https://weibo.com/5296864682/profile?topnav=1&wvr=6'
url_share = 'https://api.weibo.com/2/statuses/share.json'

payload = {
'access_token':access_token,
'status':text + ' ' + safe_domain
}
if img :
files = {
"pic":img
}
res = requests.post(url_share, data = payload, files = files)
else :
res = requests.post(url_share, data = payload)
return res
  測試
  編寫(xiě)測試代碼:
  if __name__ == '__main__':
f = open(r"./share.jpeg", "rb")
text = input('Input text:')
res = share_weibo(text, f)
f.close()
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:hello sky
  成功發(fā)布圖片微博:
  
  你好天空
  如果你想發(fā)布視頻,很遺憾,新浪沒(méi)有提供相應的界面。我們只能通過(guò)在文本中收錄指向現有視頻的鏈接來(lái)實(shí)現類(lèi)似的效果。例如,要發(fā)布此視頻:
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:http://t.cn/Ail9eamb%3Fm%3D439 ... 64682
  成功發(fā)送視頻的微博:
  
  視頻
  你可以在我的微博上看到剛剛發(fā)送的視頻。
  結束語(yǔ)
  還有一些接口比如注釋?zhuān)蠹铱梢宰约簻y試一下,在接口管理里面可以看到相應的介紹。
  附上源代碼: 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(注冊新浪weibo允許第三方以應用的方式發(fā)布微博(組圖))
  前言
  前不久萌生了學(xué)python的念頭,于是為了練手的目的為微博做了這樣一個(gè)小工具。
  登記
  新浪微博允許第三方以應用的形式發(fā)布微博,所以我們首先要做的就是通過(guò)新浪微博開(kāi)放平臺注冊一個(gè)應用:
  
  weibo_open
  打開(kāi)上述平臺的頁(yè)面,用微博賬號登錄,然后點(diǎn)擊立即訪(fǎng)問(wèn)開(kāi)始注冊自己的應用,按照提示操作即可。以下是我自己創(chuàng )建的應用程序,名為:
  
  應用程序
  在您個(gè)人應用的應用信息-基本信息-基本應用信息中找到您的App Key和App Secret。并在高級信息中設置自己的授權回調頁(yè)面(所謂授權回調頁(yè)面是指個(gè)人應用通過(guò)微博賬號授權后的跳轉頁(yè)面,設置沒(méi)有問(wèn)題,這里我設置為個(gè)人微博主頁(yè))。
  授權獲取代碼
  看了新浪的SDK,很多人可能會(huì )選擇對應的python SDK。實(shí)際上,這是不必要的。界面變得更加復雜。我們在這里不使用他的界面。
  通常,通過(guò)微博界面發(fā)送微博的第三方應用需要用戶(hù)授權。我想你以前也做過(guò)同樣的事情,那么哪個(gè)授權頁(yè)面是?
  def get_auth_url(client_id, redirect_uri):
return '%s%s?%s' % ('https://api.weibo.com/oauth2/', 'authorize',
_encode_params(client_id=client_id,
response_type='code',
redirect_uri=redirect_uri))
  client_id是你的app_key,redirect_uri是上一步填寫(xiě)的授權回調頁(yè)面地址,復制生成的鏈接到瀏覽器打開(kāi),輸入你的微博賬號進(jìn)行授權。
  
  授權
  授權成功后,瀏覽器會(huì )跳轉到我們設置的授權回調頁(yè)面。在瀏覽器地址欄找到code字段,你就會(huì )得到授權碼。
  獲取令牌
  接下來(lái),我們需要通過(guò)代碼獲取token。這個(gè)token是我們在微博上發(fā)帖的憑證:
  def get_access_token(app_key, app_secret, redirect_url):
#通過(guò)url_auth輸入weibo賬號進(jìn)行登錄
#從登錄成功后的回調url獲得code
url_auth = get_auth_url(app_key, redirect_url)
print('[get_access_token]' + url_auth)
code = input('Input code:')
url_get_token = "https://api.weibo.com/oauth2/access_token"
payload = {
"client_id":app_key,
"client_secret":app_secret,
"grant_type":"authorization_code",
"code":code,
"redirect_uri":redirect_url
}

#獲取access_token
res = requests.post(url_get_token, data=payload)
resj = json.loads(res.text)
return resj['access_token']
  令牌只需要獲取一次,令牌可以一直重復使用。有效期好像是5年。
  微博安全域名
  新浪微博要求通過(guò)應用界面發(fā)送的每一條微博內容都必須收錄一個(gè)安全的域名字段。您需要在應用信息-基本信息-應用基本信息中配置安全域名。我設置了
  調用接口
  這里的安全域名依然使用自己的微博主頁(yè),包括:
  def share_weibo(text, img):
access_token = '你的token'
#安全域名,sina限制文本內容必須有此字段
safe_domain = 'https://weibo.com/5296864682/profile?topnav=1&wvr=6'
url_share = 'https://api.weibo.com/2/statuses/share.json'

payload = {
'access_token':access_token,
'status':text + ' ' + safe_domain
}
if img :
files = {
"pic":img
}
res = requests.post(url_share, data = payload, files = files)
else :
res = requests.post(url_share, data = payload)
return res
  測試
  編寫(xiě)測試代碼:
  if __name__ == '__main__':
f = open(r"./share.jpeg", "rb")
text = input('Input text:')
res = share_weibo(text, f)
f.close()
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:hello sky
  成功發(fā)布圖片微博:
  
  你好天空
  如果你想發(fā)布視頻,很遺憾,新浪沒(méi)有提供相應的界面。我們只能通過(guò)在文本中收錄指向現有視頻的鏈接來(lái)實(shí)現類(lèi)似的效果。例如,要發(fā)布此視頻:
  跑:
  [root@localhost share_weibo]# py sina_weibo.py
Input text:http://t.cn/Ail9eamb%3Fm%3D439 ... 64682
  成功發(fā)送視頻的微博:
  
  視頻
  你可以在我的微博上看到剛剛發(fā)送的視頻。
  結束語(yǔ)
  還有一些接口比如注釋?zhuān)蠹铱梢宰约簻y試一下,在接口管理里面可以看到相應的介紹。
  附上源代碼:

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有時(shí)候整合新浪微博的獨立博客是怎么做的??)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 94 次瀏覽 ? 2021-10-21 16:01 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有時(shí)候整合新浪微博的獨立博客是怎么做的??)
  隨著(zhù)新浪微博用戶(hù)越來(lái)越多,我們有時(shí)會(huì )考慮將新浪微博整合到我們自己的網(wǎng)站中。例如,我目前的獨立博客。
  我博客的整合主要是這幾個(gè)方面:我寫(xiě)了一篇文章,同時(shí)發(fā)到微博。同時(shí),用戶(hù)可以用自己的微博賬號登錄,可以選擇將文章的評論同步到文章的微博。此外,用戶(hù)可以選擇是否將博客消息同步到新浪微博。
  新浪微博開(kāi)放平臺地址在這里。文檔地址在這里。
  首先要涉及的問(wèn)題是用戶(hù)使用新浪微博賬號登錄的問(wèn)題,即授權機制。有兩種基本方法:
  OAuth Basic auth(需要強調的是,微博開(kāi)放平臺將于6月1日正式停止支持Basic Auth,因此不討論這種方式。實(shí)際上,要求用戶(hù)名和密碼的方式本質(zhì)上是不安全的。)
  官方 OAuth 新浪文檔在這里。想了解OAuth技術(shù)說(shuō)明的可以訪(fǎng)問(wèn)項目主頁(yè)。
  其實(shí)OAuth的過(guò)程還是很簡(jiǎn)單的。大致如下:
  從 API 調用中獲取請求令牌。將用戶(hù)重定向到授權頁(yè)面(auth url)。用戶(hù)輸入用戶(hù)名和密碼完成授權。重定向到 Callback_url。將請求令牌交換到新浪微博以獲取訪(fǎng)問(wèn)令牌。結束。
  大致了解了OAuth的原理后,既然是集成到Django,自然需要下載Python版的微博SDK。
  但是,在一切開(kāi)始之前,您必須從新浪微博申請。申請地址在這里。這里需要強調的是,以后的應用需要申請審核,因為只有審核通過(guò)后,才能在源中顯示個(gè)性化的應用名稱(chēng)。因此,在申請時(shí),要注意申請介紹信息的完整性和正確的申請分類(lèi)。(在這個(gè)例子中,我們的分類(lèi)是合作網(wǎng)站。)
  申請完成后,您將獲得您的申請的App Key和App Secret。
  回到授權用戶(hù)登錄的話(huà)題。要允許新浪微博賬號訪(fǎng)問(wèn),首先我們需要在urlpatterns中添加幾個(gè)URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下來(lái),我們啟動(dòng)視圖文件。代碼:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 設置你申請的appkey consumer_secret = '' # 設置你申請的appkey對于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登錄頁(yè)而發(fā)生跳轉錯誤 return referer_url def _oauth(): """獲取oauth認證類(lèi)""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登錄url,以便認證成功后跳轉回來(lái) back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 獲取oauth認證url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用戶(hù)登錄后需要使用它來(lái)獲取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳轉到登錄頁(yè)面 return HttpResponseRedirect(auth_url) def login_check(request): """用戶(hù)成功登錄授權后,會(huì )回調此方法,獲取access_token,完成授權""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 設置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后訪(fǎng)問(wèn)只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳轉回最初登錄前的頁(yè)面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用戶(hù)登出,直接刪除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授權碼后,接下來(lái)我們需要知道如何向新浪微博發(fā)送消息等操作。其實(shí)就是下載的sdk下exanples文件夾下的examples(沒(méi)錯,其實(shí)就是examples,這個(gè)是英文水平的,就不多說(shuō)了)?;旧?,您可以更改它并直接使用它。以oauthSetTokenUpdate.py為例,我們可以這樣寫(xiě):
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必須是UTF-8編碼的字符串,經(jīng)緯度是可以不寫(xiě)的 print status.id print status.text
  運行這個(gè)程序會(huì )提示一個(gè)URL鏈接,在瀏覽器中打開(kāi)這個(gè)鏈接,并授予訪(fǎng)問(wèn)權限,你會(huì )得到一串PIN碼。輸入此 PIN 碼,將發(fā)送一條推文,同時(shí)還會(huì )顯示用戶(hù)的訪(fǎng)問(wèn)令牌密鑰和訪(fǎng)問(wèn)令牌秘密。
  但是,這是否有點(diǎn)太書(shū)呆子了?其實(shí)只要知道Access token key和Access token secret,我們就可以直接使用它們來(lái)創(chuàng )建API對象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' token = '用戶(hù)的Access token key' tokenSecret = '用戶(hù)的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  這時(shí)候我們可以重構代碼,寫(xiě)一個(gè)微博類(lèi)來(lái)實(shí)現上述功能,實(shí)現一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道讀者是否還記得上面授權部分的代碼。在login_check方法代碼中,有這么一句。
  request.session['oauth_access_token'] = access_token
  授權用戶(hù)的 access_token 已經(jīng)存儲在 session 變量中。因此,當用戶(hù)授權完成后,我們可以直接使用session中存儲的access_token,像這樣:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  在上面的例子中,只使用了部分 API。有關(guān)完整的 API 手冊,請參閱此處。
  文章來(lái)源: 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有時(shí)候整合新浪微博的獨立博客是怎么做的??)
  隨著(zhù)新浪微博用戶(hù)越來(lái)越多,我們有時(shí)會(huì )考慮將新浪微博整合到我們自己的網(wǎng)站中。例如,我目前的獨立博客。
  我博客的整合主要是這幾個(gè)方面:我寫(xiě)了一篇文章,同時(shí)發(fā)到微博。同時(shí),用戶(hù)可以用自己的微博賬號登錄,可以選擇將文章的評論同步到文章的微博。此外,用戶(hù)可以選擇是否將博客消息同步到新浪微博。
  新浪微博開(kāi)放平臺地址在這里。文檔地址在這里。
  首先要涉及的問(wèn)題是用戶(hù)使用新浪微博賬號登錄的問(wèn)題,即授權機制。有兩種基本方法:
  OAuth Basic auth(需要強調的是,微博開(kāi)放平臺將于6月1日正式停止支持Basic Auth,因此不討論這種方式。實(shí)際上,要求用戶(hù)名和密碼的方式本質(zhì)上是不安全的。)
  官方 OAuth 新浪文檔在這里。想了解OAuth技術(shù)說(shuō)明的可以訪(fǎng)問(wèn)項目主頁(yè)。
  其實(shí)OAuth的過(guò)程還是很簡(jiǎn)單的。大致如下:
  從 API 調用中獲取請求令牌。將用戶(hù)重定向到授權頁(yè)面(auth url)。用戶(hù)輸入用戶(hù)名和密碼完成授權。重定向到 Callback_url。將請求令牌交換到新浪微博以獲取訪(fǎng)問(wèn)令牌。結束。
  大致了解了OAuth的原理后,既然是集成到Django,自然需要下載Python版的微博SDK。
  但是,在一切開(kāi)始之前,您必須從新浪微博申請。申請地址在這里。這里需要強調的是,以后的應用需要申請審核,因為只有審核通過(guò)后,才能在源中顯示個(gè)性化的應用名稱(chēng)。因此,在申請時(shí),要注意申請介紹信息的完整性和正確的申請分類(lèi)。(在這個(gè)例子中,我們的分類(lèi)是合作網(wǎng)站。)
  申請完成后,您將獲得您的申請的App Key和App Secret。
  回到授權用戶(hù)登錄的話(huà)題。要允許新浪微博賬號訪(fǎng)問(wèn),首先我們需要在urlpatterns中添加幾個(gè)URL。如下:
  urlpatterns = patterns('projectname.appname.views', url(r'^log/$', 'login', name='log'), url(r'^logincheck/$', 'login_check', name='logcheck'), url(r'^logout/$', 'logout', name='logout'), )
  接下來(lái),我們啟動(dòng)視圖文件。代碼:
  #!/usr/bin/env python # -*- coding: utf-8 -*- """ 基于django的新浪微博oauth views 需要django的session支持 """ from django.http import HttpResponseRedirect from weibopy.auth import OAuthHandler, WeibopError from weibopy import oauth consumer_key = '' # 設置你申請的appkey consumer_secret = '' # 設置你申請的appkey對于的secret class WebOAuthHandler(OAuthHandler): def get_authorization_url_with_callback(self, callback, signin_with_推ter=False): """Get the authorization URL to redirect the user""" try: # get the request token self.request_token = self._get_request_token() # build auth request and return as url if signin_with_推ter: url = self._get_oauth_url('authenticate') else: url = self._get_oauth_url('authorize') request = oauth.OAuthRequest.from_token_and_callback( token=self.request_token, callback=callback, http_url=url ) return request.to_url() except Exception, e: raise WeibopError(e) def _get_referer_url(request): referer_url = request.META.get('HTTP_REFERER', '/') host = request.META['HTTP_HOST'] if referer_url.startswith('http') and host not in referer_url: referer_url = '/' # 避免外站直接跳到登錄頁(yè)而發(fā)生跳轉錯誤 return referer_url def _oauth(): """獲取oauth認證類(lèi)""" return WebOAuthHandler(consumer_key, consumer_secret) def login(request): # 保存最初的登錄url,以便認證成功后跳轉回來(lái) back_to_url = _get_referer_url(request) request.session['login_back_to_url'] = back_to_url # 獲取oauth認證url login_backurl = request.build_absolute_uri('/logincheck') auth_client = _oauth() auth_url = auth_client.get_authorization_url_with_callback(login_backurl) # 保存request_token,用戶(hù)登錄后需要使用它來(lái)獲取access_token request.session['oauth_request_token'] = auth_client.request_token # 跳轉到登錄頁(yè)面 return HttpResponseRedirect(auth_url) def login_check(request): """用戶(hù)成功登錄授權后,會(huì )回調此方法,獲取access_token,完成授權""" # http://mk2.com/%3Foauth_token% ... 03896 verifier = request.GET.get('oauth_verifier', None) auth_client = _oauth() # 設置之前保存在session的request_token request_token = request.session['oauth_request_token'] del request.session['oauth_request_token'] auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) # 保存access_token,以后訪(fǎng)問(wèn)只需使用access_token即可 request.session['oauth_access_token'] = access_token # 跳轉回最初登錄前的頁(yè)面 back_to_url = request.session.get('login_back_to_url', '/') return HttpResponseRedirect(back_to_url) def logout(request): """用戶(hù)登出,直接刪除access_token""" del request.session['oauth_access_token'] back_to_url = _get_referer_url(request) return HttpResponseRedirect(back_to_url)
  完成授權碼后,接下來(lái)我們需要知道如何向新浪微博發(fā)送消息等操作。其實(shí)就是下載的sdk下exanples文件夾下的examples(沒(méi)錯,其實(shí)就是examples,這個(gè)是英文水平的,就不多說(shuō)了)?;旧?,您可以更改它并直接使用它。以oauthSetTokenUpdate.py為例,我們可以這樣寫(xiě):
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' auth = OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) api = API(auth) status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必須是UTF-8編碼的字符串,經(jīng)緯度是可以不寫(xiě)的 print status.id print status.text
  運行這個(gè)程序會(huì )提示一個(gè)URL鏈接,在瀏覽器中打開(kāi)這個(gè)鏈接,并授予訪(fǎng)問(wèn)權限,你會(huì )得到一串PIN碼。輸入此 PIN 碼,將發(fā)送一條推文,同時(shí)還會(huì )顯示用戶(hù)的訪(fǎng)問(wèn)令牌密鑰和訪(fǎng)問(wèn)令牌秘密。
  但是,這是否有點(diǎn)太書(shū)呆子了?其實(shí)只要知道Access token key和Access token secret,我們就可以直接使用它們來(lái)創(chuàng )建API對象:
  # -*- coding: utf-8 -*- from weibopy.auth import OAuthHandler from weibopy.api import API consumer_key= '應用的key' consumer_secret ='應用的App Secret' token = '用戶(hù)的Access token key' tokenSecret = '用戶(hù)的Access token secret' auth = OAuthHandler(consumer_key, consumer_secret) auth.setToken(token, tokenSecret) api = API(auth) status = api.update_status(status='搞定收工~')
  這時(shí)候我們可以重構代碼,寫(xiě)一個(gè)微博類(lèi)來(lái)實(shí)現上述功能,實(shí)現一些api操作。
  class weibo(object): def __init__(self): self.consumer_key = consumer_key self.consumer_secret = consumer_secret def getAtt(self, key): try: return self.obj.__getattribute__(key) except Exception, e: print e return '' def getAttValue(self, obj, key): try: return obj.__getattribute__(key) except Exception, e: print e return '' def auth(self): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) auth_url = self.auth.get_authorization_url() print 'Please authorize: ' + auth_url verifier = raw_input('PIN: ').strip() self.auth.get_access_token(verifier) self.api = API(self.auth) def setToken(self, token, tokenSecret): self.auth = OAuthHandler(self.consumer_key, self.consumer_secret) self.auth.setToken(token, tokenSecret) self.api = API(self.auth) def update(self, message): message = message.encode("utf-8") status = self.api.update_status(status=message) self.obj = status id = self.getAtt("id") return id def destroy_status(self, id): status = self.api.destroy_status(id) self.obj = status id = self.getAtt("id") return id def comment(self, id, message): comment = self.api.comment(id=id, comment=message) self.obj = comment mid = self.getAtt("id") return mid def comment_destroy (self, mid): comment = self.api.comment_destroy(mid) self.obj = comment mid = self.getAtt("id") text = self.getAtt("text") return mid def repost(self, id, message): post = self.api.repost(id=id, status=message) self.obj = post mid = self.getAtt("id") return mid def get_username(self): if getattr(self, '_username', None) is None: self._username = self.auth.get_username() return self._username
  不知道讀者是否還記得上面授權部分的代碼。在login_check方法代碼中,有這么一句。
  request.session['oauth_access_token'] = access_token
  授權用戶(hù)的 access_token 已經(jīng)存儲在 session 變量中。因此,當用戶(hù)授權完成后,我們可以直接使用session中存儲的access_token,像這樣:
  access_token = request.session.get('oauth_access_token', None) if access_token is not None: weibo_client = weibo() weibo_client.setToken(access_token.key, access_token.secret) weibo_client.update('全部完成~')
  在上面的例子中,只使用了部分 API。有關(guān)完整的 API 手冊,請參閱此處。
  文章來(lái)源:

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博推出可嵌入到第三方網(wǎng)站的贊按鈕(組圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2021-10-21 16:01 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博推出可嵌入到第三方網(wǎng)站的贊按鈕(組圖))
  【編者按】網(wǎng)站 正在建設中,還有一種方式分享。
  在網(wǎng)頁(yè)版微博和手機客戶(hù)端推出點(diǎn)贊按鈕后,新浪微博現在有了一個(gè)可以嵌入第三方的點(diǎn)贊按鈕網(wǎng)站。
  
  據新浪微博開(kāi)放平臺相關(guān)頁(yè)面介紹,用戶(hù)可以通過(guò)點(diǎn)贊按鈕同時(shí)表達態(tài)度、發(fā)現朋友、分享內容。
  隨時(shí)隨地輕松表達態(tài)度——用戶(hù)瀏覽網(wǎng)頁(yè),找到自己喜歡的內容,一鍵“贊”即可表達心情,方便快捷
  發(fā)現朋友——“喜歡”按鈕也會(huì )顯示表達過(guò)他們態(tài)度的用戶(hù)。如果你的微博朋友也“點(diǎn)贊”了,那你就會(huì )看到她/他
  同步內容分享-----點(diǎn)擊按鈕后,用戶(hù)將一條收錄對象內容的動(dòng)態(tài)消息同步到微博,并通過(guò)微博繼續傳播
  網(wǎng)站 開(kāi)發(fā)人員現在可以將此按鈕嵌入到他們自己的 網(wǎng)站 中。
  Like按鈕最早出現在FriendFeed(Twitter的競爭對手,后來(lái)被Facebook收購)網(wǎng)站,然后被Facebook發(fā)揚光大,現在充斥著(zhù)世界各個(gè)角落(中國除外)。我用 36 氪 文章 寫(xiě)了一篇文章,解釋了 Like 按鈕的強大:
  帶有“贊”按鈕網(wǎng)站 的媒體將其推薦流量平均增加了 300%。
  Levi's 于 2010 年 4 月添加了 Like 按鈕,此后流量增長(cháng)了 40 倍并保持穩定。
  添加“贊”按鈕后,收入在 2 周內增長(cháng)了 100%。
  添加贊按鈕后,Tea 采集 的每日收入翻了 10 倍。
  但是,要實(shí)現這個(gè)效果,微博需要支持將用戶(hù)喜歡的內容同步到時(shí)間線(xiàn)(目前只顯示在自己的個(gè)人資料頁(yè)面)。上次與新浪微博開(kāi)放平臺總經(jīng)理楚大臣交流時(shí),他透露未來(lái)會(huì )加入這個(gè)功能,但他們還在探索內容的呈現方式。Timeline 中出現的點(diǎn)贊內容非常有利于流量,但處理不當會(huì )對用戶(hù)造成干擾。
  
 ?。▊€(gè)人資料頁(yè)面點(diǎn)贊按鈕的顯示效果)
  除了新浪微博,QQ空間和人人網(wǎng)也早就推出了自己的點(diǎn)贊按鈕。據說(shuō)騰訊微博很早就在規劃這個(gè)功能。
  對于微博來(lái)說(shuō),點(diǎn)贊按鈕可以讓他們采集大量的用戶(hù)數據,這對于未來(lái)無(wú)論是用于投放精準廣告還是對內容進(jìn)行個(gè)性化推薦都將是非常有價(jià)值的。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博推出可嵌入到第三方網(wǎng)站的贊按鈕(組圖))
  【編者按】網(wǎng)站 正在建設中,還有一種方式分享。
  在網(wǎng)頁(yè)版微博和手機客戶(hù)端推出點(diǎn)贊按鈕后,新浪微博現在有了一個(gè)可以嵌入第三方的點(diǎn)贊按鈕網(wǎng)站。
  
  據新浪微博開(kāi)放平臺相關(guān)頁(yè)面介紹,用戶(hù)可以通過(guò)點(diǎn)贊按鈕同時(shí)表達態(tài)度、發(fā)現朋友、分享內容。
  隨時(shí)隨地輕松表達態(tài)度——用戶(hù)瀏覽網(wǎng)頁(yè),找到自己喜歡的內容,一鍵“贊”即可表達心情,方便快捷
  發(fā)現朋友——“喜歡”按鈕也會(huì )顯示表達過(guò)他們態(tài)度的用戶(hù)。如果你的微博朋友也“點(diǎn)贊”了,那你就會(huì )看到她/他
  同步內容分享-----點(diǎn)擊按鈕后,用戶(hù)將一條收錄對象內容的動(dòng)態(tài)消息同步到微博,并通過(guò)微博繼續傳播
  網(wǎng)站 開(kāi)發(fā)人員現在可以將此按鈕嵌入到他們自己的 網(wǎng)站 中。
  Like按鈕最早出現在FriendFeed(Twitter的競爭對手,后來(lái)被Facebook收購)網(wǎng)站,然后被Facebook發(fā)揚光大,現在充斥著(zhù)世界各個(gè)角落(中國除外)。我用 36 氪 文章 寫(xiě)了一篇文章,解釋了 Like 按鈕的強大:
  帶有“贊”按鈕網(wǎng)站 的媒體將其推薦流量平均增加了 300%。
  Levi's 于 2010 年 4 月添加了 Like 按鈕,此后流量增長(cháng)了 40 倍并保持穩定。
  添加“贊”按鈕后,收入在 2 周內增長(cháng)了 100%。
  添加贊按鈕后,Tea 采集 的每日收入翻了 10 倍。
  但是,要實(shí)現這個(gè)效果,微博需要支持將用戶(hù)喜歡的內容同步到時(shí)間線(xiàn)(目前只顯示在自己的個(gè)人資料頁(yè)面)。上次與新浪微博開(kāi)放平臺總經(jīng)理楚大臣交流時(shí),他透露未來(lái)會(huì )加入這個(gè)功能,但他們還在探索內容的呈現方式。Timeline 中出現的點(diǎn)贊內容非常有利于流量,但處理不當會(huì )對用戶(hù)造成干擾。
  
 ?。▊€(gè)人資料頁(yè)面點(diǎn)贊按鈕的顯示效果)
  除了新浪微博,QQ空間和人人網(wǎng)也早就推出了自己的點(diǎn)贊按鈕。據說(shuō)騰訊微博很早就在規劃這個(gè)功能。
  對于微博來(lái)說(shuō),點(diǎn)贊按鈕可以讓他們采集大量的用戶(hù)數據,這對于未來(lái)無(wú)論是用于投放精準廣告還是對內容進(jìn)行個(gè)性化推薦都將是非常有價(jià)值的。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博V2版PHPSDKDemo使用教程版Demo演示地址)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 77 次瀏覽 ? 2021-10-21 02:17 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博V2版PHPSDKDemo使用教程版Demo演示地址)
  ==================
  用于新浪微博開(kāi)放平臺的PHP SDK。收錄可以直接使用的DEMO。
  SAE(Sina App Engine,)內置SDK,無(wú)需下載,需要手動(dòng)調用require_once('saetv2.ex.class.php');
  作曲家
  composer.phar 需要 xiaosier/libweibo:dev-master
  微博寫(xiě)界面說(shuō)明
  由于微博開(kāi)放平臺的調整,寫(xiě)界面需要切換到分享分享界面,說(shuō)明是%E3%80%90%E5%B9%B3%E5%8F%B0%E5 %85%AC%E5% 91%8A%E3%80%91%E5%BE%AE%E5%8D%9A%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F %B0%E5%88% 86%E4%BA%AB%E5%88%B0%E5%BE%AE%E5%8D%9A%E6%8E%A5%E5%8F%A3%E5%8D%87 %E7%BA%A7% E5%85%AC 在這里。您需要使用 $instance->share($status, $pic);調用時(shí)的方法,例如:
  share($status.'', ??$file_local);var_dump($ret);">
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , WB_ACCESSTOKEN );
// 待發(fā)送的文字內容
$status = '發(fā)送的文字內容';
// 本地一張圖片,也可以不帶圖片
$file_local = '5486087cly1fhh2yaksr1j20j60srtd0.jpg';
// 拼接'http://weibosdk.sinaapp.com/'是因為這個(gè)share接口至少要帶上一個(gè)【安全域名】下的鏈接。
$ret = $c->share($status.'http://weibosdk.sinaapp.com/', $file_local);
var_dump($ret);
  更新說(shuō)明
  Demo 演示地址
  如何申請API Key
  您需要有新浪微博開(kāi)放平臺的API Key。在此處申請:
  關(guān)于Class的功能
  新浪微博V2版PHPSDK Demo使用教程
  新浪微博應用Demo教程
  OAuth 版演示教程
  錯誤跟蹤器
  有錯誤嗎?請在 GitHub 上創(chuàng )建問(wèn)題!
  作者授權 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博V2版PHPSDKDemo使用教程版Demo演示地址)
  ==================
  用于新浪微博開(kāi)放平臺的PHP SDK。收錄可以直接使用的DEMO。
  SAE(Sina App Engine,)內置SDK,無(wú)需下載,需要手動(dòng)調用require_once('saetv2.ex.class.php');
  作曲家
  composer.phar 需要 xiaosier/libweibo:dev-master
  微博寫(xiě)界面說(shuō)明
  由于微博開(kāi)放平臺的調整,寫(xiě)界面需要切換到分享分享界面,說(shuō)明是%E3%80%90%E5%B9%B3%E5%8F%B0%E5 %85%AC%E5% 91%8A%E3%80%91%E5%BE%AE%E5%8D%9A%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F %B0%E5%88% 86%E4%BA%AB%E5%88%B0%E5%BE%AE%E5%8D%9A%E6%8E%A5%E5%8F%A3%E5%8D%87 %E7%BA%A7% E5%85%AC 在這里。您需要使用 $instance->share($status, $pic);調用時(shí)的方法,例如:
  share($status.'', ??$file_local);var_dump($ret);">
  $c = new SaeTClientV2( WB_AKEY , WB_SKEY , WB_ACCESSTOKEN );
// 待發(fā)送的文字內容
$status = '發(fā)送的文字內容';
// 本地一張圖片,也可以不帶圖片
$file_local = '5486087cly1fhh2yaksr1j20j60srtd0.jpg';
// 拼接'http://weibosdk.sinaapp.com/'是因為這個(gè)share接口至少要帶上一個(gè)【安全域名】下的鏈接。
$ret = $c->share($status.'http://weibosdk.sinaapp.com/', $file_local);
var_dump($ret);
  更新說(shuō)明
  Demo 演示地址
  如何申請API Key
  您需要有新浪微博開(kāi)放平臺的API Key。在此處申請:
  關(guān)于Class的功能
  新浪微博V2版PHPSDK Demo使用教程
  新浪微博應用Demo教程
  OAuth 版演示教程
  錯誤跟蹤器
  有錯誤嗎?請在 GitHub 上創(chuàng )建問(wèn)題!
  作者授權

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博新的API授權方式為OAuth2以往的BasicAuth(圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2021-10-19 11:09 ? 來(lái)自相關(guān)話(huà)題

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博新的API授權方式為OAuth2以往的BasicAuth(圖))
  1、注冊新浪賬號2、開(kāi)發(fā)者認證
  我需要認證,我等了一天。提交身份認證后即可使用,無(wú)需等待認證通過(guò)。
  3、創(chuàng )建APP
  系統會(huì )為此應用分配一個(gè)APP KEY和APP SECRET。這兩個(gè)字符串非常重要,將在以后的身份驗證或信息交換中使用。
  4、設置應用授權回調頁(yè)面
  應用信息-高級信息-OAuth2.0 授權設置,設置授權回調頁(yè)面。
  如果沒(méi)有自己的網(wǎng)站,可以設置redirecturl為,程序中的redirecturl要和這個(gè)一致。
  如圖所示:
  
  如果沒(méi)有設置授權回調頁(yè)面地址,或者程序與此不同,會(huì )出現如下錯誤:
  訪(fǎng)問(wèn)出錯了!
你所訪(fǎng)問(wèn)的站點(diǎn)在新浪微博的認證失敗,請你聯(lián)系gnocob或者稍后再試。
(error:redirect_uri_mismatch)
  如圖所示:
  
  5、下載所需版本的sdk
  6、查看可用的 API
  %E6%96%87%E6%A1%A3
  可用于我的應用程序的接口:
  
  7、測試及其他
  Python SDK 調用 API 測試如下:
  #encoding=utf-8
from weibo import APIClient
def get_access_token(app_key, app_secret, callback_url):
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
# 獲取授權頁(yè)面網(wǎng)址
auth_url = client.get_authorize_url()
print auth_url

# 在瀏覽器中訪(fǎng)問(wèn)這個(gè)URL,會(huì )跳轉到回調地址,回調地址后面跟著(zhù)code,輸入code
code = raw_input("Input code:")
r = client.request_access_token(code)
access_token = r.access_token
# token過(guò)期的UNIX時(shí)間
expires_in = r.expires_in
print 'access_token:',access_token
print 'expires_in:', expires_in
return access_token, expires_in
if __name__ == '__main__':
app_key = '1234567'
app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
callback_url = 'https://api.weibo.com/oauth2/default.html'
access_token, expires_in = get_access_token(app_key, app_secret, callback_url)
# 上面的語(yǔ)句運行一次后,可保存得到的access token,不必每次都申請
#access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
#expires_in = '00000000'
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
client.set_access_token(access_token, expires_in)
# 使用獲得的OAuth2.0 Access Token調用API
print client.get.statuses__user_timeline()
print client.post.statuses__update(status=u'測試OAuth 2.0發(fā)微博')
  OAuth 認證方式:
  得到auth_url后,長(cháng)這樣:
  %3A//oauth2/default.html&response_type=code&client_id=180341588&display=default,
  用瀏覽器打開(kāi),會(huì )跳轉到授權回調頁(yè)面地址,像這樣:
  ,
  獲取后面的code值,申請access_token。成功后即可獲得訪(fǎng)問(wèn)權限。
  注意新浪微博新的API授權方式是OAuth2,與之前的Basic Auth不同。詳細參考:
  如何使用OAuth2以及如何使用API??,請參考:
  如果在使用過(guò)程中出現問(wèn)題,在google或者官方論壇搜索提示信息, 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博新的API授權方式為OAuth2以往的BasicAuth(圖))
  1、注冊新浪賬號2、開(kāi)發(fā)者認證
  我需要認證,我等了一天。提交身份認證后即可使用,無(wú)需等待認證通過(guò)。
  3、創(chuàng )建APP
  系統會(huì )為此應用分配一個(gè)APP KEY和APP SECRET。這兩個(gè)字符串非常重要,將在以后的身份驗證或信息交換中使用。
  4、設置應用授權回調頁(yè)面
  應用信息-高級信息-OAuth2.0 授權設置,設置授權回調頁(yè)面。
  如果沒(méi)有自己的網(wǎng)站,可以設置redirecturl為,程序中的redirecturl要和這個(gè)一致。
  如圖所示:
  
  如果沒(méi)有設置授權回調頁(yè)面地址,或者程序與此不同,會(huì )出現如下錯誤:
  訪(fǎng)問(wèn)出錯了!
你所訪(fǎng)問(wèn)的站點(diǎn)在新浪微博的認證失敗,請你聯(lián)系gnocob或者稍后再試。
(error:redirect_uri_mismatch)
  如圖所示:
  
  5、下載所需版本的sdk
  6、查看可用的 API
  %E6%96%87%E6%A1%A3
  可用于我的應用程序的接口:
  
  7、測試及其他
  Python SDK 調用 API 測試如下:
  #encoding=utf-8
from weibo import APIClient
def get_access_token(app_key, app_secret, callback_url):
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
# 獲取授權頁(yè)面網(wǎng)址
auth_url = client.get_authorize_url()
print auth_url

# 在瀏覽器中訪(fǎng)問(wèn)這個(gè)URL,會(huì )跳轉到回調地址,回調地址后面跟著(zhù)code,輸入code
code = raw_input("Input code:")
r = client.request_access_token(code)
access_token = r.access_token
# token過(guò)期的UNIX時(shí)間
expires_in = r.expires_in
print 'access_token:',access_token
print 'expires_in:', expires_in
return access_token, expires_in
if __name__ == '__main__':
app_key = '1234567'
app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
callback_url = 'https://api.weibo.com/oauth2/default.html'
access_token, expires_in = get_access_token(app_key, app_secret, callback_url)
# 上面的語(yǔ)句運行一次后,可保存得到的access token,不必每次都申請
#access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
#expires_in = '00000000'
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
client.set_access_token(access_token, expires_in)
# 使用獲得的OAuth2.0 Access Token調用API
print client.get.statuses__user_timeline()
print client.post.statuses__update(status=u'測試OAuth 2.0發(fā)微博')
  OAuth 認證方式:
  得到auth_url后,長(cháng)這樣:
  %3A//oauth2/default.html&response_type=code&client_id=180341588&display=default,
  用瀏覽器打開(kāi),會(huì )跳轉到授權回調頁(yè)面地址,像這樣:
  ,
  獲取后面的code值,申請access_token。成功后即可獲得訪(fǎng)問(wèn)權限。
  注意新浪微博新的API授權方式是OAuth2,與之前的Basic Auth不同。詳細參考:
  如何使用OAuth2以及如何使用API??,請參考:
  如果在使用過(guò)程中出現問(wèn)題,在google或者官方論壇搜索提示信息,

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久