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

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

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

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API,可以生成短鏈接,同時(shí)可以傳輸多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,一般來(lái)說(shuō)就是通過(guò)程序計算的方式將一個(gè)長(cháng)的URL URL 轉換成一個(gè)短的URL 字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  
// APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p> 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API,可以生成短鏈接,同時(shí)可以傳輸多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,一般來(lái)說(shuō)就是通過(guò)程序計算的方式將一個(gè)長(cháng)的URL URL 轉換成一個(gè)短的URL 字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  
// APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p>

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(wordpress網(wǎng)站可以寫(xiě)php代碼1.php文件測試.php)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(wordpress網(wǎng)站可以寫(xiě)php代碼1.php文件測試.php)
  據說(shuō)wordpress網(wǎng)站可以在發(fā)帖時(shí)將文章同步到新浪微博,想寫(xiě)一個(gè)php代碼測試基于同樣的方法。以下內容引自:
  微博同步方式大致有插件、關(guān)聯(lián)博客、非插件微博三種方式
  第一種是直接在百度上搜索;
  其次,因為新浪現在取消了鏈接博客的選項,但該功能并未取消??梢栽?xún)問(wèn)下面的地址,然后進(jìn)行配置。
  第三種方法需要使用新浪的接口,如下:
  1) 前往新浪微博開(kāi)放平臺創(chuàng )建站內應用。審核不通過(guò)沒(méi)關(guān)系,但是如果通過(guò)了,可以在微博底部展示來(lái)自XX的應用,比如來(lái)自KingGoo科技博客的圖片。如何創(chuàng )建它?在百度google上搜索,很簡(jiǎn)單(但是如果你沒(méi)有通過(guò)審核想通過(guò)審核,我可以提供付費幫助嘎嘎~),創(chuàng )建應用后,需要使用App Key申請下面的應用程序;
  2)編輯你的主題的functions.php文件并在最后添加以下代碼
  // 微博同步function post_to_sina_weibo($post_ID) { if( wp_is_post_revision($post_ID) ) return; $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; //去掉文章內的html編碼的空格、換行、tab等符號(如果你文章的編碼格式是這樣子,可以將下面的"//"去掉即開(kāi)啟此功能) //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent))); $get_post_title = get_post($post_ID)->post_title; if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { $request = new WP_Http; $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ; $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'4135063399'); $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); /* 如果你使用改方法,請注釋掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); 換成如下代碼 //你的新浪微博登陸名 $username = '' ; //你的新浪微博登陸密碼 $password = '' ; $headers = array( 'Authorization' => 'Basic ' . base64_encode('$username:$password')); */ $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) ); }}add_action('publish_post', 'post_to_sina_weibo', 0);
  文章需要用到wordpress自帶的WP_Http類(lèi),我在github上找到了替代品:
  關(guān)于這個(gè)類(lèi)的一個(gè)說(shuō)明:EasyHttp是一個(gè)php類(lèi),可以幫助你忽略不同的php環(huán)境條件,亂發(fā)送http請求。您不再需要關(guān)注當前的 php 環(huán)境是否支持 curl/fsockopen/fopen,EasyHttp 會(huì )自動(dòng)選擇最合適的方式進(jìn)行 http 請求。EasyHttp 派生自 WordPress 中的 WP_Http 類(lèi),它去除了對其他 WordPress 功能的所有依賴(lài),將其拆分為不同的文件,并進(jìn)行了少量的簡(jiǎn)化。
  根據以上內容,編寫(xiě)php代碼1.php:
  當瀏覽器訪(fǎng)問(wèn)1.php時(shí),返回如下內容:
  Array ([headers] =&gt; Array ([server] =&gt; nginx/1.2.0 [date] =&gt; Sun, 13 Oct 2013 02:23:46 GMT [content-type] =&gt; text/plain;charset=UTF-8 [content-length] =&gt; 76 [connection] =&gt; close [api-server-ip] =&gt; 10.75.0.170 [變化] =&gt; Accept-Encoding [x-varnish] =&gt; 3299864740 [age] =&gt; 0 [via] =&gt; 1.1 varnish) [body] =&gt; Bad Content-Type header value:'application/ x-www-form-urlencoded; charset=' [response] =&gt; Array ([code] =&gt; 400 [message] =&gt; Bad Request) [cookies] =&gt; Array () [filename] =&gt;)
  好像是 400 Bad Request。百度一下,意思是“由于語(yǔ)法格式錯誤,服務(wù)器無(wú)法理解這個(gè)請求。不修改,客戶(hù)端程序不能重復這個(gè)請求?!?br />   你怎么解決這個(gè)問(wèn)題? 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(wordpress網(wǎng)站可以寫(xiě)php代碼1.php文件測試.php)
  據說(shuō)wordpress網(wǎng)站可以在發(fā)帖時(shí)將文章同步到新浪微博,想寫(xiě)一個(gè)php代碼測試基于同樣的方法。以下內容引自:
  微博同步方式大致有插件、關(guān)聯(lián)博客、非插件微博三種方式
  第一種是直接在百度上搜索;
  其次,因為新浪現在取消了鏈接博客的選項,但該功能并未取消??梢栽?xún)問(wèn)下面的地址,然后進(jìn)行配置。
  第三種方法需要使用新浪的接口,如下:
  1) 前往新浪微博開(kāi)放平臺創(chuàng )建站內應用。審核不通過(guò)沒(méi)關(guān)系,但是如果通過(guò)了,可以在微博底部展示來(lái)自XX的應用,比如來(lái)自KingGoo科技博客的圖片。如何創(chuàng )建它?在百度google上搜索,很簡(jiǎn)單(但是如果你沒(méi)有通過(guò)審核想通過(guò)審核,我可以提供付費幫助嘎嘎~),創(chuàng )建應用后,需要使用App Key申請下面的應用程序;
  2)編輯你的主題的functions.php文件并在最后添加以下代碼
  // 微博同步function post_to_sina_weibo($post_ID) { if( wp_is_post_revision($post_ID) ) return; $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; //去掉文章內的html編碼的空格、換行、tab等符號(如果你文章的編碼格式是這樣子,可以將下面的"//"去掉即開(kāi)啟此功能) //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent))); $get_post_title = get_post($post_ID)->post_title; if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { $request = new WP_Http; $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ; $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'4135063399'); $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); /* 如果你使用改方法,請注釋掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); 換成如下代碼 //你的新浪微博登陸名 $username = '' ; //你的新浪微博登陸密碼 $password = '' ; $headers = array( 'Authorization' => 'Basic ' . base64_encode('$username:$password')); */ $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) ); }}add_action('publish_post', 'post_to_sina_weibo', 0);
  文章需要用到wordpress自帶的WP_Http類(lèi),我在github上找到了替代品:
  關(guān)于這個(gè)類(lèi)的一個(gè)說(shuō)明:EasyHttp是一個(gè)php類(lèi),可以幫助你忽略不同的php環(huán)境條件,亂發(fā)送http請求。您不再需要關(guān)注當前的 php 環(huán)境是否支持 curl/fsockopen/fopen,EasyHttp 會(huì )自動(dòng)選擇最合適的方式進(jìn)行 http 請求。EasyHttp 派生自 WordPress 中的 WP_Http 類(lèi),它去除了對其他 WordPress 功能的所有依賴(lài),將其拆分為不同的文件,并進(jìn)行了少量的簡(jiǎn)化。
  根據以上內容,編寫(xiě)php代碼1.php:
  當瀏覽器訪(fǎng)問(wèn)1.php時(shí),返回如下內容:
  Array ([headers] =&gt; Array ([server] =&gt; nginx/1.2.0 [date] =&gt; Sun, 13 Oct 2013 02:23:46 GMT [content-type] =&gt; text/plain;charset=UTF-8 [content-length] =&gt; 76 [connection] =&gt; close [api-server-ip] =&gt; 10.75.0.170 [變化] =&gt; Accept-Encoding [x-varnish] =&gt; 3299864740 [age] =&gt; 0 [via] =&gt; 1.1 varnish) [body] =&gt; Bad Content-Type header value:'application/ x-www-form-urlencoded; charset=' [response] =&gt; Array ([code] =&gt; 400 [message] =&gt; Bad Request) [cookies] =&gt; Array () [filename] =&gt;)
  好像是 400 Bad Request。百度一下,意思是“由于語(yǔ)法格式錯誤,服務(wù)器無(wú)法理解這個(gè)請求。不修改,客戶(hù)端程序不能重復這個(gè)請求?!?br />   你怎么解決這個(gè)問(wèn)題?

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(WeiboSDK新浪微博SDKv3源碼和示例(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(WeiboSDK新浪微博SDKv3源碼和示例(圖))
  WeiboSDK 新浪微博SDK v3 源代碼和示例前言
  時(shí)間過(guò)得真快,距離上次SDK更新已經(jīng)3年多了。隨著(zhù)正式版的不斷更新,老SDK的部分接口已經(jīng)不能正常使用了。于是,QQ群里抱怨辱罵的朋友開(kāi)始增多。隨著(zhù)時(shí)代的發(fā)展,微博已經(jīng)被微信徹底甩掉,失去了興趣;同時(shí),對于我自己來(lái)說(shuō),在這個(gè)行業(yè)里為了生存而生存幾年后,日子越來(lái)越不好過(guò),我沒(méi)有時(shí)間。然后和新浪官方同步更新SDK,所以自13年之后,V2版本的SDK就沒(méi)有再更新了。雖然微博的風(fēng)潮沒(méi)了,但還是有很多朋友通過(guò)新浪開(kāi)放平臺頁(yè)面下載了我發(fā)布的SDK??梢哉f(shuō),由于長(cháng)期不更新,老版本嚴重誤導了新朋友。這也是我開(kāi)發(fā)的。SDK 新版本的另一個(gè)重要原因。SDK第三版的一些說(shuō)明
  指示
  第一步是初始化客戶(hù)端
  如果用戶(hù)沒(méi)有被授權
  使用微博開(kāi)放平臺后臺提供的appkey、appsecret、callback_url初始化客戶(hù)端。
  ", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "");
  然后獲取授權頁(yè)面地址,訪(fǎng)問(wèn)授權地址,獲取Authorization_Code
  var url = openAuth.GetAuthorizationUrl();
  根據返回的Code兌換AccessToken
  openAuth.GetAccessTokenByCode("[CODE]");
if(openAuth.IsAuthorized)
{
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
}
  重要的?。?!獲取到AccessToken和UID后,請保存這兩個(gè)數據,以后的接口調用會(huì )直接使用這兩個(gè)參數,所以不需要每次都執行第一步和第二步。
  接下來(lái)就可以跳轉到第二步調用官方API了。
  當然,如果你之前已經(jīng)被授權并且已經(jīng)獲得了AccessToken和UID,那么使用下面的方法來(lái)初始化客戶(hù)端。
  ", "", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "", "");
  之后就可以直接跳轉到第二步調用API了。
  第二步調用接口
  這里提供了Get和Post兩個(gè)方法調用官方API,也提供了異步支持。使用時(shí)根據官方文檔的要求選擇是使用Get還是Post調用API(調用方法在官方文檔中有明確說(shuō)明)。
  調用接口傳遞參數有兩種方式。一個(gè)是傳入一個(gè)Dictionary類(lèi)型的參數組,一個(gè)是傳入一個(gè)名為new的匿名類(lèi)。我個(gè)人認為使用匿名類(lèi)是非??茖W(xué)的。
  例如調用API獲取當前登錄用戶(hù)的最新微博
  {{"count", 5},{"page", 1},{"base_app", 0}}); //這里可以使用字典或者匿名類(lèi)來(lái)傳遞參數,參數名,大小寫(xiě),參數順序和規范請參考官方api文檔 if (result.IsSuccessStatusCode){Console.WriteLine(result.Content.ReadAsStringAsync( ).結果);}"&gt;
  var result = openAuth.HttpGet("statuses/friends_timeline.json",
new Dictionary
{
{"count", 5},
{"page", 1},
{"base_app" , 0}
}); //這里可以使用字典或者匿名類(lèi)的方式傳遞參數,參數名稱(chēng)、大小寫(xiě)、參數順序和規范請參照官方api文檔
if (result.IsSuccessStatusCode)
{
Console.WriteLine(result.Content.ReadAsStringAsync().Result);
}
  另外,如果需要異步調用,請參考下面的例子。
  對象的類(lèi)型也可以直接傳入匿名類(lèi)。參數對應官方api文檔中的參數 new {uid = openAuth.UID});response.ContinueWith(task =&gt;{//asynchronous processing result});"&gt;
  // 調用獲取獲取用戶(hù)信息api
// 參考:http://open.weibo.com/wiki/2/users/show
var response = openAuth.HttpGetAsync("users/show.json",
//可以傳入一個(gè)Dictionary類(lèi)型的對象,也可以直接傳入一個(gè)匿名類(lèi)。參數與官方api文檔中的參數相對應
new {
uid = openAuth.UID
});
response.ContinueWith(task =>{
//異步處理結果
});
  如果使用.net4.5,可以直接使用async和await關(guān)鍵字來(lái)簡(jiǎn)化上述操作。
  另外,由于新浪官方限制現在產(chǎn)生了登錄驗證碼,新版SDK不再提供之前版本的模擬登錄獲取授權(ClientLogin)。對于Winform和Console應用,可以參考NetDimension.OpenAuth.Winform類(lèi),該類(lèi)提供了擴展方法,可以在上述兩種項目類(lèi)型中彈出授權窗口,并在用戶(hù)授權后自動(dòng)獲取Authorization_Code。具體操作請參見(jiàn)Winform和Console示例代碼。
  using NetDimension.OpenAuth.Winform;
...
var form = openAuth.GetAuthenticationForm();
if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Console.WriteLine("用戶(hù)授權成功!");
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
//其他操作
//...
}
else
{
Console.WriteLine("用戶(hù)授權失??!");
}
  執行上述代碼時(shí),會(huì )彈出下圖所示的窗口。
  用戶(hù)登錄后,SDK 會(huì )使用正則表達式從回調地址中獲取 Authorization_Code。
  關(guān)于源代碼中的例子
  例子沒(méi)什么好說(shuō)的。源代碼中有三個(gè)示例。它們是一個(gè) MVC 網(wǎng)頁(yè)示例、兩個(gè)桌面控制臺和 WinForm 示例。
  示例中,明文寫(xiě)了一組APPKey以及對應的Secret和回調地址。如果你不改變它,這個(gè)例子應該可以正常工作。如果改成自己的Key出現錯誤,請自行谷歌設置回調地址。
  MVC 的示例設置稍微復雜一些。需要修改IIS Express的配置,使得網(wǎng)站可以通過(guò)127.0.0.1或192.16 8.0.100這樣的IP地址是可以訪(fǎng)問(wèn)的,否則在回調過(guò)程中無(wú)法訪(fǎng)問(wèn)。MVC示例的主頁(yè)上有修改教程。如果示例不起作用,請打開(kāi) Views\Home\Index.cshtml 查看是否已修改。
  Winform 示例運行截圖
  
  
  網(wǎng)站示例運行截圖
  
  還有一點(diǎn)需要注意的是,如果你使用的是VS2015,IIS Express配置文件applicationhost.config的地址不再是“Documents\IIS Express\”,而是在項目地址下的.vs目錄下,這是一個(gè)隱藏目錄, 直接在地址欄中輸入路徑即可訪(fǎng)問(wèn)。
  控制臺示例運行的屏幕截圖
  
  有調用騰訊微博的例子,但是騰訊的要求很?chē)栏?。申請app需要網(wǎng)站驗證,因為我用的是朋友的網(wǎng)站,所以請有需要的朋友或者自己注冊app(騰訊微博開(kāi)發(fā)者平臺的api文檔服務(wù)器是不是掛了?反正,我提不起來(lái)。)另外,在騰訊的例子中,有一種在微博上發(fā)圖片的方法,嚴格按照騰訊api文檔寫(xiě)的,但是不能正常使用。如果有朋友知道原因,請告訴我們。騰訊的例子只是為了說(shuō)明新版SDK可以通過(guò)繼承方便的擴展到微信開(kāi)放平臺、人人網(wǎng)等其他平臺。請了解如何使用它。
  示例代碼已收錄在源代碼中,具體請自行查閱代碼。
  以上是新版本的全部?jì)热荨?br />   正如開(kāi)頭所說(shuō),新浪微博覺(jué)得大勢已去,所以本次微博SDK不會(huì )更新新版本。本SDK第三版為最終版本,僅用于維護和BUG修正,不再添加或更新新內容。如果有繼續對新浪開(kāi)發(fā)平臺感興趣的朋友,請到GitHub上克隆代碼,根據需要擴展功能。
  最后感謝QQ群里的所有朋友這幾年的支持和鼓勵,謝謝。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(WeiboSDK新浪微博SDKv3源碼和示例(圖))
  WeiboSDK 新浪微博SDK v3 源代碼和示例前言
  時(shí)間過(guò)得真快,距離上次SDK更新已經(jīng)3年多了。隨著(zhù)正式版的不斷更新,老SDK的部分接口已經(jīng)不能正常使用了。于是,QQ群里抱怨辱罵的朋友開(kāi)始增多。隨著(zhù)時(shí)代的發(fā)展,微博已經(jīng)被微信徹底甩掉,失去了興趣;同時(shí),對于我自己來(lái)說(shuō),在這個(gè)行業(yè)里為了生存而生存幾年后,日子越來(lái)越不好過(guò),我沒(méi)有時(shí)間。然后和新浪官方同步更新SDK,所以自13年之后,V2版本的SDK就沒(méi)有再更新了。雖然微博的風(fēng)潮沒(méi)了,但還是有很多朋友通過(guò)新浪開(kāi)放平臺頁(yè)面下載了我發(fā)布的SDK??梢哉f(shuō),由于長(cháng)期不更新,老版本嚴重誤導了新朋友。這也是我開(kāi)發(fā)的。SDK 新版本的另一個(gè)重要原因。SDK第三版的一些說(shuō)明
  指示
  第一步是初始化客戶(hù)端
  如果用戶(hù)沒(méi)有被授權
  使用微博開(kāi)放平臺后臺提供的appkey、appsecret、callback_url初始化客戶(hù)端。
  ", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "");
  然后獲取授權頁(yè)面地址,訪(fǎng)問(wèn)授權地址,獲取Authorization_Code
  var url = openAuth.GetAuthorizationUrl();
  根據返回的Code兌換AccessToken
  openAuth.GetAccessTokenByCode("[CODE]");
if(openAuth.IsAuthorized)
{
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
}
  重要的?。?!獲取到AccessToken和UID后,請保存這兩個(gè)數據,以后的接口調用會(huì )直接使用這兩個(gè)參數,所以不需要每次都執行第一步和第二步。
  接下來(lái)就可以跳轉到第二步調用官方API了。
  當然,如果你之前已經(jīng)被授權并且已經(jīng)獲得了AccessToken和UID,那么使用下面的方法來(lái)初始化客戶(hù)端。
  ", "", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "", "");
  之后就可以直接跳轉到第二步調用API了。
  第二步調用接口
  這里提供了Get和Post兩個(gè)方法調用官方API,也提供了異步支持。使用時(shí)根據官方文檔的要求選擇是使用Get還是Post調用API(調用方法在官方文檔中有明確說(shuō)明)。
  調用接口傳遞參數有兩種方式。一個(gè)是傳入一個(gè)Dictionary類(lèi)型的參數組,一個(gè)是傳入一個(gè)名為new的匿名類(lèi)。我個(gè)人認為使用匿名類(lèi)是非??茖W(xué)的。
  例如調用API獲取當前登錄用戶(hù)的最新微博
  {{"count", 5},{"page", 1},{"base_app", 0}}); //這里可以使用字典或者匿名類(lèi)來(lái)傳遞參數,參數名,大小寫(xiě),參數順序和規范請參考官方api文檔 if (result.IsSuccessStatusCode){Console.WriteLine(result.Content.ReadAsStringAsync( ).結果);}"&gt;
  var result = openAuth.HttpGet("statuses/friends_timeline.json",
new Dictionary
{
{"count", 5},
{"page", 1},
{"base_app" , 0}
}); //這里可以使用字典或者匿名類(lèi)的方式傳遞參數,參數名稱(chēng)、大小寫(xiě)、參數順序和規范請參照官方api文檔
if (result.IsSuccessStatusCode)
{
Console.WriteLine(result.Content.ReadAsStringAsync().Result);
}
  另外,如果需要異步調用,請參考下面的例子。
  對象的類(lèi)型也可以直接傳入匿名類(lèi)。參數對應官方api文檔中的參數 new {uid = openAuth.UID});response.ContinueWith(task =&gt;{//asynchronous processing result});"&gt;
  // 調用獲取獲取用戶(hù)信息api
// 參考:http://open.weibo.com/wiki/2/users/show
var response = openAuth.HttpGetAsync("users/show.json",
//可以傳入一個(gè)Dictionary類(lèi)型的對象,也可以直接傳入一個(gè)匿名類(lèi)。參數與官方api文檔中的參數相對應
new {
uid = openAuth.UID
});
response.ContinueWith(task =>{
//異步處理結果
});
  如果使用.net4.5,可以直接使用async和await關(guān)鍵字來(lái)簡(jiǎn)化上述操作。
  另外,由于新浪官方限制現在產(chǎn)生了登錄驗證碼,新版SDK不再提供之前版本的模擬登錄獲取授權(ClientLogin)。對于Winform和Console應用,可以參考NetDimension.OpenAuth.Winform類(lèi),該類(lèi)提供了擴展方法,可以在上述兩種項目類(lèi)型中彈出授權窗口,并在用戶(hù)授權后自動(dòng)獲取Authorization_Code。具體操作請參見(jiàn)Winform和Console示例代碼。
  using NetDimension.OpenAuth.Winform;
...
var form = openAuth.GetAuthenticationForm();
if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Console.WriteLine("用戶(hù)授權成功!");
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
//其他操作
//...
}
else
{
Console.WriteLine("用戶(hù)授權失??!");
}
  執行上述代碼時(shí),會(huì )彈出下圖所示的窗口。
  用戶(hù)登錄后,SDK 會(huì )使用正則表達式從回調地址中獲取 Authorization_Code。
  關(guān)于源代碼中的例子
  例子沒(méi)什么好說(shuō)的。源代碼中有三個(gè)示例。它們是一個(gè) MVC 網(wǎng)頁(yè)示例、兩個(gè)桌面控制臺和 WinForm 示例。
  示例中,明文寫(xiě)了一組APPKey以及對應的Secret和回調地址。如果你不改變它,這個(gè)例子應該可以正常工作。如果改成自己的Key出現錯誤,請自行谷歌設置回調地址。
  MVC 的示例設置稍微復雜一些。需要修改IIS Express的配置,使得網(wǎng)站可以通過(guò)127.0.0.1或192.16 8.0.100這樣的IP地址是可以訪(fǎng)問(wèn)的,否則在回調過(guò)程中無(wú)法訪(fǎng)問(wèn)。MVC示例的主頁(yè)上有修改教程。如果示例不起作用,請打開(kāi) Views\Home\Index.cshtml 查看是否已修改。
  Winform 示例運行截圖
  
  
  網(wǎng)站示例運行截圖
  
  還有一點(diǎn)需要注意的是,如果你使用的是VS2015,IIS Express配置文件applicationhost.config的地址不再是“Documents\IIS Express\”,而是在項目地址下的.vs目錄下,這是一個(gè)隱藏目錄, 直接在地址欄中輸入路徑即可訪(fǎng)問(wèn)。
  控制臺示例運行的屏幕截圖
  
  有調用騰訊微博的例子,但是騰訊的要求很?chē)栏?。申請app需要網(wǎng)站驗證,因為我用的是朋友的網(wǎng)站,所以請有需要的朋友或者自己注冊app(騰訊微博開(kāi)發(fā)者平臺的api文檔服務(wù)器是不是掛了?反正,我提不起來(lái)。)另外,在騰訊的例子中,有一種在微博上發(fā)圖片的方法,嚴格按照騰訊api文檔寫(xiě)的,但是不能正常使用。如果有朋友知道原因,請告訴我們。騰訊的例子只是為了說(shuō)明新版SDK可以通過(guò)繼承方便的擴展到微信開(kāi)放平臺、人人網(wǎng)等其他平臺。請了解如何使用它。
  示例代碼已收錄在源代碼中,具體請自行查閱代碼。
  以上是新版本的全部?jì)热荨?br />   正如開(kāi)頭所說(shuō),新浪微博覺(jué)得大勢已去,所以本次微博SDK不會(huì )更新新版本。本SDK第三版為最終版本,僅用于維護和BUG修正,不再添加或更新新內容。如果有繼續對新浪開(kāi)發(fā)平臺感興趣的朋友,請到GitHub上克隆代碼,根據需要擴展功能。
  最后感謝QQ群里的所有朋友這幾年的支持和鼓勵,謝謝。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(直播服務(wù)器端安裝及下載地址:PPVOD頻道的輸入與輸出寫(xiě)法)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(直播服務(wù)器端安裝及下載地址:PPVOD頻道的輸入與輸出寫(xiě)法)
  應用場(chǎng)景:
  某幼兒園需要將教室的攝像頭監控畫(huà)面廣播到互聯(lián)網(wǎng)上,家長(cháng)可以通過(guò)網(wǎng)絡(luò )直播了解孩子在校情況。
  幼兒園安裝了某品牌的攝像頭,攝像頭的編碼為H264編碼,網(wǎng)絡(luò )攝像頭的訪(fǎng)問(wèn)地址為:rtsp://admin:[emailprotected]:554/h264/ch1/main/av_stream,其中可以通過(guò)VLC軟件查看地址的直播畫(huà)面。
  網(wǎng)絡(luò )和硬件構建如下:
  
  從上圖可以看出,一臺普通電腦和一套直播管理軟件就可以在幼兒園現場(chǎng)采集攝像機的RTSP地址,然后通過(guò)客戶(hù)端私有發(fā)送到網(wǎng)絡(luò )服務(wù)器的直播平臺。協(xié)議。一種觀(guān)看直播監控畫(huà)面的手機。
  
  客戶(hù)端通道的輸入輸出寫(xiě)入
  
  要使用私有協(xié)議,請在服務(wù)器端打開(kāi)端口 28002。輸入源寫(xiě)的是:client://client通道ID,寫(xiě)哪個(gè)通道字符串來(lái)接收哪個(gè)通道的流,輸出默認的HLS,并保存。
  由于普通攝像頭不具備rtmp碼流的功能,需要使用直播軟件將獲取到的RTSP碼流推送到網(wǎng)絡(luò )服務(wù)器。PPVOD直播軟件不僅具有各種協(xié)議轉換功能,還能通過(guò)私有協(xié)議將流從本地推送到網(wǎng)絡(luò )。服務(wù)器。PPVOD直播軟件的客戶(hù)端私有協(xié)議傳輸安全性高,頻道識別隨機性強,隱蔽性好,不能被外界破解。它是流媒體的最佳選擇。
  該方案成本低,無(wú)需特殊相機設置,應用范圍廣。目前,市場(chǎng)上90%以上的攝像機使用h264編碼,無(wú)需轉碼。如果攝像機的音頻不標準或者沒(méi)有音頻輸入,我們的直播平臺會(huì )做相應的處理,以滿(mǎn)足直播的需要。
  如果攝像機端基于公網(wǎng)靜態(tài)IP環(huán)境,服務(wù)器端可以直接獲取攝像機的網(wǎng)絡(luò )rtsp地址作為輸入源,可以跳過(guò)在攝像機網(wǎng)絡(luò )安裝直播系統的步驟。
  Live服務(wù)器端安裝下載地址:
  PPVOD視頻點(diǎn)播系統下載地址:
  PPVOD全能直播軟件下載地址: 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(直播服務(wù)器端安裝及下載地址:PPVOD頻道的輸入與輸出寫(xiě)法)
  應用場(chǎng)景:
  某幼兒園需要將教室的攝像頭監控畫(huà)面廣播到互聯(lián)網(wǎng)上,家長(cháng)可以通過(guò)網(wǎng)絡(luò )直播了解孩子在校情況。
  幼兒園安裝了某品牌的攝像頭,攝像頭的編碼為H264編碼,網(wǎng)絡(luò )攝像頭的訪(fǎng)問(wèn)地址為:rtsp://admin:[emailprotected]:554/h264/ch1/main/av_stream,其中可以通過(guò)VLC軟件查看地址的直播畫(huà)面。
  網(wǎng)絡(luò )和硬件構建如下:
  
  從上圖可以看出,一臺普通電腦和一套直播管理軟件就可以在幼兒園現場(chǎng)采集攝像機的RTSP地址,然后通過(guò)客戶(hù)端私有發(fā)送到網(wǎng)絡(luò )服務(wù)器的直播平臺。協(xié)議。一種觀(guān)看直播監控畫(huà)面的手機。
  
  客戶(hù)端通道的輸入輸出寫(xiě)入
  
  要使用私有協(xié)議,請在服務(wù)器端打開(kāi)端口 28002。輸入源寫(xiě)的是:client://client通道ID,寫(xiě)哪個(gè)通道字符串來(lái)接收哪個(gè)通道的流,輸出默認的HLS,并保存。
  由于普通攝像頭不具備rtmp碼流的功能,需要使用直播軟件將獲取到的RTSP碼流推送到網(wǎng)絡(luò )服務(wù)器。PPVOD直播軟件不僅具有各種協(xié)議轉換功能,還能通過(guò)私有協(xié)議將流從本地推送到網(wǎng)絡(luò )。服務(wù)器。PPVOD直播軟件的客戶(hù)端私有協(xié)議傳輸安全性高,頻道識別隨機性強,隱蔽性好,不能被外界破解。它是流媒體的最佳選擇。
  該方案成本低,無(wú)需特殊相機設置,應用范圍廣。目前,市場(chǎng)上90%以上的攝像機使用h264編碼,無(wú)需轉碼。如果攝像機的音頻不標準或者沒(méi)有音頻輸入,我們的直播平臺會(huì )做相應的處理,以滿(mǎn)足直播的需要。
  如果攝像機端基于公網(wǎng)靜態(tài)IP環(huán)境,服務(wù)器端可以直接獲取攝像機的網(wǎng)絡(luò )rtsp地址作為輸入源,可以跳過(guò)在攝像機網(wǎng)絡(luò )安裝直播系統的步驟。
  Live服務(wù)器端安裝下載地址:
  PPVOD視頻點(diǎn)播系統下載地址:
  PPVOD全能直播軟件下載地址:

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(歷時(shí)三天,新浪微博APP分享是未審核的應用了 )

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(歷時(shí)三天,新浪微博APP分享是未審核的應用了
)
  新浪微博開(kāi)放平臺申請已通過(guò)審核,歷時(shí)三天??磥?lái)這沒(méi)什么,還是寫(xiě)下來(lái)分享一下吧。下次共享不再是未經(jīng)審查的應用程序。這個(gè)新浪APP。. . . 申請的時(shí)候還以為不會(huì )通過(guò),因為我的域名沒(méi)有注冊。就像百度聯(lián)盟一樣,如果是真的就好了。新浪微博APP功能及性能:2.1個(gè)崩潰的應用程序將被拒絕;2.2個(gè)有錯誤的應用將被拒絕;2.3 不匹配開(kāi)發(fā)者的推廣應用將被拒絕;2.4 沒(méi)有申請文件或隱藏功能與描述不符的應用將被拒絕;2.5 使用非公開(kāi) API 的應用將被拒絕;2. 6 在指定容器外讀寫(xiě)數據的應用將被拒絕;2.7 以任何方式或形式下載代碼的應用將被拒絕;2.8 安裝或發(fā)布其他可執行代碼2.9 演示版、試用版和測試版的申請將被拒絕;2.10個(gè)與新浪微博開(kāi)放平臺現有申請重復的申請可能會(huì )被拒絕,尤其是數量大的時(shí)候;2.11個(gè)沒(méi)有明顯目的或提供任何持久娛樂(lè )價(jià)值的應用程序可能會(huì )被拒絕;2.12個(gè)主要內容為營(yíng)銷(xiāo)或廣告的應用程序將被拒絕;2.13個(gè)欺騙性或虛假功能,未明確標記的應用程序將被拒絕;2. 14 互聯(lián)網(wǎng)瀏覽應用必須使用新浪微博開(kāi)放平臺提供的網(wǎng)頁(yè)框架;2.15 提供 診斷錯誤或其他不準確數據的申請將被拒絕;2.16 將大量類(lèi)似版本應用上傳至新浪微博開(kāi)放平臺的開(kāi)發(fā)者將被移除開(kāi)發(fā)者項目;2.17個(gè)使用非法文件共享的應用將被拒絕;2.18個(gè)旨在用作非法賭博輔助工具(包括算牌)的應用程序將被拒絕;2. 19 具有匿名或惡作劇功能或發(fā)送類(lèi)似短信/彩信功能的應用程序將被拒絕;2.20名開(kāi)發(fā)者開(kāi)發(fā)秘密采集用戶(hù)密碼或用戶(hù)隱私數據的應用程序將從新浪微博開(kāi)放平臺下架;2. 21 應用程序中不允許彈出窗口;2.22 申請內容訪(fǎng)問(wèn)速度過(guò)慢,內容響應速度平均超過(guò)6秒,會(huì )被拒絕。最后,上圖:
  
  
  
   查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(歷時(shí)三天,新浪微博APP分享是未審核的應用了
)
  新浪微博開(kāi)放平臺申請已通過(guò)審核,歷時(shí)三天??磥?lái)這沒(méi)什么,還是寫(xiě)下來(lái)分享一下吧。下次共享不再是未經(jīng)審查的應用程序。這個(gè)新浪APP。. . . 申請的時(shí)候還以為不會(huì )通過(guò),因為我的域名沒(méi)有注冊。就像百度聯(lián)盟一樣,如果是真的就好了。新浪微博APP功能及性能:2.1個(gè)崩潰的應用程序將被拒絕;2.2個(gè)有錯誤的應用將被拒絕;2.3 不匹配開(kāi)發(fā)者的推廣應用將被拒絕;2.4 沒(méi)有申請文件或隱藏功能與描述不符的應用將被拒絕;2.5 使用非公開(kāi) API 的應用將被拒絕;2. 6 在指定容器外讀寫(xiě)數據的應用將被拒絕;2.7 以任何方式或形式下載代碼的應用將被拒絕;2.8 安裝或發(fā)布其他可執行代碼2.9 演示版、試用版和測試版的申請將被拒絕;2.10個(gè)與新浪微博開(kāi)放平臺現有申請重復的申請可能會(huì )被拒絕,尤其是數量大的時(shí)候;2.11個(gè)沒(méi)有明顯目的或提供任何持久娛樂(lè )價(jià)值的應用程序可能會(huì )被拒絕;2.12個(gè)主要內容為營(yíng)銷(xiāo)或廣告的應用程序將被拒絕;2.13個(gè)欺騙性或虛假功能,未明確標記的應用程序將被拒絕;2. 14 互聯(lián)網(wǎng)瀏覽應用必須使用新浪微博開(kāi)放平臺提供的網(wǎng)頁(yè)框架;2.15 提供 診斷錯誤或其他不準確數據的申請將被拒絕;2.16 將大量類(lèi)似版本應用上傳至新浪微博開(kāi)放平臺的開(kāi)發(fā)者將被移除開(kāi)發(fā)者項目;2.17個(gè)使用非法文件共享的應用將被拒絕;2.18個(gè)旨在用作非法賭博輔助工具(包括算牌)的應用程序將被拒絕;2. 19 具有匿名或惡作劇功能或發(fā)送類(lèi)似短信/彩信功能的應用程序將被拒絕;2.20名開(kāi)發(fā)者開(kāi)發(fā)秘密采集用戶(hù)密碼或用戶(hù)隱私數據的應用程序將從新浪微博開(kāi)放平臺下架;2. 21 應用程序中不允許彈出窗口;2.22 申請內容訪(fǎng)問(wèn)速度過(guò)慢,內容響應速度平均超過(guò)6秒,會(huì )被拒絕。最后,上圖:
  
  
  
  

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(獲得新浪微博AccessToken的步驟是怎樣的?(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(獲得新浪微博AccessToken的步驟是怎樣的?(圖))
  獲得新浪微博AccessToken的步驟是這樣的
  參考:%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
  
  1.首先讓用戶(hù)授權你的APP獲取代碼
  例如:點(diǎn)擊下方鏈接授權后,在url上會(huì )得到一個(gè)code參數
  ://
  2.將此代碼發(fā)送到服務(wù)器接口。服務(wù)端收到代碼后,執行下載文件中的代碼返回AccessToken(或直接從服務(wù)端獲取Token,執行微博API的各種操作)
  代碼示例:
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weibo.com/oauth2/access_token");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;";
request.Headers.Add(string.Format("Authorization: key={0}", "123456"));
string postData = "client_id=123456";
postData += ("&client_secret=123456");
postData += ("&grant_type=authorization_code");
postData += ("&redirect_uri=http://www.cfxixi.com");
postData += ("&code=123456");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//發(fā)出Request
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseStr = reader.ReadToEnd();
reader.Close();
responseStream.Close();
response.Close();
  Demo下載可以到我的Q群分享下載250395324 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(獲得新浪微博AccessToken的步驟是怎樣的?(圖))
  獲得新浪微博AccessToken的步驟是這樣的
  參考:%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
  
  1.首先讓用戶(hù)授權你的APP獲取代碼
  例如:點(diǎn)擊下方鏈接授權后,在url上會(huì )得到一個(gè)code參數
  ://
  2.將此代碼發(fā)送到服務(wù)器接口。服務(wù)端收到代碼后,執行下載文件中的代碼返回AccessToken(或直接從服務(wù)端獲取Token,執行微博API的各種操作)
  代碼示例:
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weibo.com/oauth2/access_token";);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;";
request.Headers.Add(string.Format("Authorization: key={0}", "123456"));
string postData = "client_id=123456";
postData += ("&client_secret=123456");
postData += ("&grant_type=authorization_code");
postData += ("&redirect_uri=http://www.cfxixi.com";);
postData += ("&code=123456");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//發(fā)出Request
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseStr = reader.ReadToEnd();
reader.Close();
responseStream.Close();
response.Close();
  Demo下載可以到我的Q群分享下載250395324

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺文章同步到新浪微博的幾種方法(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺文章同步到新浪微博的幾種方法(圖))
  .
  WordPress文章同步新浪微博的幾種方式
  相信現在很多網(wǎng)友都用過(guò)微博了,微博也挺火的!在使用WordPress的博主中,使用微博的人數可能更多,因為博客圈里有一種觀(guān)點(diǎn):微博是一個(gè)很好的推廣平臺。新浪微博是比較流行的一種。也許你聽(tīng)說(shuō)過(guò)如何將WordPress 文章 同步發(fā)布到新浪微博,但我在這里不得不啰嗦一下。它可能與您之前看到的有所不同。. 插件的方法我就不介紹了,大家需要上網(wǎng)搜一下。
  方法一:關(guān)聯(lián)博客。方法一其實(shí)很簡(jiǎn)單。您可以直接使用新浪微博的關(guān)聯(lián)博客功能。使用方法:點(diǎn)擊新浪微博右上角的“工具”菜單,然后點(diǎn)擊“關(guān)聯(lián)博客”填寫(xiě)你的博客鏈接!這樣,你的博客每更新一次文章,就會(huì )同時(shí)發(fā)送一條格式如下的微博到新浪微博:文章Title + 文章 URL 方式二:微博開(kāi)放平臺界面
  方法一只能以文章標題+文章 URL的形式同步到新浪微博,微博內容無(wú)法自定義。使用新浪微博的開(kāi)放平臺界面可以大大增加自由度,但是需要寫(xiě)一些代碼,其實(shí)很簡(jiǎn)單,復制粘貼代碼即可。打開(kāi)你的當前
  使用主題目錄下的functions.php,復制以下代碼到第一個(gè) 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺文章同步到新浪微博的幾種方法(圖))
  .
  WordPress文章同步新浪微博的幾種方式
  相信現在很多網(wǎng)友都用過(guò)微博了,微博也挺火的!在使用WordPress的博主中,使用微博的人數可能更多,因為博客圈里有一種觀(guān)點(diǎn):微博是一個(gè)很好的推廣平臺。新浪微博是比較流行的一種。也許你聽(tīng)說(shuō)過(guò)如何將WordPress 文章 同步發(fā)布到新浪微博,但我在這里不得不啰嗦一下。它可能與您之前看到的有所不同。. 插件的方法我就不介紹了,大家需要上網(wǎng)搜一下。
  方法一:關(guān)聯(lián)博客。方法一其實(shí)很簡(jiǎn)單。您可以直接使用新浪微博的關(guān)聯(lián)博客功能。使用方法:點(diǎn)擊新浪微博右上角的“工具”菜單,然后點(diǎn)擊“關(guān)聯(lián)博客”填寫(xiě)你的博客鏈接!這樣,你的博客每更新一次文章,就會(huì )同時(shí)發(fā)送一條格式如下的微博到新浪微博:文章Title + 文章 URL 方式二:微博開(kāi)放平臺界面
  方法一只能以文章標題+文章 URL的形式同步到新浪微博,微博內容無(wú)法自定義。使用新浪微博的開(kāi)放平臺界面可以大大增加自由度,但是需要寫(xiě)一些代碼,其實(shí)很簡(jiǎn)單,復制粘貼代碼即可。打開(kāi)你的當前
  使用主題目錄下的functions.php,復制以下代碼到第一個(gè)

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博:山寨版的twitter,各種粉絲的登錄邏輯)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博:山寨版的twitter,各種粉絲的登錄邏輯)
  新浪微博:盜版推特,各種粉絲的集散地,天朝國人的最?lèi)?ài),基本上所有網(wǎng)友都有微博賬號,所以使用新浪微博賬號進(jìn)行三向登錄就顯得尤為重要改善用戶(hù)登錄體驗。這次我用Python3+Tornado5集成了微博登錄,記錄一下,還是有很多坑。
  首先注冊微博開(kāi)放平臺:
  選擇微鏈接-》網(wǎng)站訪(fǎng)問(wèn)=&gt;立即訪(fǎng)問(wèn)創(chuàng )建新應用
  
  應用創(chuàng )建成功后,會(huì )立即跳轉到審核頁(yè)面。您需要填寫(xiě)一些資格進(jìn)行審核。其實(shí)這些review的領(lǐng)域是不需要打理的,申請完全不需要通過(guò)review
  
  直接拿到appkey和appsecret,然后馬上點(diǎn)擊高級信息填寫(xiě)回調URL
  
  需要注意的是,回調授權和取消回調授權地址需要一致
  那么新浪微博的登錄邏輯就很簡(jiǎn)單了:拼接url=&gt;回調獲取code=&gt;uid和access_token交換code=&gt;使用access_token獲取用戶(hù)信息
  首先第一步是拼接url,這里我們使用Tornado來(lái)編寫(xiě)控制器
  #新浪微博登錄地址組合返回(第一步)
class SinaFirstHandler(BaseHandler):
def get(self,*args,**kwargs):
#微博接口地址
weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
#回調網(wǎng)址
redirect_url = "http://127.0.0.1:8000/md_admin/weibo"
#應用id
client_id = "2636039333"
#組合url
auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
re_url=redirect_url)
self.write(auth_url)
  第二步,回調獲取code,交換access_token和uid
  #新浪微博回調地址(第二步)
class SinaBackHandler(BaseHandler):
def get(self,*args,**kwargs):
#獲取回調的code
code = self.get_argument('code')
#微博認證地址
access_token_url = "https://api.weibo.com/oauth2/access_token"
#參數 向新浪接口發(fā)送請求
re_dict = requests.post(access_token_url,data={
"client_id": '2636039333',
"client_secret": "4e2fbdb39432c31dc5c2f90be3afa5ce",
"grant_type": "authorization_code",
"code": code,
"redirect_uri": "http://127.0.0.1:8000/md_admin/weibo",
})
re_dict = re_dict.text
re_dict = eval(re_dict)
print(re_dict.get('uid'))
self.write(re_dict)
  接下來(lái)的情況就有點(diǎn)亂了,因為新浪規定,如果申請沒(méi)有通過(guò)審核,那么部分新浪接口是沒(méi)有權限請求的??梢哉f(shuō),你手上只有access_token和uid,其他的也改不了。我該怎么辦,沒(méi)有人會(huì )免費拿到營(yíng)業(yè)執照來(lái)測試接口,但是有一個(gè)曲線(xiàn)救國,就是在測試信息頁(yè)面上添加一個(gè)測試帳戶(hù)。添加測試賬號后,就可以請求相應的接口了。
  
  最后使用你手上的access_token和uid獲取當前用戶(hù)的用戶(hù)名
  result = requests.get('https://api.weibo.com/2/users/show.json',params={'access_token':res['access_token'],'uid':res['uid']})
result = json.loads(result.text)
print(result['name'])
  可以看到接口請求成功
  
  完成它。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博:山寨版的twitter,各種粉絲的登錄邏輯)
  新浪微博:盜版推特,各種粉絲的集散地,天朝國人的最?lèi)?ài),基本上所有網(wǎng)友都有微博賬號,所以使用新浪微博賬號進(jìn)行三向登錄就顯得尤為重要改善用戶(hù)登錄體驗。這次我用Python3+Tornado5集成了微博登錄,記錄一下,還是有很多坑。
  首先注冊微博開(kāi)放平臺:
  選擇微鏈接-》網(wǎng)站訪(fǎng)問(wèn)=&gt;立即訪(fǎng)問(wèn)創(chuàng )建新應用
  
  應用創(chuàng )建成功后,會(huì )立即跳轉到審核頁(yè)面。您需要填寫(xiě)一些資格進(jìn)行審核。其實(shí)這些review的領(lǐng)域是不需要打理的,申請完全不需要通過(guò)review
  
  直接拿到appkey和appsecret,然后馬上點(diǎn)擊高級信息填寫(xiě)回調URL
  
  需要注意的是,回調授權和取消回調授權地址需要一致
  那么新浪微博的登錄邏輯就很簡(jiǎn)單了:拼接url=&gt;回調獲取code=&gt;uid和access_token交換code=&gt;使用access_token獲取用戶(hù)信息
  首先第一步是拼接url,這里我們使用Tornado來(lái)編寫(xiě)控制器
  #新浪微博登錄地址組合返回(第一步)
class SinaFirstHandler(BaseHandler):
def get(self,*args,**kwargs):
#微博接口地址
weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
#回調網(wǎng)址
redirect_url = "http://127.0.0.1:8000/md_admin/weibo"
#應用id
client_id = "2636039333"
#組合url
auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
re_url=redirect_url)
self.write(auth_url)
  第二步,回調獲取code,交換access_token和uid
  #新浪微博回調地址(第二步)
class SinaBackHandler(BaseHandler):
def get(self,*args,**kwargs):
#獲取回調的code
code = self.get_argument('code')
#微博認證地址
access_token_url = "https://api.weibo.com/oauth2/access_token"
#參數 向新浪接口發(fā)送請求
re_dict = requests.post(access_token_url,data={
"client_id": '2636039333',
"client_secret": "4e2fbdb39432c31dc5c2f90be3afa5ce",
"grant_type": "authorization_code",
"code": code,
"redirect_uri": "http://127.0.0.1:8000/md_admin/weibo",
})
re_dict = re_dict.text
re_dict = eval(re_dict)
print(re_dict.get('uid'))
self.write(re_dict)
  接下來(lái)的情況就有點(diǎn)亂了,因為新浪規定,如果申請沒(méi)有通過(guò)審核,那么部分新浪接口是沒(méi)有權限請求的??梢哉f(shuō),你手上只有access_token和uid,其他的也改不了。我該怎么辦,沒(méi)有人會(huì )免費拿到營(yíng)業(yè)執照來(lái)測試接口,但是有一個(gè)曲線(xiàn)救國,就是在測試信息頁(yè)面上添加一個(gè)測試帳戶(hù)。添加測試賬號后,就可以請求相應的接口了。
  
  最后使用你手上的access_token和uid獲取當前用戶(hù)的用戶(hù)名
  result = requests.get('https://api.weibo.com/2/users/show.json',params={'access_token':res['access_token'],'uid':res['uid']})
result = json.loads(result.text)
print(result['name'])
  可以看到接口請求成功
  
  完成它。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(我要開(kāi)發(fā)一個(gè)基于sina微博開(kāi)放平臺的應用(App)(組圖))

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

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

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

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議如何開(kāi)發(fā)微博應用?(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議如何開(kāi)發(fā)微博應用?(圖))
  騰訊微博開(kāi)放平臺API現已開(kāi)放。使用騰訊微博開(kāi)放平臺提供的API創(chuàng )建自己的應用程序,您必須先填寫(xiě)個(gè)人信息,聯(lián)系郵箱驗證,取得開(kāi)發(fā)者資質(zhì),才能創(chuàng )建自己的應用程序。騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧將創(chuàng )造無(wú)窮無(wú)盡的應用和樂(lè )趣。
  平臺說(shuō)明:
  騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧,創(chuàng )造無(wú)窮的應用和樂(lè )趣!
  平臺介紹——微博開(kāi)放平臺可以獲得的資源和優(yōu)勢
  應用程序開(kāi)發(fā)說(shuō)明-講解如何成為開(kāi)發(fā)人員并創(chuàng )建應用程序
  申請審核流程——審核申請源字段的好處,以及如何審核
  開(kāi)發(fā)者協(xié)議——在此查看騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議
  如何開(kāi)發(fā)微博應用?(立即成為開(kāi)發(fā)人員)
  您只需要按照以下步驟操作:
  第一步:填寫(xiě)您的開(kāi)發(fā)者信息;
  第二步:驗證聯(lián)系郵箱;(電子郵件將作為我們與您聯(lián)系的重要方式,請提供常用的電子郵件地址)
  第三步:填寫(xiě)要創(chuàng )建的應用信息。
  您可以立即獲取微博App Key和App Secret,調用微博API,開(kāi)始應用開(kāi)發(fā)。查看詳細說(shuō)明
  ----
  代表中國最先進(jìn)互聯(lián)網(wǎng)技術(shù)的騰訊終于邁出了開(kāi)放的第一步:-) 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議如何開(kāi)發(fā)微博應用?(圖))
  騰訊微博開(kāi)放平臺API現已開(kāi)放。使用騰訊微博開(kāi)放平臺提供的API創(chuàng )建自己的應用程序,您必須先填寫(xiě)個(gè)人信息,聯(lián)系郵箱驗證,取得開(kāi)發(fā)者資質(zhì),才能創(chuàng )建自己的應用程序。騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧將創(chuàng )造無(wú)窮無(wú)盡的應用和樂(lè )趣。
  平臺說(shuō)明:
  騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧,創(chuàng )造無(wú)窮的應用和樂(lè )趣!
  平臺介紹——微博開(kāi)放平臺可以獲得的資源和優(yōu)勢
  應用程序開(kāi)發(fā)說(shuō)明-講解如何成為開(kāi)發(fā)人員并創(chuàng )建應用程序
  申請審核流程——審核申請源字段的好處,以及如何審核
  開(kāi)發(fā)者協(xié)議——在此查看騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議
  如何開(kāi)發(fā)微博應用?(立即成為開(kāi)發(fā)人員)
  您只需要按照以下步驟操作:
  第一步:填寫(xiě)您的開(kāi)發(fā)者信息;
  第二步:驗證聯(lián)系郵箱;(電子郵件將作為我們與您聯(lián)系的重要方式,請提供常用的電子郵件地址)
  第三步:填寫(xiě)要創(chuàng )建的應用信息。
  您可以立即獲取微博App Key和App Secret,調用微博API,開(kāi)始應用開(kāi)發(fā)。查看詳細說(shuō)明
  ----
  代表中國最先進(jìn)互聯(lián)網(wǎng)技術(shù)的騰訊終于邁出了開(kāi)放的第一步:-)

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有些特殊的emoji表情符會(huì )被「同步圈」識別錯誤!)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有些特殊的emoji表情符會(huì )被「同步圈」識別錯誤!)
  在微信公眾號和朋友圈瘋狂擠壓個(gè)人時(shí)間的當下,很多人的微博賬號逐漸被拋棄,而這個(gè)工具可以幫你自動(dòng)同步任何朋友圈圖文內容到你的微博。
  這個(gè)可以為你省去很多麻煩的小工具叫做“同步圈”。顧名思義,就是把你的“朋友圈”“同步”到微博上。
  
  為了一勞永逸地享受自動(dòng)同步的便利,您需要提前在PC瀏覽器中使用您的個(gè)人微博賬號登錄同步推文。網(wǎng)址在這里。獲得登錄授權后,網(wǎng)頁(yè)上會(huì )顯示二維碼。用微信掃一掃后,添加一個(gè)名為“同步圈”的個(gè)人微信賬號,很快就會(huì )通過(guò)驗證。
  接下來(lái),您需要將二維碼下方的四位驗證碼發(fā)送到“同步圈”賬號,系統會(huì )提示您綁定成功!
  經(jīng)測試,“同步圈”目前支持純文本、文本+表情、文本+圖片的自動(dòng)同步。您在朋友圈發(fā)布的小視頻和地理位置無(wú)法同步到您的個(gè)人微博。經(jīng)過(guò)實(shí)測,我也發(fā)現一些特殊的表情符號會(huì )被“同步圈”誤識別,可能會(huì )造成一些歧義或誤解。這可能是微信朋友圈和微博支持的表情符號不一致造成的。
  從原理上看,“同步圈”調用了微信朋友圈側的一些內容識別接口,可以自動(dòng)抓取綁定用戶(hù)的朋友圈內容,然后利用微博開(kāi)放平臺的API接口發(fā)送同樣的內容內容出去。抽象地說(shuō),“同步圈”與著(zhù)名的自動(dòng)化服務(wù)IFTTT非常相似。只是它在微信封閉的城墻上開(kāi)設了一個(gè)單向信息站,幫助用戶(hù)將內容輸出到更廣闊的公共網(wǎng)絡(luò )空間。
  遺憾的是,根據pc6編輯對騰訊和微信團隊的了解,這個(gè)同步圈的“小聰明”可能很快就會(huì )失敗。
  安卓版
  
  新浪微博類(lèi)型:社交聊天 大?。?9.9M 版本:v5.6.0 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有些特殊的emoji表情符會(huì )被「同步圈」識別錯誤!)
  在微信公眾號和朋友圈瘋狂擠壓個(gè)人時(shí)間的當下,很多人的微博賬號逐漸被拋棄,而這個(gè)工具可以幫你自動(dòng)同步任何朋友圈圖文內容到你的微博。
  這個(gè)可以為你省去很多麻煩的小工具叫做“同步圈”。顧名思義,就是把你的“朋友圈”“同步”到微博上。
  
  為了一勞永逸地享受自動(dòng)同步的便利,您需要提前在PC瀏覽器中使用您的個(gè)人微博賬號登錄同步推文。網(wǎng)址在這里。獲得登錄授權后,網(wǎng)頁(yè)上會(huì )顯示二維碼。用微信掃一掃后,添加一個(gè)名為“同步圈”的個(gè)人微信賬號,很快就會(huì )通過(guò)驗證。
  接下來(lái),您需要將二維碼下方的四位驗證碼發(fā)送到“同步圈”賬號,系統會(huì )提示您綁定成功!
  經(jīng)測試,“同步圈”目前支持純文本、文本+表情、文本+圖片的自動(dòng)同步。您在朋友圈發(fā)布的小視頻和地理位置無(wú)法同步到您的個(gè)人微博。經(jīng)過(guò)實(shí)測,我也發(fā)現一些特殊的表情符號會(huì )被“同步圈”誤識別,可能會(huì )造成一些歧義或誤解。這可能是微信朋友圈和微博支持的表情符號不一致造成的。
  從原理上看,“同步圈”調用了微信朋友圈側的一些內容識別接口,可以自動(dòng)抓取綁定用戶(hù)的朋友圈內容,然后利用微博開(kāi)放平臺的API接口發(fā)送同樣的內容內容出去。抽象地說(shuō),“同步圈”與著(zhù)名的自動(dòng)化服務(wù)IFTTT非常相似。只是它在微信封閉的城墻上開(kāi)設了一個(gè)單向信息站,幫助用戶(hù)將內容輸出到更廣闊的公共網(wǎng)絡(luò )空間。
  遺憾的是,根據pc6編輯對騰訊和微信團隊的了解,這個(gè)同步圈的“小聰明”可能很快就會(huì )失敗。
  安卓版
  
  新浪微博類(lèi)型:社交聊天 大?。?9.9M 版本:v5.6.0

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

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(鄭敏先任職于)
  作者簡(jiǎn)介:鄭敏賢,曾任職,售前工程師。從事SDN、白盒交換機等開(kāi)放網(wǎng)絡(luò )產(chǎn)品的推廣。
  
  成立于 2005 年。該公司提供了一個(gè)開(kāi)源網(wǎng)絡(luò )操作系統,也稱(chēng)為 Vyatta,可以在商用硬件上運行。Vyatta 的名字取自梵文中的“open”,發(fā)音為“vee-at-ah”。2006年,推出Vyatta商業(yè)訂閱版,每年定價(jià)500美元。
  
  隨著(zhù)云計算的發(fā)展,Vyatta得到了眾多公有云廠(chǎng)商的支持。例如,AWS Marketplace 中的第一個(gè)虛擬路由器應用程序是 Vyatta:
  
  2012年11月博科收購Vyatta后,開(kāi)源社區版被取消,軟件更名為Vyatta vRouter。但 Vyatta 的開(kāi)源之路并沒(méi)有結束。為了響應博科停止 Vyatta 社區版的決定,獨立開(kāi)發(fā)人員從 Vyatta Core 6.6 R1 版本(VyOS 開(kāi)源軟件項目)中分出一個(gè)分支。
  從 Vyatta 到 dNOS
  Vyatta 于 2017 年 7 月被 AT&amp;T 收購。 Vyatta NOS 構成了 AT&amp;T 開(kāi)源 dNOS(分解網(wǎng)絡(luò )操作系統)平臺的基礎。
  dNOS 由硬件和軟件組件組成:
  AT&amp;T 在這些場(chǎng)景中使用 dNOS 軟件:
  
  dNOS功能及組件圖
  簡(jiǎn)單分析一下上圖中的三個(gè)層次:
  1、應用程序是路由器上控制平面或管理平面組件的任何網(wǎng)絡(luò )功能。
  2、共享基礎設施和數據。NOS 必須能夠使用通用方法和協(xié)議在來(lái)自不同供應商的應用程序之間共享數據。dNOS 的一個(gè)關(guān)鍵目標是創(chuàng )建一個(gè)促進(jìn)應用程序之間共享的開(kāi)放環(huán)境。為此,dNOS 包括通用基礎設施組件和共享數據結構。
  基本網(wǎng)絡(luò )狀態(tài)信息存儲在一組通用共享數據結構中。這些數據結構包括有關(guān)接口狀態(tài)、鄰居解析表和轉發(fā)信息庫 (FIB) 狀態(tài)的信息。應用程序使用通用方法更新相關(guān)的基本網(wǎng)絡(luò )狀態(tài)共享數據。
  所有共享基礎設施數據都由使用合適的標準數據結構和/或數據建模語(yǔ)言(例如,YANG)表達的標準化數據模型定義。數據共享基礎設施和基礎網(wǎng)絡(luò )狀態(tài)共享數據結構實(shí)現了不同協(xié)議之間公共數據的共享(例如,經(jīng)典IGP可訪(fǎng)問(wèn)的鏈路狀態(tài)數據,如用于SDN控制應用的OSPF和ISIS和BGP-LS),以及優(yōu)雅的協(xié)議選擇的演變(例如,使用 gRPC 而不是 SNMP 來(lái)采集 OAM 數據)。
  用戶(hù)、業(yè)務(wù)流程和數據導出接口提供了一個(gè)通用的基礎設施,用于將應用程序和系統基礎設施連接到外部系統以進(jìn)行管理和分析。ONAP管控系統北向接口包括NetConf/YANG和gRPC,支持流式和(傳統)輪詢(xún)機制進(jìn)行遙測數據采集。
  3、dNOS 包括一組支持多個(gè)不同轉發(fā)層的組件。轉發(fā)抽象層 (FAL) 負責從共享基礎設施和數據組件獲取高級網(wǎng)絡(luò )狀態(tài)輸入,并將它們轉換為供應商特定的 API,用于各種軟件和硬件轉發(fā)選項:
  FAL 的目標是讓 ASIC 供應商多樣化,多個(gè) ASIC 共享一個(gè)與目標無(wú)關(guān)的公共抽象層。FAL 的長(cháng)期目標是收錄支持完全可編程硬件管道的抽象。這種抽象將基于正式的網(wǎng)絡(luò )編程語(yǔ)言,例如 P4 或其他類(lèi)似的行業(yè)認可的標準化語(yǔ)言。
  從 dNOS 到 DANOS
  AT&amp;T 于 2018 年初向 Linux 基金會(huì )貢獻了 dNOS 作為種子代碼,Linux 基金會(huì )據此建立了 DANOS 項目。DANOS(Dis-Aggregated Network Operating System)將提供一個(gè)開(kāi)放的 NOS 框架,使用現有的開(kāi)源資源和硬件平臺,如白盒交換機、白盒路由器和 uCPE。Vyatta第四代架構引入了商用芯片+軟件轉發(fā)的混合轉發(fā)模式。采用Vyatta第四代架構的DANOS預計將于2019年第一季度正式發(fā)布。
  
  DANOS專(zhuān)注于硬件/軟件分解,超越云數據中心網(wǎng)絡(luò )功能,創(chuàng )建和培育路由軟件組件供應商生態(tài)系統,提供創(chuàng )新的網(wǎng)絡(luò )解決方案,滿(mǎn)足城域網(wǎng)/廣域網(wǎng)(包括蜂窩網(wǎng)絡(luò ))規?;?、快速發(fā)展的功能需求。站點(diǎn)路由器、城域以太網(wǎng)服務(wù)和 RAN 回程路由器/交換機、互聯(lián)網(wǎng)和 VPN 服務(wù)邊緣路由器、運營(yíng)商間 POP 互連結構、骨干核心路由器等)。DANOS 目前計劃支持這五個(gè)操作系統:dNOS、FRR、SONiC、OpenSwitch 和 Stratum。
  DANOS的三大特點(diǎn):
  
  DANOS/dNOS詳細架構圖(顏色對應之前的“dNOS功能和組件圖”)
  對比上圖,我粗略介紹一下DANOS的控制和管理平面、基礎操作系統和數據平面:
  控制和管理平面:基本操作系統:數據平面:參考:
  1、%20whitepaper.pdf
  2、
  3、 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(鄭敏先任職于)
  作者簡(jiǎn)介:鄭敏賢,曾任職,售前工程師。從事SDN、白盒交換機等開(kāi)放網(wǎng)絡(luò )產(chǎn)品的推廣。
  
  成立于 2005 年。該公司提供了一個(gè)開(kāi)源網(wǎng)絡(luò )操作系統,也稱(chēng)為 Vyatta,可以在商用硬件上運行。Vyatta 的名字取自梵文中的“open”,發(fā)音為“vee-at-ah”。2006年,推出Vyatta商業(yè)訂閱版,每年定價(jià)500美元。
  
  隨著(zhù)云計算的發(fā)展,Vyatta得到了眾多公有云廠(chǎng)商的支持。例如,AWS Marketplace 中的第一個(gè)虛擬路由器應用程序是 Vyatta:
  
  2012年11月博科收購Vyatta后,開(kāi)源社區版被取消,軟件更名為Vyatta vRouter。但 Vyatta 的開(kāi)源之路并沒(méi)有結束。為了響應博科停止 Vyatta 社區版的決定,獨立開(kāi)發(fā)人員從 Vyatta Core 6.6 R1 版本(VyOS 開(kāi)源軟件項目)中分出一個(gè)分支。
  從 Vyatta 到 dNOS
  Vyatta 于 2017 年 7 月被 AT&amp;T 收購。 Vyatta NOS 構成了 AT&amp;T 開(kāi)源 dNOS(分解網(wǎng)絡(luò )操作系統)平臺的基礎。
  dNOS 由硬件和軟件組件組成:
  AT&amp;T 在這些場(chǎng)景中使用 dNOS 軟件:
  
  dNOS功能及組件圖
  簡(jiǎn)單分析一下上圖中的三個(gè)層次:
  1、應用程序是路由器上控制平面或管理平面組件的任何網(wǎng)絡(luò )功能。
  2、共享基礎設施和數據。NOS 必須能夠使用通用方法和協(xié)議在來(lái)自不同供應商的應用程序之間共享數據。dNOS 的一個(gè)關(guān)鍵目標是創(chuàng )建一個(gè)促進(jìn)應用程序之間共享的開(kāi)放環(huán)境。為此,dNOS 包括通用基礎設施組件和共享數據結構。
  基本網(wǎng)絡(luò )狀態(tài)信息存儲在一組通用共享數據結構中。這些數據結構包括有關(guān)接口狀態(tài)、鄰居解析表和轉發(fā)信息庫 (FIB) 狀態(tài)的信息。應用程序使用通用方法更新相關(guān)的基本網(wǎng)絡(luò )狀態(tài)共享數據。
  所有共享基礎設施數據都由使用合適的標準數據結構和/或數據建模語(yǔ)言(例如,YANG)表達的標準化數據模型定義。數據共享基礎設施和基礎網(wǎng)絡(luò )狀態(tài)共享數據結構實(shí)現了不同協(xié)議之間公共數據的共享(例如,經(jīng)典IGP可訪(fǎng)問(wèn)的鏈路狀態(tài)數據,如用于SDN控制應用的OSPF和ISIS和BGP-LS),以及優(yōu)雅的協(xié)議選擇的演變(例如,使用 gRPC 而不是 SNMP 來(lái)采集 OAM 數據)。
  用戶(hù)、業(yè)務(wù)流程和數據導出接口提供了一個(gè)通用的基礎設施,用于將應用程序和系統基礎設施連接到外部系統以進(jìn)行管理和分析。ONAP管控系統北向接口包括NetConf/YANG和gRPC,支持流式和(傳統)輪詢(xún)機制進(jìn)行遙測數據采集。
  3、dNOS 包括一組支持多個(gè)不同轉發(fā)層的組件。轉發(fā)抽象層 (FAL) 負責從共享基礎設施和數據組件獲取高級網(wǎng)絡(luò )狀態(tài)輸入,并將它們轉換為供應商特定的 API,用于各種軟件和硬件轉發(fā)選項:
  FAL 的目標是讓 ASIC 供應商多樣化,多個(gè) ASIC 共享一個(gè)與目標無(wú)關(guān)的公共抽象層。FAL 的長(cháng)期目標是收錄支持完全可編程硬件管道的抽象。這種抽象將基于正式的網(wǎng)絡(luò )編程語(yǔ)言,例如 P4 或其他類(lèi)似的行業(yè)認可的標準化語(yǔ)言。
  從 dNOS 到 DANOS
  AT&amp;T 于 2018 年初向 Linux 基金會(huì )貢獻了 dNOS 作為種子代碼,Linux 基金會(huì )據此建立了 DANOS 項目。DANOS(Dis-Aggregated Network Operating System)將提供一個(gè)開(kāi)放的 NOS 框架,使用現有的開(kāi)源資源和硬件平臺,如白盒交換機、白盒路由器和 uCPE。Vyatta第四代架構引入了商用芯片+軟件轉發(fā)的混合轉發(fā)模式。采用Vyatta第四代架構的DANOS預計將于2019年第一季度正式發(fā)布。
  
  DANOS專(zhuān)注于硬件/軟件分解,超越云數據中心網(wǎng)絡(luò )功能,創(chuàng )建和培育路由軟件組件供應商生態(tài)系統,提供創(chuàng )新的網(wǎng)絡(luò )解決方案,滿(mǎn)足城域網(wǎng)/廣域網(wǎng)(包括蜂窩網(wǎng)絡(luò ))規?;?、快速發(fā)展的功能需求。站點(diǎn)路由器、城域以太網(wǎng)服務(wù)和 RAN 回程路由器/交換機、互聯(lián)網(wǎng)和 VPN 服務(wù)邊緣路由器、運營(yíng)商間 POP 互連結構、骨干核心路由器等)。DANOS 目前計劃支持這五個(gè)操作系統:dNOS、FRR、SONiC、OpenSwitch 和 Stratum。
  DANOS的三大特點(diǎn):
  
  DANOS/dNOS詳細架構圖(顏色對應之前的“dNOS功能和組件圖”)
  對比上圖,我粗略介紹一下DANOS的控制和管理平面、基礎操作系統和數據平面:
  控制和管理平面:基本操作系統:數據平面:參考:
  1、%20whitepaper.pdf
  2、
  3、

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(基于python的開(kāi)放平臺簽名、加密解密以及授權認證測試體系)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(基于python的開(kāi)放平臺簽名、加密解密以及授權認證測試體系)
  目前,大型頂級公司擁有非常成熟的開(kāi)放平臺服務(wù),如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。開(kāi)放平臺的發(fā)展為第三方個(gè)人或公司提供了巨大的機會(huì )。開(kāi)發(fā)者想要接入各大開(kāi)放平臺,必須遵守開(kāi)放平臺的安全機制,實(shí)現業(yè)務(wù)邏輯的前提。一是實(shí)現簽名驗證、加解密、授權鑒權機制。
  本文介紹了基于python的開(kāi)放平臺簽名認證測試系統,可用于第三方應用的沙箱測試,也可應用于服務(wù)商相關(guān)系統的綜合測試。
  
  一、簡(jiǎn)介
  開(kāi)放平臺是指大型企業(yè)以業(yè)務(wù)+場(chǎng)景+解決方案+技術(shù)的優(yōu)勢,將自身的數據能力、計算能力、用戶(hù)系統、產(chǎn)品能力等資源打包,通過(guò)openAPI、openSDK等方式向第三方個(gè)人或個(gè)人開(kāi)放,和 openH5。企業(yè)使用,實(shí)現第三方與服務(wù)商企業(yè)自身的互利共贏(yíng)。
  目前各大廠(chǎng)商的開(kāi)放平臺都比較成熟,如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。與此同時(shí),各大商業(yè)銀行也在大力發(fā)展自身的開(kāi)放銀行服務(wù)。作為第三方開(kāi)發(fā)者,一般來(lái)說(shuō),接入開(kāi)放平臺有一個(gè)相對統一的流程。下圖為微信開(kāi)放平臺開(kāi)通流程。
  
  圖1 微信開(kāi)放平臺接入流程
  如圖1第三步所示,應用上線(xiàn)前,必須進(jìn)行必要的測試。業(yè)務(wù)邏輯測試的前提是測試簽名驗證、加解密、授權認證等安全認證機制。python社區非常成熟,廣泛應用于機器學(xué)習、數據分析、網(wǎng)絡(luò )爬蟲(chóng)、自動(dòng)化腳本等諸多領(lǐng)域。
  在web開(kāi)發(fā)方面,目前有很多公司如Instagram、Quora、Lyft、Dropbox、知乎等后端使用python進(jìn)行開(kāi)發(fā)。本文介紹了基于python的簽名驗證、加解密、授權認證測試的實(shí)現。
  二、簽名驗證
  第三方個(gè)人或企業(yè)通過(guò)開(kāi)放平臺門(mén)戶(hù)網(wǎng)站提交申請成為開(kāi)發(fā)者。開(kāi)發(fā)者資質(zhì)認證通過(guò)后,開(kāi)發(fā)者通常會(huì )從服務(wù)商處獲得自己的appid、appsecret和證書(shū)。該證書(shū)收錄第一個(gè) 第三方開(kāi)發(fā)者的私鑰和服務(wù)提供者的公鑰。
  服務(wù)提供商保留第三方開(kāi)發(fā)者的公鑰和自己的私鑰。開(kāi)發(fā)者使用自己的私鑰進(jìn)行簽名,并將消息發(fā)送到開(kāi)放平臺服務(wù)器。服務(wù)器驗證通過(guò)后,會(huì )使用自己的私鑰對返回給開(kāi)發(fā)者的消息進(jìn)行簽名,開(kāi)發(fā)者收到返回消息后,使用服務(wù)方提供的公鑰進(jìn)行驗證。通過(guò)這個(gè)過(guò)程,開(kāi)發(fā)者和服務(wù)端可以相互確認發(fā)送的消息沒(méi)有被中間人篡改。
  本文的簽名驗證使用RSA算法進(jìn)行演示。使用Python的Crypto庫,安裝時(shí)需要使用pip或conda等其他包管理工具。
  一般來(lái)說(shuō),開(kāi)發(fā)者需要對消息的每個(gè)字段進(jìn)行預處理。
  1.去除請求字典中的所有空值或不必要的參數(如sign、sign_type等);
  2. 對字典進(jìn)行排序(按照ASCII碼從小到大);
  3. 按照“參數=參數值”的模式,將字典中的所有元素用“&amp;”字符組合成一個(gè)字符串。
  數據預處理功能如下圖所示:
  
  圖2 數據預處理功能
  當開(kāi)發(fā)者發(fā)送消息時(shí),會(huì )使用Hash函數從消息中生成摘要,然后用私人消息對摘要進(jìn)行加密。加密后的摘要用作消息的數字簽名,并與消息一起發(fā)送到服務(wù)器。下圖展示了RSA算法的簽名函數的實(shí)現:
  
  圖3 數字簽名功能
  首先使用hash_method函數選擇要使用的digest算法,可以根據實(shí)際情況重構函數。這里演示了 MD5 和 SHA256 算法的示例。簽名函數首先要讀取開(kāi)發(fā)者的私鑰,然后使用RSA算法完成簽名。
  開(kāi)發(fā)者收到服務(wù)器返回的消息后,使用相同的Hash函數從接收到的原創(chuàng )消息中計算出消息的摘要,然后使用發(fā)送方的公鑰對消息所附的數字簽名進(jìn)行解密,如果兩個(gè)摘要是一致,開(kāi)發(fā)??者可以確認消息是服務(wù)器發(fā)送的,沒(méi)有被篡改。
  
  圖4 簽名驗證功能
  三、加解密
  除了用于數字簽名之外,RAS 算法還可以用于消息的非對稱(chēng)加密。非對稱(chēng)加密比對稱(chēng)加密更安全,但由于算法強度比對稱(chēng)加密復雜,因此加解密速度比對稱(chēng)加密慢。對稱(chēng)加密算法的特點(diǎn)是計算量小、加密速度快、加密效率高。缺點(diǎn)是交易雙方使用相同的密鑰,無(wú)法保證安全。常見(jiàn)的對稱(chēng)加密算法有DES、AES等。
  在互聯(lián)網(wǎng)上傳輸消息時(shí),要保證信息的安全,保證沒(méi)有高延遲。因此,對稱(chēng)加密算法和非對稱(chēng)加密算法通常結合使用。使用非對稱(chēng)加密算法對對稱(chēng)加密算法使用的密鑰進(jìn)行數字簽名和加密傳輸,然后使用對稱(chēng)加密算法對消息進(jìn)行加密和解密,保證了消息傳輸的安全性和消息的傳輸速度改善用戶(hù)體驗。
  下面介紹AES加解密的python實(shí)現。其他加密算法類(lèi)似。您可以根據服務(wù)方的要求選擇使用哪種算法。AES 加密方式有五種:ECB、CBC、CTR、CFB、OFB。最常用的是CBC加密。CBC 加密需要一個(gè) 16 位的密鑰和一個(gè) 16 位的偏移量。開(kāi)發(fā)者使用服務(wù)器提供的appsecret作為加解密密鑰。具體實(shí)現如下圖所示:
  
  圖5 AES加解密
  加密的數據應與簽名一起發(fā)送到服務(wù)器。通常,消息是否使用對稱(chēng)加密是可選的。開(kāi)發(fā)者可以根據開(kāi)放平臺的規定和交易的重要性來(lái)選擇是否加密。
  四、授權
  各大開(kāi)放平臺都有自己的授權認證機制,最流行的機制是OAuth2.0。OAuth2.0 是一種開(kāi)放的授權標準,允許用戶(hù)授權第三方應用訪(fǎng)問(wèn)用戶(hù)在某個(gè)服務(wù)(如微博、微信、QQ等)上的特定私有資源,而無(wú)需提供帳戶(hù)密碼給第三方。對于第三方應用,無(wú)需為第三方應用注冊賬號。如果要進(jìn)行開(kāi)放平臺授權認證測試,必須按照OAuth2.0標準連接服務(wù)方。一般來(lái)說(shuō),服務(wù)提供者提供授權服務(wù),主要提供兩類(lèi)接口:
  1.授權接口:接受第三方應用的授權請求。該接口通常收錄以下參數:
  response_type:必需。該值固定為“代碼”。
  client_id:必需。第三方應用的標識ID,即appID。
  狀態(tài):可選。第三方提供的字符串,服務(wù)器將原樣返回。
  redirect_uri:必需。授權成功后的重定向地址。
  范圍:可選。表示要訪(fǎng)問(wèn)的資源的授權范圍。
  成功訪(fǎng)問(wèn)該接口后,將獲得一個(gè)授權碼。
  2.獲取訪(fǎng)問(wèn)令牌(token)接口:使用授權接口提供的授權碼向第三方應用發(fā)放訪(fǎng)問(wèn)令牌。通常收錄以下參數:
  grant_type:必需。固定值“authorization_code”。
  代碼:必填。授權碼在授權界面響應。
  redirect_uri:必需。必須與授權接口中提供的redirect_uri相同。
  client_id:必需。必須與授權界面提供的appID一致。
  第三方應用獲得令牌后,可以使用令牌請求用戶(hù)授權其訪(fǎng)問(wèn)服務(wù)端存儲的資源。
  以上接口的請求可以自己編碼實(shí)現。Python的django-allauth庫封裝了GitHub、Twitter、微博、微信、百度等數十種第三方授權認證方式,通過(guò)簡(jiǎn)單的配置即可應對各大廠(chǎng)商開(kāi)放平臺的授權認證測試。下圖展示了如何在django應用中注冊django-allauth第三方登錄服務(wù)。
  
  圖6 使用django-allauth庫完成第三方授權登錄
  五、總結
  本文介紹了使用python連接各大開(kāi)放平臺實(shí)現簽名驗證、加解密、授權認證的測試方法,并給出了詳細的例子。開(kāi)發(fā)者可以將上述方法封裝到django或其他框架的web應用中,形成便于測試人員操作的界面。在處理簽名驗證、加解密、授權認證等測試或開(kāi)發(fā)工作時(shí),可以大大提高工作效率。
  我是誰(shuí)?
  我是一名資深的測試人員,從事軟件測試工作多年。今年年初花了一個(gè)月時(shí)間整理了一份2020年最適合學(xué)習的軟件測試學(xué)習干貨,可以送給每一個(gè)對軟件測試感興趣的小伙伴。想要領(lǐng)取的話(huà),可以關(guān)注我的頭條號,后臺給我發(fā)私信:【測試】,免費領(lǐng)取。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(基于python的開(kāi)放平臺簽名、加密解密以及授權認證測試體系)
  目前,大型頂級公司擁有非常成熟的開(kāi)放平臺服務(wù),如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。開(kāi)放平臺的發(fā)展為第三方個(gè)人或公司提供了巨大的機會(huì )。開(kāi)發(fā)者想要接入各大開(kāi)放平臺,必須遵守開(kāi)放平臺的安全機制,實(shí)現業(yè)務(wù)邏輯的前提。一是實(shí)現簽名驗證、加解密、授權鑒權機制。
  本文介紹了基于python的開(kāi)放平臺簽名認證測試系統,可用于第三方應用的沙箱測試,也可應用于服務(wù)商相關(guān)系統的綜合測試。
  
  一、簡(jiǎn)介
  開(kāi)放平臺是指大型企業(yè)以業(yè)務(wù)+場(chǎng)景+解決方案+技術(shù)的優(yōu)勢,將自身的數據能力、計算能力、用戶(hù)系統、產(chǎn)品能力等資源打包,通過(guò)openAPI、openSDK等方式向第三方個(gè)人或個(gè)人開(kāi)放,和 openH5。企業(yè)使用,實(shí)現第三方與服務(wù)商企業(yè)自身的互利共贏(yíng)。
  目前各大廠(chǎng)商的開(kāi)放平臺都比較成熟,如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。與此同時(shí),各大商業(yè)銀行也在大力發(fā)展自身的開(kāi)放銀行服務(wù)。作為第三方開(kāi)發(fā)者,一般來(lái)說(shuō),接入開(kāi)放平臺有一個(gè)相對統一的流程。下圖為微信開(kāi)放平臺開(kāi)通流程。
  
  圖1 微信開(kāi)放平臺接入流程
  如圖1第三步所示,應用上線(xiàn)前,必須進(jìn)行必要的測試。業(yè)務(wù)邏輯測試的前提是測試簽名驗證、加解密、授權認證等安全認證機制。python社區非常成熟,廣泛應用于機器學(xué)習、數據分析、網(wǎng)絡(luò )爬蟲(chóng)、自動(dòng)化腳本等諸多領(lǐng)域。
  在web開(kāi)發(fā)方面,目前有很多公司如Instagram、Quora、Lyft、Dropbox、知乎等后端使用python進(jìn)行開(kāi)發(fā)。本文介紹了基于python的簽名驗證、加解密、授權認證測試的實(shí)現。
  二、簽名驗證
  第三方個(gè)人或企業(yè)通過(guò)開(kāi)放平臺門(mén)戶(hù)網(wǎng)站提交申請成為開(kāi)發(fā)者。開(kāi)發(fā)者資質(zhì)認證通過(guò)后,開(kāi)發(fā)者通常會(huì )從服務(wù)商處獲得自己的appid、appsecret和證書(shū)。該證書(shū)收錄第一個(gè) 第三方開(kāi)發(fā)者的私鑰和服務(wù)提供者的公鑰。
  服務(wù)提供商保留第三方開(kāi)發(fā)者的公鑰和自己的私鑰。開(kāi)發(fā)者使用自己的私鑰進(jìn)行簽名,并將消息發(fā)送到開(kāi)放平臺服務(wù)器。服務(wù)器驗證通過(guò)后,會(huì )使用自己的私鑰對返回給開(kāi)發(fā)者的消息進(jìn)行簽名,開(kāi)發(fā)者收到返回消息后,使用服務(wù)方提供的公鑰進(jìn)行驗證。通過(guò)這個(gè)過(guò)程,開(kāi)發(fā)者和服務(wù)端可以相互確認發(fā)送的消息沒(méi)有被中間人篡改。
  本文的簽名驗證使用RSA算法進(jìn)行演示。使用Python的Crypto庫,安裝時(shí)需要使用pip或conda等其他包管理工具。
  一般來(lái)說(shuō),開(kāi)發(fā)者需要對消息的每個(gè)字段進(jìn)行預處理。
  1.去除請求字典中的所有空值或不必要的參數(如sign、sign_type等);
  2. 對字典進(jìn)行排序(按照ASCII碼從小到大);
  3. 按照“參數=參數值”的模式,將字典中的所有元素用“&amp;”字符組合成一個(gè)字符串。
  數據預處理功能如下圖所示:
  
  圖2 數據預處理功能
  當開(kāi)發(fā)者發(fā)送消息時(shí),會(huì )使用Hash函數從消息中生成摘要,然后用私人消息對摘要進(jìn)行加密。加密后的摘要用作消息的數字簽名,并與消息一起發(fā)送到服務(wù)器。下圖展示了RSA算法的簽名函數的實(shí)現:
  
  圖3 數字簽名功能
  首先使用hash_method函數選擇要使用的digest算法,可以根據實(shí)際情況重構函數。這里演示了 MD5 和 SHA256 算法的示例。簽名函數首先要讀取開(kāi)發(fā)者的私鑰,然后使用RSA算法完成簽名。
  開(kāi)發(fā)者收到服務(wù)器返回的消息后,使用相同的Hash函數從接收到的原創(chuàng )消息中計算出消息的摘要,然后使用發(fā)送方的公鑰對消息所附的數字簽名進(jìn)行解密,如果兩個(gè)摘要是一致,開(kāi)發(fā)??者可以確認消息是服務(wù)器發(fā)送的,沒(méi)有被篡改。
  
  圖4 簽名驗證功能
  三、加解密
  除了用于數字簽名之外,RAS 算法還可以用于消息的非對稱(chēng)加密。非對稱(chēng)加密比對稱(chēng)加密更安全,但由于算法強度比對稱(chēng)加密復雜,因此加解密速度比對稱(chēng)加密慢。對稱(chēng)加密算法的特點(diǎn)是計算量小、加密速度快、加密效率高。缺點(diǎn)是交易雙方使用相同的密鑰,無(wú)法保證安全。常見(jiàn)的對稱(chēng)加密算法有DES、AES等。
  在互聯(lián)網(wǎng)上傳輸消息時(shí),要保證信息的安全,保證沒(méi)有高延遲。因此,對稱(chēng)加密算法和非對稱(chēng)加密算法通常結合使用。使用非對稱(chēng)加密算法對對稱(chēng)加密算法使用的密鑰進(jìn)行數字簽名和加密傳輸,然后使用對稱(chēng)加密算法對消息進(jìn)行加密和解密,保證了消息傳輸的安全性和消息的傳輸速度改善用戶(hù)體驗。
  下面介紹AES加解密的python實(shí)現。其他加密算法類(lèi)似。您可以根據服務(wù)方的要求選擇使用哪種算法。AES 加密方式有五種:ECB、CBC、CTR、CFB、OFB。最常用的是CBC加密。CBC 加密需要一個(gè) 16 位的密鑰和一個(gè) 16 位的偏移量。開(kāi)發(fā)者使用服務(wù)器提供的appsecret作為加解密密鑰。具體實(shí)現如下圖所示:
  
  圖5 AES加解密
  加密的數據應與簽名一起發(fā)送到服務(wù)器。通常,消息是否使用對稱(chēng)加密是可選的。開(kāi)發(fā)者可以根據開(kāi)放平臺的規定和交易的重要性來(lái)選擇是否加密。
  四、授權
  各大開(kāi)放平臺都有自己的授權認證機制,最流行的機制是OAuth2.0。OAuth2.0 是一種開(kāi)放的授權標準,允許用戶(hù)授權第三方應用訪(fǎng)問(wèn)用戶(hù)在某個(gè)服務(wù)(如微博、微信、QQ等)上的特定私有資源,而無(wú)需提供帳戶(hù)密碼給第三方。對于第三方應用,無(wú)需為第三方應用注冊賬號。如果要進(jìn)行開(kāi)放平臺授權認證測試,必須按照OAuth2.0標準連接服務(wù)方。一般來(lái)說(shuō),服務(wù)提供者提供授權服務(wù),主要提供兩類(lèi)接口:
  1.授權接口:接受第三方應用的授權請求。該接口通常收錄以下參數:
  response_type:必需。該值固定為“代碼”。
  client_id:必需。第三方應用的標識ID,即appID。
  狀態(tài):可選。第三方提供的字符串,服務(wù)器將原樣返回。
  redirect_uri:必需。授權成功后的重定向地址。
  范圍:可選。表示要訪(fǎng)問(wèn)的資源的授權范圍。
  成功訪(fǎng)問(wèn)該接口后,將獲得一個(gè)授權碼。
  2.獲取訪(fǎng)問(wèn)令牌(token)接口:使用授權接口提供的授權碼向第三方應用發(fā)放訪(fǎng)問(wèn)令牌。通常收錄以下參數:
  grant_type:必需。固定值“authorization_code”。
  代碼:必填。授權碼在授權界面響應。
  redirect_uri:必需。必須與授權接口中提供的redirect_uri相同。
  client_id:必需。必須與授權界面提供的appID一致。
  第三方應用獲得令牌后,可以使用令牌請求用戶(hù)授權其訪(fǎng)問(wèn)服務(wù)端存儲的資源。
  以上接口的請求可以自己編碼實(shí)現。Python的django-allauth庫封裝了GitHub、Twitter、微博、微信、百度等數十種第三方授權認證方式,通過(guò)簡(jiǎn)單的配置即可應對各大廠(chǎng)商開(kāi)放平臺的授權認證測試。下圖展示了如何在django應用中注冊django-allauth第三方登錄服務(wù)。
  
  圖6 使用django-allauth庫完成第三方授權登錄
  五、總結
  本文介紹了使用python連接各大開(kāi)放平臺實(shí)現簽名驗證、加解密、授權認證的測試方法,并給出了詳細的例子。開(kāi)發(fā)者可以將上述方法封裝到django或其他框架的web應用中,形成便于測試人員操作的界面。在處理簽名驗證、加解密、授權認證等測試或開(kāi)發(fā)工作時(shí),可以大大提高工作效率。
  我是誰(shuí)?
  我是一名資深的測試人員,從事軟件測試工作多年。今年年初花了一個(gè)月時(shí)間整理了一份2020年最適合學(xué)習的軟件測試學(xué)習干貨,可以送給每一個(gè)對軟件測試感興趣的小伙伴。想要領(lǐng)取的話(huà),可以關(guān)注我的頭條號,后臺給我發(fā)私信:【測試】,免費領(lǐng)取。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺注冊開(kāi)發(fā)者并獲取app和appsecret百度很容易)

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

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

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

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)放平臺API調用和TWITTER接口一樣的限定規則)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)放平臺API調用和TWITTER接口一樣的限定規則)
  新浪微博開(kāi)放平臺API調用與TWITTER接口相同,有時(shí)間限制和限制。
  他有兩個(gè)限制原則
  1.用戶(hù)不基于IP限制登錄,每小時(shí)1000次
  2. 用戶(hù)以基于用戶(hù)的限制登錄,每小時(shí)1000次
  如果應用是用戶(hù)未登錄,則IP被限制。建議登錄破解瓶頸,否則不討論。
  新浪給出了具體限制
  開(kāi)發(fā)者可以通過(guò) rate_limit_status 接口查看調用頻率
  rate_limit_status 接口文檔
  接口返回如下信息
  數組([remaining_hits] =&gt; 999 [hourly_limit] =&gt; 1000 [reset_time_in_seconds] =&gt; 2717 [reset_time] =&gt; 12 月 14 日星期二 17:00:00 +0800 2010)
  代表
  剩余數量為999次,
  每小時(shí)限制1000次,
  計數器復位的剩余時(shí)間為 2717 秒,
  下次重置時(shí)間為 17:00。
  對于小型非授權應用程序,這樣的調用頻率已不再足夠。最簡(jiǎn)單的方法是使用多個(gè)賬號和多個(gè)APP_KEY,相當于做一個(gè)賬號輪詢(xún)。
  首先,多注冊幾個(gè)微博賬號,存儲在一個(gè)數組中,每次隨機調用一個(gè),這樣可以輕松達到3000個(gè)。
  $wb_id = array('|password','|password','|password');
  列表($wb_name,$wb_password)=explode(“|”,$wb_id[array_rand($wb_id)]);
  如果用同樣的方法列出幾個(gè)APP_KEY,重復組合,就會(huì )更多。比如2個(gè)APP_KEY,3個(gè)賬號,上限可以達到6000。
  我個(gè)人用了3個(gè)APP_KEY,4個(gè)賬號,每小時(shí)1.20000的量就夠了。
  另一種快速注冊微博賬號的方法
  第一步,
  去gmail注冊一個(gè)長(cháng)賬號,多長(cháng)時(shí)間?反正越長(cháng)越好,一個(gè)原則信比你想注冊的微博賬號長(cháng)
  例如
  第二步,
  使用此賬號注冊新浪
  第一次使用
  第二次使用
  第三次使用
  ....
  以此類(lèi)推,一個(gè)郵箱可以注冊多個(gè)新浪微博。無(wú)需來(lái)回重新注冊郵箱。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)放平臺API調用和TWITTER接口一樣的限定規則)
  新浪微博開(kāi)放平臺API調用與TWITTER接口相同,有時(shí)間限制和限制。
  他有兩個(gè)限制原則
  1.用戶(hù)不基于IP限制登錄,每小時(shí)1000次
  2. 用戶(hù)以基于用戶(hù)的限制登錄,每小時(shí)1000次
  如果應用是用戶(hù)未登錄,則IP被限制。建議登錄破解瓶頸,否則不討論。
  新浪給出了具體限制
  開(kāi)發(fā)者可以通過(guò) rate_limit_status 接口查看調用頻率
  rate_limit_status 接口文檔
  接口返回如下信息
  數組([remaining_hits] =&gt; 999 [hourly_limit] =&gt; 1000 [reset_time_in_seconds] =&gt; 2717 [reset_time] =&gt; 12 月 14 日星期二 17:00:00 +0800 2010)
  代表
  剩余數量為999次,
  每小時(shí)限制1000次,
  計數器復位的剩余時(shí)間為 2717 秒,
  下次重置時(shí)間為 17:00。
  對于小型非授權應用程序,這樣的調用頻率已不再足夠。最簡(jiǎn)單的方法是使用多個(gè)賬號和多個(gè)APP_KEY,相當于做一個(gè)賬號輪詢(xún)。
  首先,多注冊幾個(gè)微博賬號,存儲在一個(gè)數組中,每次隨機調用一個(gè),這樣可以輕松達到3000個(gè)。
  $wb_id = array('|password','|password','|password');
  列表($wb_name,$wb_password)=explode(“|”,$wb_id[array_rand($wb_id)]);
  如果用同樣的方法列出幾個(gè)APP_KEY,重復組合,就會(huì )更多。比如2個(gè)APP_KEY,3個(gè)賬號,上限可以達到6000。
  我個(gè)人用了3個(gè)APP_KEY,4個(gè)賬號,每小時(shí)1.20000的量就夠了。
  另一種快速注冊微博賬號的方法
  第一步,
  去gmail注冊一個(gè)長(cháng)賬號,多長(cháng)時(shí)間?反正越長(cháng)越好,一個(gè)原則信比你想注冊的微博賬號長(cháng)
  例如
  第二步,
  使用此賬號注冊新浪
  第一次使用
  第二次使用
  第三次使用
  ....
  以此類(lèi)推,一個(gè)郵箱可以注冊多個(gè)新浪微博。無(wú)需來(lái)回重新注冊郵箱。

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

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺(api同步微博內容至自己網(wǎng)站))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站新浪微博關(guān)注</a>
  前端把微博的鏈接請求發(fā)給后端服務(wù)器,會(huì )返回轉發(fā)的url,服務(wù)器根據url里的id把這條微博轉發(fā)給相應的網(wǎng)站。例如:微博用戶(hù)頁(yè),微博轉發(fā)頁(yè)面url=""//新浪微博轉發(fā)微博鏈接headerhref=""//新浪微博自定義地址sign="text/html,application/xhtml+xml,application/xml;q=0.9"//后端headerdata={"user-agent":"mozilla/5.0(windowsnt10.0;win64;x6。
  4)applewebkit/537.36(khtml,likegecko)chrome/74.0.3033.110safari/537.36","ispublishers":"keep-alive","mms":"5.0"}
  新浪官方做了一個(gè)可以對新浪微博中鏈接進(jìn)行互訪(fǎng)的api,很有用,我寫(xiě)了一個(gè)專(zhuān)門(mén)用于新浪微博互訪(fǎng)的web框架,
  這個(gè)可以實(shí)現,先把新浪微博的數據抓到,然后微博數據庫中查出微博地址轉發(fā)給相應網(wǎng)站,然后轉發(fā)到自己的網(wǎng)站上。
  剛遇到,使用互聯(lián)網(wǎng)開(kāi)放平臺(api),然后后端轉發(fā)給對應網(wǎng)站。開(kāi)放平臺把數據流轉發(fā)給對應網(wǎng)站的服務(wù)器,再由對應網(wǎng)站服務(wù)器再把數據轉發(fā)給后端。
  通過(guò)流分析收集微博內容,然后直接通過(guò)爬蟲(chóng)抓取過(guò)來(lái)。
  1、excel或者powerbi做流程圖;
  2、用網(wǎng)頁(yè)版新浪提供; 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺(api同步微博內容至自己網(wǎng)站))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站新浪微博關(guān)注</a>
  前端把微博的鏈接請求發(fā)給后端服務(wù)器,會(huì )返回轉發(fā)的url,服務(wù)器根據url里的id把這條微博轉發(fā)給相應的網(wǎng)站。例如:微博用戶(hù)頁(yè),微博轉發(fā)頁(yè)面url=""//新浪微博轉發(fā)微博鏈接headerhref=""//新浪微博自定義地址sign="text/html,application/xhtml+xml,application/xml;q=0.9"//后端headerdata={"user-agent":"mozilla/5.0(windowsnt10.0;win64;x6。
  4)applewebkit/537.36(khtml,likegecko)chrome/74.0.3033.110safari/537.36","ispublishers":"keep-alive","mms":"5.0"}
  新浪官方做了一個(gè)可以對新浪微博中鏈接進(jìn)行互訪(fǎng)的api,很有用,我寫(xiě)了一個(gè)專(zhuān)門(mén)用于新浪微博互訪(fǎng)的web框架,
  這個(gè)可以實(shí)現,先把新浪微博的數據抓到,然后微博數據庫中查出微博地址轉發(fā)給相應網(wǎng)站,然后轉發(fā)到自己的網(wǎng)站上。
  剛遇到,使用互聯(lián)網(wǎng)開(kāi)放平臺(api),然后后端轉發(fā)給對應網(wǎng)站。開(kāi)放平臺把數據流轉發(fā)給對應網(wǎng)站的服務(wù)器,再由對應網(wǎng)站服務(wù)器再把數據轉發(fā)給后端。
  通過(guò)流分析收集微博內容,然后直接通過(guò)爬蟲(chóng)抓取過(guò)來(lái)。
  1、excel或者powerbi做流程圖;
  2、用網(wǎng)頁(yè)版新浪提供;

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

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(圖))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,方便所有中文字體開(kāi)發(fā)者使用。
  開(kāi)放平臺不了解,不過(guò)我聽(tīng)說(shuō)可以用apilink,國內比較領(lǐng)先的文字轉引擎,支持的場(chǎng)景還是蠻多的,
  可以關(guān)注下“simplemouse”這款app,主要用來(lái)做文字轉,
  微博開(kāi)放平臺::。
  有一個(gè)功能叫智能轉換,可以達到所有人都可以使用,在googlereader里面登錄賬號,并授權,那么別人無(wú)論是手機端,還是網(wǎng)頁(yè)端,只要有相同的標題,在閱讀過(guò)程中,都可以收聽(tīng)你的內容。實(shí)現方法:登錄谷歌reader賬號,添加賬號,當前用戶(hù)是可以直接直接登錄谷歌reader里面的賬號的,同理,所有用戶(hù)也都可以登錄同一個(gè)賬號。
  打開(kāi)readitlater,新建文章,同一標題,同一內容,系統就會(huì )自動(dòng)收聽(tīng)你的音頻,省去你登錄多個(gè)賬號的步驟。音頻的長(cháng)度:所有未經(jīng)過(guò)長(cháng)短號轉換的全免費音頻,可以無(wú)限制的轉換。音頻的音量:音量是60即可,自己可以調節。轉換之后文章不會(huì )加長(cháng)或者減短。上傳音頻:文章上傳的時(shí)候,選擇文章文件大小,選擇輸出比特率,這樣音頻會(huì )根據你電腦是網(wǎng)絡(luò )過(guò)載還是網(wǎng)絡(luò )不好調整成其他形式,只要你能拿到音頻長(cháng)度,并且實(shí)時(shí)收聽(tīng),基本上也是沒(méi)有任何問(wèn)題的。
  所以我相信國內一定還有很多人都在用,畢竟谷歌reader目前已經(jīng)極度完善的情況下,還有那么多的問(wèn)題,確實(shí)也有必要好好思考一下。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(圖))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,方便所有中文字體開(kāi)發(fā)者使用。
  開(kāi)放平臺不了解,不過(guò)我聽(tīng)說(shuō)可以用apilink,國內比較領(lǐng)先的文字轉引擎,支持的場(chǎng)景還是蠻多的,
  可以關(guān)注下“simplemouse”這款app,主要用來(lái)做文字轉,
  微博開(kāi)放平臺::。
  有一個(gè)功能叫智能轉換,可以達到所有人都可以使用,在googlereader里面登錄賬號,并授權,那么別人無(wú)論是手機端,還是網(wǎng)頁(yè)端,只要有相同的標題,在閱讀過(guò)程中,都可以收聽(tīng)你的內容。實(shí)現方法:登錄谷歌reader賬號,添加賬號,當前用戶(hù)是可以直接直接登錄谷歌reader里面的賬號的,同理,所有用戶(hù)也都可以登錄同一個(gè)賬號。
  打開(kāi)readitlater,新建文章,同一標題,同一內容,系統就會(huì )自動(dòng)收聽(tīng)你的音頻,省去你登錄多個(gè)賬號的步驟。音頻的長(cháng)度:所有未經(jīng)過(guò)長(cháng)短號轉換的全免費音頻,可以無(wú)限制的轉換。音頻的音量:音量是60即可,自己可以調節。轉換之后文章不會(huì )加長(cháng)或者減短。上傳音頻:文章上傳的時(shí)候,選擇文章文件大小,選擇輸出比特率,這樣音頻會(huì )根據你電腦是網(wǎng)絡(luò )過(guò)載還是網(wǎng)絡(luò )不好調整成其他形式,只要你能拿到音頻長(cháng)度,并且實(shí)時(shí)收聽(tīng),基本上也是沒(méi)有任何問(wèn)題的。
  所以我相信國內一定還有很多人都在用,畢竟谷歌reader目前已經(jīng)極度完善的情況下,還有那么多的問(wèn)題,確實(shí)也有必要好好思考一下。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
  最近一直在做利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
  對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號和本地賬號的綁定。放心,一定和代碼級別一樣好。
  第 1 部分:三方登錄:
  1. 新浪微博開(kāi)放平臺要做的事情:
  請耐心閱讀,一步一步操作,如圖:
 ?、龠M(jìn)入
  
 ?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
  
 ?、圻x擇立即連接:
  
  請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊后即可通過(guò)驗證(身份驗證)
 ?、芴顚?xiě)網(wǎng)站信息,然后在你的網(wǎng)站主頁(yè)添加標記,本地添加成功后(在eclipse等開(kāi)發(fā)ide中添加到項目主頁(yè)),然后重新發(fā)布到你自己的服務(wù)器,(你可以重新打包成war包發(fā)布到網(wǎng)上,比如我用的是騰訊的阿里云主機)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
  
 ?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站的appKey,(appkey)是你的網(wǎng)站的唯一標識。
  查找您自己的 appkey,如下所示:
  點(diǎn)擊我的申請:
  
  這時(shí)候會(huì )有appkey的值,你肯定會(huì )看到
  完成這些步驟后,請設置您的授權回調頁(yè)面:
  解釋
  1.授權回調頁(yè)面是用戶(hù)登錄到您使用微博賬號訪(fǎng)問(wèn)過(guò)的網(wǎng)站(您的網(wǎng)站首頁(yè))后,會(huì )收到用戶(hù)個(gè)人openID和accessToken的頁(yè)面或其他頁(yè)面)
  2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
  設置如下
  點(diǎn)擊上圖中的界面管理:
  
  然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
  
  點(diǎn)擊編輯,切換到自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
  這時(shí)候網(wǎng)站的申請已經(jīng)完成了,騷年,開(kāi)始寫(xiě)代碼。
  在你的主頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試,真正的開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,有登錄按鈕新浪微博)注意微博有登錄組件,這里我們使用自定義按鈕:
  進(jìn)行如下操作:
 ?、? 在 weibo.js 中引入
  
  appkey=寫(xiě)你的應用密鑰網(wǎng)站。
 ?、? 設置您的登錄按鈕
  
 ?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
  
 ?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
  
  隱藏表單如下所示:
  
  spring 安全框架用于用戶(hù)認證和授權。
  基本上就是這樣。我相信那些想做這件事的人也知道 Ajax。因為后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
  一切平安。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
  最近一直在做利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
  對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號和本地賬號的綁定。放心,一定和代碼級別一樣好。
  第 1 部分:三方登錄:
  1. 新浪微博開(kāi)放平臺要做的事情:
  請耐心閱讀,一步一步操作,如圖:
 ?、龠M(jìn)入
  
 ?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
  
 ?、圻x擇立即連接:
  
  請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊后即可通過(guò)驗證(身份驗證)
 ?、芴顚?xiě)網(wǎng)站信息,然后在你的網(wǎng)站主頁(yè)添加標記,本地添加成功后(在eclipse等開(kāi)發(fā)ide中添加到項目主頁(yè)),然后重新發(fā)布到你自己的服務(wù)器,(你可以重新打包成war包發(fā)布到網(wǎng)上,比如我用的是騰訊的阿里云主機)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
  
 ?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站的appKey,(appkey)是你的網(wǎng)站的唯一標識。
  查找您自己的 appkey,如下所示:
  點(diǎn)擊我的申請:
  
  這時(shí)候會(huì )有appkey的值,你肯定會(huì )看到
  完成這些步驟后,請設置您的授權回調頁(yè)面:
  解釋
  1.授權回調頁(yè)面是用戶(hù)登錄到您使用微博賬號訪(fǎng)問(wèn)過(guò)的網(wǎng)站(您的網(wǎng)站首頁(yè))后,會(huì )收到用戶(hù)個(gè)人openID和accessToken的頁(yè)面或其他頁(yè)面)
  2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
  設置如下
  點(diǎn)擊上圖中的界面管理:
  
  然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
  
  點(diǎn)擊編輯,切換到自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
  這時(shí)候網(wǎng)站的申請已經(jīng)完成了,騷年,開(kāi)始寫(xiě)代碼。
  在你的主頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試,真正的開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,有登錄按鈕新浪微博)注意微博有登錄組件,這里我們使用自定義按鈕:
  進(jìn)行如下操作:
 ?、? 在 weibo.js 中引入
  
  appkey=寫(xiě)你的應用密鑰網(wǎng)站。
 ?、? 設置您的登錄按鈕
  
 ?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
  
 ?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
  
  隱藏表單如下所示:
  
  spring 安全框架用于用戶(hù)認證和授權。
  基本上就是這樣。我相信那些想做這件事的人也知道 Ajax。因為后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
  一切平安。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API生成短鏈接,同時(shí)支持多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,通俗的講就是通過(guò)程序計算將長(cháng)網(wǎng)址網(wǎng)址轉換為短網(wǎng)址字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  // APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p> 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API生成短鏈接,同時(shí)支持多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,通俗的講就是通過(guò)程序計算將長(cháng)網(wǎng)址網(wǎng)址轉換為短網(wǎng)址字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  // APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p>

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺創(chuàng )建應用的詳細流程及應用)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺創(chuàng )建應用的詳細流程及應用)
  一、準備。
  1. 微博賬號。注冊很容易。
  2.微博賬號成為開(kāi)發(fā)者。
  登錄微博開(kāi)放平臺登錄您的注冊賬號,然后進(jìn)入管理中心完成開(kāi)發(fā)者基本信息和身份認證。
  這時(shí)候還需要瀏覽微博開(kāi)放平臺的文檔,了解這個(gè)開(kāi)放平臺的一些規范術(shù)語(yǔ)。
  單擊每個(gè)鏈接進(jìn)行查看。順便看一下微博API文檔,里面有介紹,有些接口調用需要獲取access_token。這篇文章就是為了達到這個(gè)目的。
  二、創(chuàng )建一個(gè)應用程序。
  比如我們要開(kāi)發(fā)一個(gè)網(wǎng)站,然后在這個(gè)網(wǎng)站中連接微博開(kāi)放平臺,調用開(kāi)放平臺的接口。然后我們需要在登錄微博開(kāi)放平臺后創(chuàng )建一個(gè)應用。
  創(chuàng )建應用程序后,您將獲得應用程序的 App key 和 AppSecret。然后我們就是利用這個(gè)信息調用新浪微博的auth2.0認證獲取access_token。
  拿到access_token后,我們就可以調用我們需要的接口了,比如發(fā)微博等。
  1. 創(chuàng )建引用的地方。開(kāi)放平臺--》點(diǎn)擊上方導航菜單中的“微鏈接”,這里的微鏈接的概念也是這個(gè)開(kāi)放平臺的一個(gè)術(shù)語(yǔ),具體含義可以查看相關(guān)文檔。
  2.創(chuàng )建什么類(lèi)型的應用程序?
  隨意看看你的情況。測試時(shí),您可以創(chuàng )建任何東西,嘗試并充滿(mǎn)信心地去做。我創(chuàng )建的是一個(gè)網(wǎng)頁(yè)參考,所以我發(fā)現它很容易輸入,不需要填寫(xiě)太多信息。
  如下所示:
  
  創(chuàng )建完成后,可以在我的應用中看到:
  
  單擊以查看與應用程序相關(guān)的信息。一會(huì )兒我們需要用到這里的app key和app secret,還需要配置應用授權回調地址。
  三、下載微博開(kāi)發(fā)SDK。
  開(kāi)發(fā)SDK中有一些示例,可以直接作為參考。下載鏈接。我下載了 weibo4j 的 Java 版本。下載后,我導入了開(kāi)發(fā)工具。如下所示:
  
  代碼很多,不要慌,先在examples包下的oauth2包下找到OAuth4Code類(lèi)。我們需要運行這個(gè)類(lèi)。
  這個(gè)類(lèi)完成oauth操作,這一步包括兩個(gè)請求
  第一次:
https://api.weibo.com/oauth2/a ... Dcode
第二次:
https://api.weibo.com/oauth2/access_token
  請注意,第一個(gè)請求中有一個(gè) client_id。這個(gè)參數需要在config.properties中配置,對應我們上面創(chuàng )建的應用的app key。
  同樣,這個(gè)配置文件中有一個(gè)client_SERCRET,對應我們上面創(chuàng )建的應用的app sercret,復制進(jìn)去。
  還有一個(gè)參數redirect_uri,比較關(guān)鍵。當我們運行OAuth4Code類(lèi)時(shí),第一次請求完成后,會(huì )回調這個(gè)地址,同時(shí)帶入一個(gè)code參數。
  我們需要復制這個(gè)參數,在控制臺中輸入,然后回車(chē)。發(fā)起第二個(gè)請求,這個(gè)請求會(huì )返回我們需要的access_token。那么問(wèn)題來(lái)了,如何配置這個(gè)地址呢?
  1. 在上面創(chuàng )建的參考中,找到接口管理--》授權機制也沒(méi)有配置回調地址的地方,填寫(xiě)即可。
  2. 上面的鏈接應該在config.properties中配置,如下:
  client_ID = 1234567890
client_SERCRET = 890a2ab550cf8d7a0090ff2f19850f3a
redirect_URI = https\://api.weibo.com/oauth2/default.html
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https\://rm.api.weibo.com/2/
  三、 運行程序獲取access_token。
  上面第二步完成后,配置就完成了。運行以下類(lèi):
  public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.println(oauth.authorize("code"));
System.out.print("Hit enter when it&#39;s done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
Log.logInfo("code: " + code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
} catch (WeiboException e) {
if(401 == e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}
}
  程序運行后,在控制臺輸入一行log后,進(jìn)入等待控制臺輸入的狀態(tài),瀏覽器立即打開(kāi)了一個(gè)頁(yè)面,跳轉后頁(yè)面變成了如下:
  
  復制瀏覽器地址欄中的code參數值?;氐絤yeclipse,粘貼這個(gè)值,然后回車(chē)。程序繼續執行,使用這個(gè)code參數,再次發(fā)起請求,終于成功后就可以拿到access_token了
  整個(gè)過(guò)程的效果日志:
  
  四、本例中oauth授權流程總結。
  兩次請求
  第一次:
  https://api.weibo.com/oauth2/a ... Dcode
  同意授權后,會(huì )重定向:
  //同意授權后會(huì )重定向
http://www.example.com/response&code=CODE
  第二次:
  按照上面的代碼再次發(fā)起請求。獲取 access_token
  會(huì )有一些問(wèn)題,主要原因是授權地址配置不正確。根據本文中的示例配置,您可以成功運行程序。獲取 access_token。
  錯誤代碼如下:
  錯誤代碼(error) 錯誤代碼(error_code) 錯誤描述(error_description)
  redirect_uri_mismatch
  21322
  重定向地址不匹配
  無(wú)效請求
  21323
  請求是非法的
  invalid_client
  21324
  client_id 或 client_secret 參數無(wú)效
  invalid_grant
  21325
  提供的訪(fǎng)問(wèn)授權無(wú)效、已過(guò)期或已撤銷(xiāo)
  未經(jīng)授權的客戶(hù)端
  21326
  客戶(hù)端沒(méi)有權限
  expired_token
  21327
  令牌過(guò)期
  unsupported_grant_type
  21328
  不支持的 GrantType
  unsupported_response_type
  21329
  不支持的響應類(lèi)型
  拒絕訪(fǎng)問(wèn)
  21330
  用戶(hù)或授權服務(wù)器拒絕授予數據訪(fǎng)問(wèn)權限
  暫時(shí)不可用
  21331
  該服務(wù)暫時(shí)不可用
  appkey權限被拒絕
  21337
  應用權限不足 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺創(chuàng )建應用的詳細流程及應用)
  一、準備。
  1. 微博賬號。注冊很容易。
  2.微博賬號成為開(kāi)發(fā)者。
  登錄微博開(kāi)放平臺登錄您的注冊賬號,然后進(jìn)入管理中心完成開(kāi)發(fā)者基本信息和身份認證。
  這時(shí)候還需要瀏覽微博開(kāi)放平臺的文檔,了解這個(gè)開(kāi)放平臺的一些規范術(shù)語(yǔ)。
  單擊每個(gè)鏈接進(jìn)行查看。順便看一下微博API文檔,里面有介紹,有些接口調用需要獲取access_token。這篇文章就是為了達到這個(gè)目的。
  二、創(chuàng )建一個(gè)應用程序。
  比如我們要開(kāi)發(fā)一個(gè)網(wǎng)站,然后在這個(gè)網(wǎng)站中連接微博開(kāi)放平臺,調用開(kāi)放平臺的接口。然后我們需要在登錄微博開(kāi)放平臺后創(chuàng )建一個(gè)應用。
  創(chuàng )建應用程序后,您將獲得應用程序的 App key 和 AppSecret。然后我們就是利用這個(gè)信息調用新浪微博的auth2.0認證獲取access_token。
  拿到access_token后,我們就可以調用我們需要的接口了,比如發(fā)微博等。
  1. 創(chuàng )建引用的地方。開(kāi)放平臺--》點(diǎn)擊上方導航菜單中的“微鏈接”,這里的微鏈接的概念也是這個(gè)開(kāi)放平臺的一個(gè)術(shù)語(yǔ),具體含義可以查看相關(guān)文檔。
  2.創(chuàng )建什么類(lèi)型的應用程序?
  隨意看看你的情況。測試時(shí),您可以創(chuàng )建任何東西,嘗試并充滿(mǎn)信心地去做。我創(chuàng )建的是一個(gè)網(wǎng)頁(yè)參考,所以我發(fā)現它很容易輸入,不需要填寫(xiě)太多信息。
  如下所示:
  
  創(chuàng )建完成后,可以在我的應用中看到:
  
  單擊以查看與應用程序相關(guān)的信息。一會(huì )兒我們需要用到這里的app key和app secret,還需要配置應用授權回調地址。
  三、下載微博開(kāi)發(fā)SDK。
  開(kāi)發(fā)SDK中有一些示例,可以直接作為參考。下載鏈接。我下載了 weibo4j 的 Java 版本。下載后,我導入了開(kāi)發(fā)工具。如下所示:
  
  代碼很多,不要慌,先在examples包下的oauth2包下找到OAuth4Code類(lèi)。我們需要運行這個(gè)類(lèi)。
  這個(gè)類(lèi)完成oauth操作,這一步包括兩個(gè)請求
  第一次:
https://api.weibo.com/oauth2/a ... Dcode
第二次:
https://api.weibo.com/oauth2/access_token
  請注意,第一個(gè)請求中有一個(gè) client_id。這個(gè)參數需要在config.properties中配置,對應我們上面創(chuàng )建的應用的app key。
  同樣,這個(gè)配置文件中有一個(gè)client_SERCRET,對應我們上面創(chuàng )建的應用的app sercret,復制進(jìn)去。
  還有一個(gè)參數redirect_uri,比較關(guān)鍵。當我們運行OAuth4Code類(lèi)時(shí),第一次請求完成后,會(huì )回調這個(gè)地址,同時(shí)帶入一個(gè)code參數。
  我們需要復制這個(gè)參數,在控制臺中輸入,然后回車(chē)。發(fā)起第二個(gè)請求,這個(gè)請求會(huì )返回我們需要的access_token。那么問(wèn)題來(lái)了,如何配置這個(gè)地址呢?
  1. 在上面創(chuàng )建的參考中,找到接口管理--》授權機制也沒(méi)有配置回調地址的地方,填寫(xiě)即可。
  2. 上面的鏈接應該在config.properties中配置,如下:
  client_ID = 1234567890
client_SERCRET = 890a2ab550cf8d7a0090ff2f19850f3a
redirect_URI = https\://api.weibo.com/oauth2/default.html

baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https\://rm.api.weibo.com/2/
  三、 運行程序獲取access_token。
  上面第二步完成后,配置就完成了。運行以下類(lèi):
  public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.println(oauth.authorize("code"));
System.out.print("Hit enter when it&#39;s done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
Log.logInfo("code: " + code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
} catch (WeiboException e) {
if(401 == e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}
}
  程序運行后,在控制臺輸入一行log后,進(jìn)入等待控制臺輸入的狀態(tài),瀏覽器立即打開(kāi)了一個(gè)頁(yè)面,跳轉后頁(yè)面變成了如下:
  
  復制瀏覽器地址欄中的code參數值?;氐絤yeclipse,粘貼這個(gè)值,然后回車(chē)。程序繼續執行,使用這個(gè)code參數,再次發(fā)起請求,終于成功后就可以拿到access_token了
  整個(gè)過(guò)程的效果日志:
  
  四、本例中oauth授權流程總結。
  兩次請求
  第一次:
  https://api.weibo.com/oauth2/a ... Dcode
  同意授權后,會(huì )重定向:
  //同意授權后會(huì )重定向
http://www.example.com/response&code=CODE
  第二次:
  按照上面的代碼再次發(fā)起請求。獲取 access_token
  會(huì )有一些問(wèn)題,主要原因是授權地址配置不正確。根據本文中的示例配置,您可以成功運行程序。獲取 access_token。
  錯誤代碼如下:
  錯誤代碼(error) 錯誤代碼(error_code) 錯誤描述(error_description)
  redirect_uri_mismatch
  21322
  重定向地址不匹配
  無(wú)效請求
  21323
  請求是非法的
  invalid_client
  21324
  client_id 或 client_secret 參數無(wú)效
  invalid_grant
  21325
  提供的訪(fǎng)問(wèn)授權無(wú)效、已過(guò)期或已撤銷(xiāo)
  未經(jīng)授權的客戶(hù)端
  21326
  客戶(hù)端沒(méi)有權限
  expired_token
  21327
  令牌過(guò)期
  unsupported_grant_type
  21328
  不支持的 GrantType
  unsupported_response_type
  21329
  不支持的響應類(lèi)型
  拒絕訪(fǎng)問(wèn)
  21330
  用戶(hù)或授權服務(wù)器拒絕授予數據訪(fǎng)問(wèn)權限
  暫時(shí)不可用
  21331
  該服務(wù)暫時(shí)不可用
  appkey權限被拒絕
  21337
  應用權限不足

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API,可以生成短鏈接,同時(shí)可以傳輸多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,一般來(lái)說(shuō)就是通過(guò)程序計算的方式將一個(gè)長(cháng)的URL URL 轉換成一個(gè)短的URL 字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  
// APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p> 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API,可以生成短鏈接,同時(shí)可以傳輸多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,一般來(lái)說(shuō)就是通過(guò)程序計算的方式將一個(gè)長(cháng)的URL URL 轉換成一個(gè)短的URL 字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  
// APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p>

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(wordpress網(wǎng)站可以寫(xiě)php代碼1.php文件測試.php)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(wordpress網(wǎng)站可以寫(xiě)php代碼1.php文件測試.php)
  據說(shuō)wordpress網(wǎng)站可以在發(fā)帖時(shí)將文章同步到新浪微博,想寫(xiě)一個(gè)php代碼測試基于同樣的方法。以下內容引自:
  微博同步方式大致有插件、關(guān)聯(lián)博客、非插件微博三種方式
  第一種是直接在百度上搜索;
  其次,因為新浪現在取消了鏈接博客的選項,但該功能并未取消??梢栽?xún)問(wèn)下面的地址,然后進(jìn)行配置。
  第三種方法需要使用新浪的接口,如下:
  1) 前往新浪微博開(kāi)放平臺創(chuàng )建站內應用。審核不通過(guò)沒(méi)關(guān)系,但是如果通過(guò)了,可以在微博底部展示來(lái)自XX的應用,比如來(lái)自KingGoo科技博客的圖片。如何創(chuàng )建它?在百度google上搜索,很簡(jiǎn)單(但是如果你沒(méi)有通過(guò)審核想通過(guò)審核,我可以提供付費幫助嘎嘎~),創(chuàng )建應用后,需要使用App Key申請下面的應用程序;
  2)編輯你的主題的functions.php文件并在最后添加以下代碼
  // 微博同步function post_to_sina_weibo($post_ID) { if( wp_is_post_revision($post_ID) ) return; $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; //去掉文章內的html編碼的空格、換行、tab等符號(如果你文章的編碼格式是這樣子,可以將下面的"//"去掉即開(kāi)啟此功能) //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent))); $get_post_title = get_post($post_ID)->post_title; if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { $request = new WP_Http; $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ; $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'4135063399'); $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); /* 如果你使用改方法,請注釋掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); 換成如下代碼 //你的新浪微博登陸名 $username = '' ; //你的新浪微博登陸密碼 $password = '' ; $headers = array( 'Authorization' => 'Basic ' . base64_encode('$username:$password')); */ $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) ); }}add_action('publish_post', 'post_to_sina_weibo', 0);
  文章需要用到wordpress自帶的WP_Http類(lèi),我在github上找到了替代品:
  關(guān)于這個(gè)類(lèi)的一個(gè)說(shuō)明:EasyHttp是一個(gè)php類(lèi),可以幫助你忽略不同的php環(huán)境條件,亂發(fā)送http請求。您不再需要關(guān)注當前的 php 環(huán)境是否支持 curl/fsockopen/fopen,EasyHttp 會(huì )自動(dòng)選擇最合適的方式進(jìn)行 http 請求。EasyHttp 派生自 WordPress 中的 WP_Http 類(lèi),它去除了對其他 WordPress 功能的所有依賴(lài),將其拆分為不同的文件,并進(jìn)行了少量的簡(jiǎn)化。
  根據以上內容,編寫(xiě)php代碼1.php:
  當瀏覽器訪(fǎng)問(wèn)1.php時(shí),返回如下內容:
  Array ([headers] =&gt; Array ([server] =&gt; nginx/1.2.0 [date] =&gt; Sun, 13 Oct 2013 02:23:46 GMT [content-type] =&gt; text/plain;charset=UTF-8 [content-length] =&gt; 76 [connection] =&gt; close [api-server-ip] =&gt; 10.75.0.170 [變化] =&gt; Accept-Encoding [x-varnish] =&gt; 3299864740 [age] =&gt; 0 [via] =&gt; 1.1 varnish) [body] =&gt; Bad Content-Type header value:'application/ x-www-form-urlencoded; charset=' [response] =&gt; Array ([code] =&gt; 400 [message] =&gt; Bad Request) [cookies] =&gt; Array () [filename] =&gt;)
  好像是 400 Bad Request。百度一下,意思是“由于語(yǔ)法格式錯誤,服務(wù)器無(wú)法理解這個(gè)請求。不修改,客戶(hù)端程序不能重復這個(gè)請求?!?br />   你怎么解決這個(gè)問(wèn)題? 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(wordpress網(wǎng)站可以寫(xiě)php代碼1.php文件測試.php)
  據說(shuō)wordpress網(wǎng)站可以在發(fā)帖時(shí)將文章同步到新浪微博,想寫(xiě)一個(gè)php代碼測試基于同樣的方法。以下內容引自:
  微博同步方式大致有插件、關(guān)聯(lián)博客、非插件微博三種方式
  第一種是直接在百度上搜索;
  其次,因為新浪現在取消了鏈接博客的選項,但該功能并未取消??梢栽?xún)問(wèn)下面的地址,然后進(jìn)行配置。
  第三種方法需要使用新浪的接口,如下:
  1) 前往新浪微博開(kāi)放平臺創(chuàng )建站內應用。審核不通過(guò)沒(méi)關(guān)系,但是如果通過(guò)了,可以在微博底部展示來(lái)自XX的應用,比如來(lái)自KingGoo科技博客的圖片。如何創(chuàng )建它?在百度google上搜索,很簡(jiǎn)單(但是如果你沒(méi)有通過(guò)審核想通過(guò)審核,我可以提供付費幫助嘎嘎~),創(chuàng )建應用后,需要使用App Key申請下面的應用程序;
  2)編輯你的主題的functions.php文件并在最后添加以下代碼
  // 微博同步function post_to_sina_weibo($post_ID) { if( wp_is_post_revision($post_ID) ) return; $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; //去掉文章內的html編碼的空格、換行、tab等符號(如果你文章的編碼格式是這樣子,可以將下面的"//"去掉即開(kāi)啟此功能) //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent))); $get_post_title = get_post($post_ID)->post_title; if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { $request = new WP_Http; $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ; $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'4135063399'); $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); /* 如果你使用改方法,請注釋掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); 換成如下代碼 //你的新浪微博登陸名 $username = '' ; //你的新浪微博登陸密碼 $password = '' ; $headers = array( 'Authorization' => 'Basic ' . base64_encode('$username:$password')); */ $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) ); }}add_action('publish_post', 'post_to_sina_weibo', 0);
  文章需要用到wordpress自帶的WP_Http類(lèi),我在github上找到了替代品:
  關(guān)于這個(gè)類(lèi)的一個(gè)說(shuō)明:EasyHttp是一個(gè)php類(lèi),可以幫助你忽略不同的php環(huán)境條件,亂發(fā)送http請求。您不再需要關(guān)注當前的 php 環(huán)境是否支持 curl/fsockopen/fopen,EasyHttp 會(huì )自動(dòng)選擇最合適的方式進(jìn)行 http 請求。EasyHttp 派生自 WordPress 中的 WP_Http 類(lèi),它去除了對其他 WordPress 功能的所有依賴(lài),將其拆分為不同的文件,并進(jìn)行了少量的簡(jiǎn)化。
  根據以上內容,編寫(xiě)php代碼1.php:
  當瀏覽器訪(fǎng)問(wèn)1.php時(shí),返回如下內容:
  Array ([headers] =&gt; Array ([server] =&gt; nginx/1.2.0 [date] =&gt; Sun, 13 Oct 2013 02:23:46 GMT [content-type] =&gt; text/plain;charset=UTF-8 [content-length] =&gt; 76 [connection] =&gt; close [api-server-ip] =&gt; 10.75.0.170 [變化] =&gt; Accept-Encoding [x-varnish] =&gt; 3299864740 [age] =&gt; 0 [via] =&gt; 1.1 varnish) [body] =&gt; Bad Content-Type header value:'application/ x-www-form-urlencoded; charset=' [response] =&gt; Array ([code] =&gt; 400 [message] =&gt; Bad Request) [cookies] =&gt; Array () [filename] =&gt;)
  好像是 400 Bad Request。百度一下,意思是“由于語(yǔ)法格式錯誤,服務(wù)器無(wú)法理解這個(gè)請求。不修改,客戶(hù)端程序不能重復這個(gè)請求?!?br />   你怎么解決這個(gè)問(wèn)題?

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(WeiboSDK新浪微博SDKv3源碼和示例(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(WeiboSDK新浪微博SDKv3源碼和示例(圖))
  WeiboSDK 新浪微博SDK v3 源代碼和示例前言
  時(shí)間過(guò)得真快,距離上次SDK更新已經(jīng)3年多了。隨著(zhù)正式版的不斷更新,老SDK的部分接口已經(jīng)不能正常使用了。于是,QQ群里抱怨辱罵的朋友開(kāi)始增多。隨著(zhù)時(shí)代的發(fā)展,微博已經(jīng)被微信徹底甩掉,失去了興趣;同時(shí),對于我自己來(lái)說(shuō),在這個(gè)行業(yè)里為了生存而生存幾年后,日子越來(lái)越不好過(guò),我沒(méi)有時(shí)間。然后和新浪官方同步更新SDK,所以自13年之后,V2版本的SDK就沒(méi)有再更新了。雖然微博的風(fēng)潮沒(méi)了,但還是有很多朋友通過(guò)新浪開(kāi)放平臺頁(yè)面下載了我發(fā)布的SDK??梢哉f(shuō),由于長(cháng)期不更新,老版本嚴重誤導了新朋友。這也是我開(kāi)發(fā)的。SDK 新版本的另一個(gè)重要原因。SDK第三版的一些說(shuō)明
  指示
  第一步是初始化客戶(hù)端
  如果用戶(hù)沒(méi)有被授權
  使用微博開(kāi)放平臺后臺提供的appkey、appsecret、callback_url初始化客戶(hù)端。
  ", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "");
  然后獲取授權頁(yè)面地址,訪(fǎng)問(wèn)授權地址,獲取Authorization_Code
  var url = openAuth.GetAuthorizationUrl();
  根據返回的Code兌換AccessToken
  openAuth.GetAccessTokenByCode("[CODE]");
if(openAuth.IsAuthorized)
{
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
}
  重要的?。?!獲取到AccessToken和UID后,請保存這兩個(gè)數據,以后的接口調用會(huì )直接使用這兩個(gè)參數,所以不需要每次都執行第一步和第二步。
  接下來(lái)就可以跳轉到第二步調用官方API了。
  當然,如果你之前已經(jīng)被授權并且已經(jīng)獲得了AccessToken和UID,那么使用下面的方法來(lái)初始化客戶(hù)端。
  ", "", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "", "");
  之后就可以直接跳轉到第二步調用API了。
  第二步調用接口
  這里提供了Get和Post兩個(gè)方法調用官方API,也提供了異步支持。使用時(shí)根據官方文檔的要求選擇是使用Get還是Post調用API(調用方法在官方文檔中有明確說(shuō)明)。
  調用接口傳遞參數有兩種方式。一個(gè)是傳入一個(gè)Dictionary類(lèi)型的參數組,一個(gè)是傳入一個(gè)名為new的匿名類(lèi)。我個(gè)人認為使用匿名類(lèi)是非??茖W(xué)的。
  例如調用API獲取當前登錄用戶(hù)的最新微博
  {{"count", 5},{"page", 1},{"base_app", 0}}); //這里可以使用字典或者匿名類(lèi)來(lái)傳遞參數,參數名,大小寫(xiě),參數順序和規范請參考官方api文檔 if (result.IsSuccessStatusCode){Console.WriteLine(result.Content.ReadAsStringAsync( ).結果);}"&gt;
  var result = openAuth.HttpGet("statuses/friends_timeline.json",
new Dictionary
{
{"count", 5},
{"page", 1},
{"base_app" , 0}
}); //這里可以使用字典或者匿名類(lèi)的方式傳遞參數,參數名稱(chēng)、大小寫(xiě)、參數順序和規范請參照官方api文檔
if (result.IsSuccessStatusCode)
{
Console.WriteLine(result.Content.ReadAsStringAsync().Result);
}
  另外,如果需要異步調用,請參考下面的例子。
  對象的類(lèi)型也可以直接傳入匿名類(lèi)。參數對應官方api文檔中的參數 new {uid = openAuth.UID});response.ContinueWith(task =&gt;{//asynchronous processing result});"&gt;
  // 調用獲取獲取用戶(hù)信息api
// 參考:http://open.weibo.com/wiki/2/users/show
var response = openAuth.HttpGetAsync("users/show.json",
//可以傳入一個(gè)Dictionary類(lèi)型的對象,也可以直接傳入一個(gè)匿名類(lèi)。參數與官方api文檔中的參數相對應
new {
uid = openAuth.UID
});
response.ContinueWith(task =>{
//異步處理結果
});
  如果使用.net4.5,可以直接使用async和await關(guān)鍵字來(lái)簡(jiǎn)化上述操作。
  另外,由于新浪官方限制現在產(chǎn)生了登錄驗證碼,新版SDK不再提供之前版本的模擬登錄獲取授權(ClientLogin)。對于Winform和Console應用,可以參考NetDimension.OpenAuth.Winform類(lèi),該類(lèi)提供了擴展方法,可以在上述兩種項目類(lèi)型中彈出授權窗口,并在用戶(hù)授權后自動(dòng)獲取Authorization_Code。具體操作請參見(jiàn)Winform和Console示例代碼。
  using NetDimension.OpenAuth.Winform;
...
var form = openAuth.GetAuthenticationForm();
if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Console.WriteLine("用戶(hù)授權成功!");
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
//其他操作
//...
}
else
{
Console.WriteLine("用戶(hù)授權失??!");
}
  執行上述代碼時(shí),會(huì )彈出下圖所示的窗口。
  用戶(hù)登錄后,SDK 會(huì )使用正則表達式從回調地址中獲取 Authorization_Code。
  關(guān)于源代碼中的例子
  例子沒(méi)什么好說(shuō)的。源代碼中有三個(gè)示例。它們是一個(gè) MVC 網(wǎng)頁(yè)示例、兩個(gè)桌面控制臺和 WinForm 示例。
  示例中,明文寫(xiě)了一組APPKey以及對應的Secret和回調地址。如果你不改變它,這個(gè)例子應該可以正常工作。如果改成自己的Key出現錯誤,請自行谷歌設置回調地址。
  MVC 的示例設置稍微復雜一些。需要修改IIS Express的配置,使得網(wǎng)站可以通過(guò)127.0.0.1或192.16 8.0.100這樣的IP地址是可以訪(fǎng)問(wèn)的,否則在回調過(guò)程中無(wú)法訪(fǎng)問(wèn)。MVC示例的主頁(yè)上有修改教程。如果示例不起作用,請打開(kāi) Views\Home\Index.cshtml 查看是否已修改。
  Winform 示例運行截圖
  
  
  網(wǎng)站示例運行截圖
  
  還有一點(diǎn)需要注意的是,如果你使用的是VS2015,IIS Express配置文件applicationhost.config的地址不再是“Documents\IIS Express\”,而是在項目地址下的.vs目錄下,這是一個(gè)隱藏目錄, 直接在地址欄中輸入路徑即可訪(fǎng)問(wèn)。
  控制臺示例運行的屏幕截圖
  
  有調用騰訊微博的例子,但是騰訊的要求很?chē)栏?。申請app需要網(wǎng)站驗證,因為我用的是朋友的網(wǎng)站,所以請有需要的朋友或者自己注冊app(騰訊微博開(kāi)發(fā)者平臺的api文檔服務(wù)器是不是掛了?反正,我提不起來(lái)。)另外,在騰訊的例子中,有一種在微博上發(fā)圖片的方法,嚴格按照騰訊api文檔寫(xiě)的,但是不能正常使用。如果有朋友知道原因,請告訴我們。騰訊的例子只是為了說(shuō)明新版SDK可以通過(guò)繼承方便的擴展到微信開(kāi)放平臺、人人網(wǎng)等其他平臺。請了解如何使用它。
  示例代碼已收錄在源代碼中,具體請自行查閱代碼。
  以上是新版本的全部?jì)热荨?br />   正如開(kāi)頭所說(shuō),新浪微博覺(jué)得大勢已去,所以本次微博SDK不會(huì )更新新版本。本SDK第三版為最終版本,僅用于維護和BUG修正,不再添加或更新新內容。如果有繼續對新浪開(kāi)發(fā)平臺感興趣的朋友,請到GitHub上克隆代碼,根據需要擴展功能。
  最后感謝QQ群里的所有朋友這幾年的支持和鼓勵,謝謝。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(WeiboSDK新浪微博SDKv3源碼和示例(圖))
  WeiboSDK 新浪微博SDK v3 源代碼和示例前言
  時(shí)間過(guò)得真快,距離上次SDK更新已經(jīng)3年多了。隨著(zhù)正式版的不斷更新,老SDK的部分接口已經(jīng)不能正常使用了。于是,QQ群里抱怨辱罵的朋友開(kāi)始增多。隨著(zhù)時(shí)代的發(fā)展,微博已經(jīng)被微信徹底甩掉,失去了興趣;同時(shí),對于我自己來(lái)說(shuō),在這個(gè)行業(yè)里為了生存而生存幾年后,日子越來(lái)越不好過(guò),我沒(méi)有時(shí)間。然后和新浪官方同步更新SDK,所以自13年之后,V2版本的SDK就沒(méi)有再更新了。雖然微博的風(fēng)潮沒(méi)了,但還是有很多朋友通過(guò)新浪開(kāi)放平臺頁(yè)面下載了我發(fā)布的SDK??梢哉f(shuō),由于長(cháng)期不更新,老版本嚴重誤導了新朋友。這也是我開(kāi)發(fā)的。SDK 新版本的另一個(gè)重要原因。SDK第三版的一些說(shuō)明
  指示
  第一步是初始化客戶(hù)端
  如果用戶(hù)沒(méi)有被授權
  使用微博開(kāi)放平臺后臺提供的appkey、appsecret、callback_url初始化客戶(hù)端。
  ", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "");
  然后獲取授權頁(yè)面地址,訪(fǎng)問(wèn)授權地址,獲取Authorization_Code
  var url = openAuth.GetAuthorizationUrl();
  根據返回的Code兌換AccessToken
  openAuth.GetAccessTokenByCode("[CODE]");
if(openAuth.IsAuthorized)
{
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
}
  重要的?。?!獲取到AccessToken和UID后,請保存這兩個(gè)數據,以后的接口調用會(huì )直接使用這兩個(gè)參數,所以不需要每次都執行第一步和第二步。
  接下來(lái)就可以跳轉到第二步調用官方API了。
  當然,如果你之前已經(jīng)被授權并且已經(jīng)獲得了AccessToken和UID,那么使用下面的方法來(lái)初始化客戶(hù)端。
  ", "", "", "");"&gt;
  var openAuth = new SinaWeiboClient("", "", "", "");
  之后就可以直接跳轉到第二步調用API了。
  第二步調用接口
  這里提供了Get和Post兩個(gè)方法調用官方API,也提供了異步支持。使用時(shí)根據官方文檔的要求選擇是使用Get還是Post調用API(調用方法在官方文檔中有明確說(shuō)明)。
  調用接口傳遞參數有兩種方式。一個(gè)是傳入一個(gè)Dictionary類(lèi)型的參數組,一個(gè)是傳入一個(gè)名為new的匿名類(lèi)。我個(gè)人認為使用匿名類(lèi)是非??茖W(xué)的。
  例如調用API獲取當前登錄用戶(hù)的最新微博
  {{"count", 5},{"page", 1},{"base_app", 0}}); //這里可以使用字典或者匿名類(lèi)來(lái)傳遞參數,參數名,大小寫(xiě),參數順序和規范請參考官方api文檔 if (result.IsSuccessStatusCode){Console.WriteLine(result.Content.ReadAsStringAsync( ).結果);}"&gt;
  var result = openAuth.HttpGet("statuses/friends_timeline.json",
new Dictionary
{
{"count", 5},
{"page", 1},
{"base_app" , 0}
}); //這里可以使用字典或者匿名類(lèi)的方式傳遞參數,參數名稱(chēng)、大小寫(xiě)、參數順序和規范請參照官方api文檔
if (result.IsSuccessStatusCode)
{
Console.WriteLine(result.Content.ReadAsStringAsync().Result);
}
  另外,如果需要異步調用,請參考下面的例子。
  對象的類(lèi)型也可以直接傳入匿名類(lèi)。參數對應官方api文檔中的參數 new {uid = openAuth.UID});response.ContinueWith(task =&gt;{//asynchronous processing result});"&gt;
  // 調用獲取獲取用戶(hù)信息api
// 參考:http://open.weibo.com/wiki/2/users/show
var response = openAuth.HttpGetAsync("users/show.json",
//可以傳入一個(gè)Dictionary類(lèi)型的對象,也可以直接傳入一個(gè)匿名類(lèi)。參數與官方api文檔中的參數相對應
new {
uid = openAuth.UID
});
response.ContinueWith(task =>{
//異步處理結果
});
  如果使用.net4.5,可以直接使用async和await關(guān)鍵字來(lái)簡(jiǎn)化上述操作。
  另外,由于新浪官方限制現在產(chǎn)生了登錄驗證碼,新版SDK不再提供之前版本的模擬登錄獲取授權(ClientLogin)。對于Winform和Console應用,可以參考NetDimension.OpenAuth.Winform類(lèi),該類(lèi)提供了擴展方法,可以在上述兩種項目類(lèi)型中彈出授權窗口,并在用戶(hù)授權后自動(dòng)獲取Authorization_Code。具體操作請參見(jiàn)Winform和Console示例代碼。
  using NetDimension.OpenAuth.Winform;
...
var form = openAuth.GetAuthenticationForm();
if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Console.WriteLine("用戶(hù)授權成功!");
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
//其他操作
//...
}
else
{
Console.WriteLine("用戶(hù)授權失??!");
}
  執行上述代碼時(shí),會(huì )彈出下圖所示的窗口。
  用戶(hù)登錄后,SDK 會(huì )使用正則表達式從回調地址中獲取 Authorization_Code。
  關(guān)于源代碼中的例子
  例子沒(méi)什么好說(shuō)的。源代碼中有三個(gè)示例。它們是一個(gè) MVC 網(wǎng)頁(yè)示例、兩個(gè)桌面控制臺和 WinForm 示例。
  示例中,明文寫(xiě)了一組APPKey以及對應的Secret和回調地址。如果你不改變它,這個(gè)例子應該可以正常工作。如果改成自己的Key出現錯誤,請自行谷歌設置回調地址。
  MVC 的示例設置稍微復雜一些。需要修改IIS Express的配置,使得網(wǎng)站可以通過(guò)127.0.0.1或192.16 8.0.100這樣的IP地址是可以訪(fǎng)問(wèn)的,否則在回調過(guò)程中無(wú)法訪(fǎng)問(wèn)。MVC示例的主頁(yè)上有修改教程。如果示例不起作用,請打開(kāi) Views\Home\Index.cshtml 查看是否已修改。
  Winform 示例運行截圖
  
  
  網(wǎng)站示例運行截圖
  
  還有一點(diǎn)需要注意的是,如果你使用的是VS2015,IIS Express配置文件applicationhost.config的地址不再是“Documents\IIS Express\”,而是在項目地址下的.vs目錄下,這是一個(gè)隱藏目錄, 直接在地址欄中輸入路徑即可訪(fǎng)問(wèn)。
  控制臺示例運行的屏幕截圖
  
  有調用騰訊微博的例子,但是騰訊的要求很?chē)栏?。申請app需要網(wǎng)站驗證,因為我用的是朋友的網(wǎng)站,所以請有需要的朋友或者自己注冊app(騰訊微博開(kāi)發(fā)者平臺的api文檔服務(wù)器是不是掛了?反正,我提不起來(lái)。)另外,在騰訊的例子中,有一種在微博上發(fā)圖片的方法,嚴格按照騰訊api文檔寫(xiě)的,但是不能正常使用。如果有朋友知道原因,請告訴我們。騰訊的例子只是為了說(shuō)明新版SDK可以通過(guò)繼承方便的擴展到微信開(kāi)放平臺、人人網(wǎng)等其他平臺。請了解如何使用它。
  示例代碼已收錄在源代碼中,具體請自行查閱代碼。
  以上是新版本的全部?jì)热荨?br />   正如開(kāi)頭所說(shuō),新浪微博覺(jué)得大勢已去,所以本次微博SDK不會(huì )更新新版本。本SDK第三版為最終版本,僅用于維護和BUG修正,不再添加或更新新內容。如果有繼續對新浪開(kāi)發(fā)平臺感興趣的朋友,請到GitHub上克隆代碼,根據需要擴展功能。
  最后感謝QQ群里的所有朋友這幾年的支持和鼓勵,謝謝。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(直播服務(wù)器端安裝及下載地址:PPVOD頻道的輸入與輸出寫(xiě)法)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(直播服務(wù)器端安裝及下載地址:PPVOD頻道的輸入與輸出寫(xiě)法)
  應用場(chǎng)景:
  某幼兒園需要將教室的攝像頭監控畫(huà)面廣播到互聯(lián)網(wǎng)上,家長(cháng)可以通過(guò)網(wǎng)絡(luò )直播了解孩子在校情況。
  幼兒園安裝了某品牌的攝像頭,攝像頭的編碼為H264編碼,網(wǎng)絡(luò )攝像頭的訪(fǎng)問(wèn)地址為:rtsp://admin:[emailprotected]:554/h264/ch1/main/av_stream,其中可以通過(guò)VLC軟件查看地址的直播畫(huà)面。
  網(wǎng)絡(luò )和硬件構建如下:
  
  從上圖可以看出,一臺普通電腦和一套直播管理軟件就可以在幼兒園現場(chǎng)采集攝像機的RTSP地址,然后通過(guò)客戶(hù)端私有發(fā)送到網(wǎng)絡(luò )服務(wù)器的直播平臺。協(xié)議。一種觀(guān)看直播監控畫(huà)面的手機。
  
  客戶(hù)端通道的輸入輸出寫(xiě)入
  
  要使用私有協(xié)議,請在服務(wù)器端打開(kāi)端口 28002。輸入源寫(xiě)的是:client://client通道ID,寫(xiě)哪個(gè)通道字符串來(lái)接收哪個(gè)通道的流,輸出默認的HLS,并保存。
  由于普通攝像頭不具備rtmp碼流的功能,需要使用直播軟件將獲取到的RTSP碼流推送到網(wǎng)絡(luò )服務(wù)器。PPVOD直播軟件不僅具有各種協(xié)議轉換功能,還能通過(guò)私有協(xié)議將流從本地推送到網(wǎng)絡(luò )。服務(wù)器。PPVOD直播軟件的客戶(hù)端私有協(xié)議傳輸安全性高,頻道識別隨機性強,隱蔽性好,不能被外界破解。它是流媒體的最佳選擇。
  該方案成本低,無(wú)需特殊相機設置,應用范圍廣。目前,市場(chǎng)上90%以上的攝像機使用h264編碼,無(wú)需轉碼。如果攝像機的音頻不標準或者沒(méi)有音頻輸入,我們的直播平臺會(huì )做相應的處理,以滿(mǎn)足直播的需要。
  如果攝像機端基于公網(wǎng)靜態(tài)IP環(huán)境,服務(wù)器端可以直接獲取攝像機的網(wǎng)絡(luò )rtsp地址作為輸入源,可以跳過(guò)在攝像機網(wǎng)絡(luò )安裝直播系統的步驟。
  Live服務(wù)器端安裝下載地址:
  PPVOD視頻點(diǎn)播系統下載地址:
  PPVOD全能直播軟件下載地址: 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(直播服務(wù)器端安裝及下載地址:PPVOD頻道的輸入與輸出寫(xiě)法)
  應用場(chǎng)景:
  某幼兒園需要將教室的攝像頭監控畫(huà)面廣播到互聯(lián)網(wǎng)上,家長(cháng)可以通過(guò)網(wǎng)絡(luò )直播了解孩子在校情況。
  幼兒園安裝了某品牌的攝像頭,攝像頭的編碼為H264編碼,網(wǎng)絡(luò )攝像頭的訪(fǎng)問(wèn)地址為:rtsp://admin:[emailprotected]:554/h264/ch1/main/av_stream,其中可以通過(guò)VLC軟件查看地址的直播畫(huà)面。
  網(wǎng)絡(luò )和硬件構建如下:
  
  從上圖可以看出,一臺普通電腦和一套直播管理軟件就可以在幼兒園現場(chǎng)采集攝像機的RTSP地址,然后通過(guò)客戶(hù)端私有發(fā)送到網(wǎng)絡(luò )服務(wù)器的直播平臺。協(xié)議。一種觀(guān)看直播監控畫(huà)面的手機。
  
  客戶(hù)端通道的輸入輸出寫(xiě)入
  
  要使用私有協(xié)議,請在服務(wù)器端打開(kāi)端口 28002。輸入源寫(xiě)的是:client://client通道ID,寫(xiě)哪個(gè)通道字符串來(lái)接收哪個(gè)通道的流,輸出默認的HLS,并保存。
  由于普通攝像頭不具備rtmp碼流的功能,需要使用直播軟件將獲取到的RTSP碼流推送到網(wǎng)絡(luò )服務(wù)器。PPVOD直播軟件不僅具有各種協(xié)議轉換功能,還能通過(guò)私有協(xié)議將流從本地推送到網(wǎng)絡(luò )。服務(wù)器。PPVOD直播軟件的客戶(hù)端私有協(xié)議傳輸安全性高,頻道識別隨機性強,隱蔽性好,不能被外界破解。它是流媒體的最佳選擇。
  該方案成本低,無(wú)需特殊相機設置,應用范圍廣。目前,市場(chǎng)上90%以上的攝像機使用h264編碼,無(wú)需轉碼。如果攝像機的音頻不標準或者沒(méi)有音頻輸入,我們的直播平臺會(huì )做相應的處理,以滿(mǎn)足直播的需要。
  如果攝像機端基于公網(wǎng)靜態(tài)IP環(huán)境,服務(wù)器端可以直接獲取攝像機的網(wǎng)絡(luò )rtsp地址作為輸入源,可以跳過(guò)在攝像機網(wǎng)絡(luò )安裝直播系統的步驟。
  Live服務(wù)器端安裝下載地址:
  PPVOD視頻點(diǎn)播系統下載地址:
  PPVOD全能直播軟件下載地址:

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(歷時(shí)三天,新浪微博APP分享是未審核的應用了 )

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(歷時(shí)三天,新浪微博APP分享是未審核的應用了
)
  新浪微博開(kāi)放平臺申請已通過(guò)審核,歷時(shí)三天??磥?lái)這沒(méi)什么,還是寫(xiě)下來(lái)分享一下吧。下次共享不再是未經(jīng)審查的應用程序。這個(gè)新浪APP。. . . 申請的時(shí)候還以為不會(huì )通過(guò),因為我的域名沒(méi)有注冊。就像百度聯(lián)盟一樣,如果是真的就好了。新浪微博APP功能及性能:2.1個(gè)崩潰的應用程序將被拒絕;2.2個(gè)有錯誤的應用將被拒絕;2.3 不匹配開(kāi)發(fā)者的推廣應用將被拒絕;2.4 沒(méi)有申請文件或隱藏功能與描述不符的應用將被拒絕;2.5 使用非公開(kāi) API 的應用將被拒絕;2. 6 在指定容器外讀寫(xiě)數據的應用將被拒絕;2.7 以任何方式或形式下載代碼的應用將被拒絕;2.8 安裝或發(fā)布其他可執行代碼2.9 演示版、試用版和測試版的申請將被拒絕;2.10個(gè)與新浪微博開(kāi)放平臺現有申請重復的申請可能會(huì )被拒絕,尤其是數量大的時(shí)候;2.11個(gè)沒(méi)有明顯目的或提供任何持久娛樂(lè )價(jià)值的應用程序可能會(huì )被拒絕;2.12個(gè)主要內容為營(yíng)銷(xiāo)或廣告的應用程序將被拒絕;2.13個(gè)欺騙性或虛假功能,未明確標記的應用程序將被拒絕;2. 14 互聯(lián)網(wǎng)瀏覽應用必須使用新浪微博開(kāi)放平臺提供的網(wǎng)頁(yè)框架;2.15 提供 診斷錯誤或其他不準確數據的申請將被拒絕;2.16 將大量類(lèi)似版本應用上傳至新浪微博開(kāi)放平臺的開(kāi)發(fā)者將被移除開(kāi)發(fā)者項目;2.17個(gè)使用非法文件共享的應用將被拒絕;2.18個(gè)旨在用作非法賭博輔助工具(包括算牌)的應用程序將被拒絕;2. 19 具有匿名或惡作劇功能或發(fā)送類(lèi)似短信/彩信功能的應用程序將被拒絕;2.20名開(kāi)發(fā)者開(kāi)發(fā)秘密采集用戶(hù)密碼或用戶(hù)隱私數據的應用程序將從新浪微博開(kāi)放平臺下架;2. 21 應用程序中不允許彈出窗口;2.22 申請內容訪(fǎng)問(wèn)速度過(guò)慢,內容響應速度平均超過(guò)6秒,會(huì )被拒絕。最后,上圖:
  
  
  
   查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(歷時(shí)三天,新浪微博APP分享是未審核的應用了
)
  新浪微博開(kāi)放平臺申請已通過(guò)審核,歷時(shí)三天??磥?lái)這沒(méi)什么,還是寫(xiě)下來(lái)分享一下吧。下次共享不再是未經(jīng)審查的應用程序。這個(gè)新浪APP。. . . 申請的時(shí)候還以為不會(huì )通過(guò),因為我的域名沒(méi)有注冊。就像百度聯(lián)盟一樣,如果是真的就好了。新浪微博APP功能及性能:2.1個(gè)崩潰的應用程序將被拒絕;2.2個(gè)有錯誤的應用將被拒絕;2.3 不匹配開(kāi)發(fā)者的推廣應用將被拒絕;2.4 沒(méi)有申請文件或隱藏功能與描述不符的應用將被拒絕;2.5 使用非公開(kāi) API 的應用將被拒絕;2. 6 在指定容器外讀寫(xiě)數據的應用將被拒絕;2.7 以任何方式或形式下載代碼的應用將被拒絕;2.8 安裝或發(fā)布其他可執行代碼2.9 演示版、試用版和測試版的申請將被拒絕;2.10個(gè)與新浪微博開(kāi)放平臺現有申請重復的申請可能會(huì )被拒絕,尤其是數量大的時(shí)候;2.11個(gè)沒(méi)有明顯目的或提供任何持久娛樂(lè )價(jià)值的應用程序可能會(huì )被拒絕;2.12個(gè)主要內容為營(yíng)銷(xiāo)或廣告的應用程序將被拒絕;2.13個(gè)欺騙性或虛假功能,未明確標記的應用程序將被拒絕;2. 14 互聯(lián)網(wǎng)瀏覽應用必須使用新浪微博開(kāi)放平臺提供的網(wǎng)頁(yè)框架;2.15 提供 診斷錯誤或其他不準確數據的申請將被拒絕;2.16 將大量類(lèi)似版本應用上傳至新浪微博開(kāi)放平臺的開(kāi)發(fā)者將被移除開(kāi)發(fā)者項目;2.17個(gè)使用非法文件共享的應用將被拒絕;2.18個(gè)旨在用作非法賭博輔助工具(包括算牌)的應用程序將被拒絕;2. 19 具有匿名或惡作劇功能或發(fā)送類(lèi)似短信/彩信功能的應用程序將被拒絕;2.20名開(kāi)發(fā)者開(kāi)發(fā)秘密采集用戶(hù)密碼或用戶(hù)隱私數據的應用程序將從新浪微博開(kāi)放平臺下架;2. 21 應用程序中不允許彈出窗口;2.22 申請內容訪(fǎng)問(wèn)速度過(guò)慢,內容響應速度平均超過(guò)6秒,會(huì )被拒絕。最后,上圖:
  
  
  
  

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(獲得新浪微博AccessToken的步驟是怎樣的?(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(獲得新浪微博AccessToken的步驟是怎樣的?(圖))
  獲得新浪微博AccessToken的步驟是這樣的
  參考:%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
  
  1.首先讓用戶(hù)授權你的APP獲取代碼
  例如:點(diǎn)擊下方鏈接授權后,在url上會(huì )得到一個(gè)code參數
  ://
  2.將此代碼發(fā)送到服務(wù)器接口。服務(wù)端收到代碼后,執行下載文件中的代碼返回AccessToken(或直接從服務(wù)端獲取Token,執行微博API的各種操作)
  代碼示例:
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weibo.com/oauth2/access_token");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;";
request.Headers.Add(string.Format("Authorization: key={0}", "123456"));
string postData = "client_id=123456";
postData += ("&client_secret=123456");
postData += ("&grant_type=authorization_code");
postData += ("&redirect_uri=http://www.cfxixi.com");
postData += ("&code=123456");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//發(fā)出Request
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseStr = reader.ReadToEnd();
reader.Close();
responseStream.Close();
response.Close();
  Demo下載可以到我的Q群分享下載250395324 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(獲得新浪微博AccessToken的步驟是怎樣的?(圖))
  獲得新浪微博AccessToken的步驟是這樣的
  參考:%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
  
  1.首先讓用戶(hù)授權你的APP獲取代碼
  例如:點(diǎn)擊下方鏈接授權后,在url上會(huì )得到一個(gè)code參數
  ://
  2.將此代碼發(fā)送到服務(wù)器接口。服務(wù)端收到代碼后,執行下載文件中的代碼返回AccessToken(或直接從服務(wù)端獲取Token,執行微博API的各種操作)
  代碼示例:
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weibo.com/oauth2/access_token";);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;";
request.Headers.Add(string.Format("Authorization: key={0}", "123456"));
string postData = "client_id=123456";
postData += ("&client_secret=123456");
postData += ("&grant_type=authorization_code");
postData += ("&redirect_uri=http://www.cfxixi.com";);
postData += ("&code=123456");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//發(fā)出Request
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseStr = reader.ReadToEnd();
reader.Close();
responseStream.Close();
response.Close();
  Demo下載可以到我的Q群分享下載250395324

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺文章同步到新浪微博的幾種方法(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺文章同步到新浪微博的幾種方法(圖))
  .
  WordPress文章同步新浪微博的幾種方式
  相信現在很多網(wǎng)友都用過(guò)微博了,微博也挺火的!在使用WordPress的博主中,使用微博的人數可能更多,因為博客圈里有一種觀(guān)點(diǎn):微博是一個(gè)很好的推廣平臺。新浪微博是比較流行的一種。也許你聽(tīng)說(shuō)過(guò)如何將WordPress 文章 同步發(fā)布到新浪微博,但我在這里不得不啰嗦一下。它可能與您之前看到的有所不同。. 插件的方法我就不介紹了,大家需要上網(wǎng)搜一下。
  方法一:關(guān)聯(lián)博客。方法一其實(shí)很簡(jiǎn)單。您可以直接使用新浪微博的關(guān)聯(lián)博客功能。使用方法:點(diǎn)擊新浪微博右上角的“工具”菜單,然后點(diǎn)擊“關(guān)聯(lián)博客”填寫(xiě)你的博客鏈接!這樣,你的博客每更新一次文章,就會(huì )同時(shí)發(fā)送一條格式如下的微博到新浪微博:文章Title + 文章 URL 方式二:微博開(kāi)放平臺界面
  方法一只能以文章標題+文章 URL的形式同步到新浪微博,微博內容無(wú)法自定義。使用新浪微博的開(kāi)放平臺界面可以大大增加自由度,但是需要寫(xiě)一些代碼,其實(shí)很簡(jiǎn)單,復制粘貼代碼即可。打開(kāi)你的當前
  使用主題目錄下的functions.php,復制以下代碼到第一個(gè) 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺文章同步到新浪微博的幾種方法(圖))
  .
  WordPress文章同步新浪微博的幾種方式
  相信現在很多網(wǎng)友都用過(guò)微博了,微博也挺火的!在使用WordPress的博主中,使用微博的人數可能更多,因為博客圈里有一種觀(guān)點(diǎn):微博是一個(gè)很好的推廣平臺。新浪微博是比較流行的一種。也許你聽(tīng)說(shuō)過(guò)如何將WordPress 文章 同步發(fā)布到新浪微博,但我在這里不得不啰嗦一下。它可能與您之前看到的有所不同。. 插件的方法我就不介紹了,大家需要上網(wǎng)搜一下。
  方法一:關(guān)聯(lián)博客。方法一其實(shí)很簡(jiǎn)單。您可以直接使用新浪微博的關(guān)聯(lián)博客功能。使用方法:點(diǎn)擊新浪微博右上角的“工具”菜單,然后點(diǎn)擊“關(guān)聯(lián)博客”填寫(xiě)你的博客鏈接!這樣,你的博客每更新一次文章,就會(huì )同時(shí)發(fā)送一條格式如下的微博到新浪微博:文章Title + 文章 URL 方式二:微博開(kāi)放平臺界面
  方法一只能以文章標題+文章 URL的形式同步到新浪微博,微博內容無(wú)法自定義。使用新浪微博的開(kāi)放平臺界面可以大大增加自由度,但是需要寫(xiě)一些代碼,其實(shí)很簡(jiǎn)單,復制粘貼代碼即可。打開(kāi)你的當前
  使用主題目錄下的functions.php,復制以下代碼到第一個(gè)

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博:山寨版的twitter,各種粉絲的登錄邏輯)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博:山寨版的twitter,各種粉絲的登錄邏輯)
  新浪微博:盜版推特,各種粉絲的集散地,天朝國人的最?lèi)?ài),基本上所有網(wǎng)友都有微博賬號,所以使用新浪微博賬號進(jìn)行三向登錄就顯得尤為重要改善用戶(hù)登錄體驗。這次我用Python3+Tornado5集成了微博登錄,記錄一下,還是有很多坑。
  首先注冊微博開(kāi)放平臺:
  選擇微鏈接-》網(wǎng)站訪(fǎng)問(wèn)=&gt;立即訪(fǎng)問(wèn)創(chuàng )建新應用
  
  應用創(chuàng )建成功后,會(huì )立即跳轉到審核頁(yè)面。您需要填寫(xiě)一些資格進(jìn)行審核。其實(shí)這些review的領(lǐng)域是不需要打理的,申請完全不需要通過(guò)review
  
  直接拿到appkey和appsecret,然后馬上點(diǎn)擊高級信息填寫(xiě)回調URL
  
  需要注意的是,回調授權和取消回調授權地址需要一致
  那么新浪微博的登錄邏輯就很簡(jiǎn)單了:拼接url=&gt;回調獲取code=&gt;uid和access_token交換code=&gt;使用access_token獲取用戶(hù)信息
  首先第一步是拼接url,這里我們使用Tornado來(lái)編寫(xiě)控制器
  #新浪微博登錄地址組合返回(第一步)
class SinaFirstHandler(BaseHandler):
def get(self,*args,**kwargs):
#微博接口地址
weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
#回調網(wǎng)址
redirect_url = "http://127.0.0.1:8000/md_admin/weibo"
#應用id
client_id = "2636039333"
#組合url
auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
re_url=redirect_url)
self.write(auth_url)
  第二步,回調獲取code,交換access_token和uid
  #新浪微博回調地址(第二步)
class SinaBackHandler(BaseHandler):
def get(self,*args,**kwargs):
#獲取回調的code
code = self.get_argument('code')
#微博認證地址
access_token_url = "https://api.weibo.com/oauth2/access_token"
#參數 向新浪接口發(fā)送請求
re_dict = requests.post(access_token_url,data={
"client_id": '2636039333',
"client_secret": "4e2fbdb39432c31dc5c2f90be3afa5ce",
"grant_type": "authorization_code",
"code": code,
"redirect_uri": "http://127.0.0.1:8000/md_admin/weibo",
})
re_dict = re_dict.text
re_dict = eval(re_dict)
print(re_dict.get('uid'))
self.write(re_dict)
  接下來(lái)的情況就有點(diǎn)亂了,因為新浪規定,如果申請沒(méi)有通過(guò)審核,那么部分新浪接口是沒(méi)有權限請求的??梢哉f(shuō),你手上只有access_token和uid,其他的也改不了。我該怎么辦,沒(méi)有人會(huì )免費拿到營(yíng)業(yè)執照來(lái)測試接口,但是有一個(gè)曲線(xiàn)救國,就是在測試信息頁(yè)面上添加一個(gè)測試帳戶(hù)。添加測試賬號后,就可以請求相應的接口了。
  
  最后使用你手上的access_token和uid獲取當前用戶(hù)的用戶(hù)名
  result = requests.get('https://api.weibo.com/2/users/show.json',params={'access_token':res['access_token'],'uid':res['uid']})
result = json.loads(result.text)
print(result['name'])
  可以看到接口請求成功
  
  完成它。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博:山寨版的twitter,各種粉絲的登錄邏輯)
  新浪微博:盜版推特,各種粉絲的集散地,天朝國人的最?lèi)?ài),基本上所有網(wǎng)友都有微博賬號,所以使用新浪微博賬號進(jìn)行三向登錄就顯得尤為重要改善用戶(hù)登錄體驗。這次我用Python3+Tornado5集成了微博登錄,記錄一下,還是有很多坑。
  首先注冊微博開(kāi)放平臺:
  選擇微鏈接-》網(wǎng)站訪(fǎng)問(wèn)=&gt;立即訪(fǎng)問(wèn)創(chuàng )建新應用
  
  應用創(chuàng )建成功后,會(huì )立即跳轉到審核頁(yè)面。您需要填寫(xiě)一些資格進(jìn)行審核。其實(shí)這些review的領(lǐng)域是不需要打理的,申請完全不需要通過(guò)review
  
  直接拿到appkey和appsecret,然后馬上點(diǎn)擊高級信息填寫(xiě)回調URL
  
  需要注意的是,回調授權和取消回調授權地址需要一致
  那么新浪微博的登錄邏輯就很簡(jiǎn)單了:拼接url=&gt;回調獲取code=&gt;uid和access_token交換code=&gt;使用access_token獲取用戶(hù)信息
  首先第一步是拼接url,這里我們使用Tornado來(lái)編寫(xiě)控制器
  #新浪微博登錄地址組合返回(第一步)
class SinaFirstHandler(BaseHandler):
def get(self,*args,**kwargs):
#微博接口地址
weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
#回調網(wǎng)址
redirect_url = "http://127.0.0.1:8000/md_admin/weibo"
#應用id
client_id = "2636039333"
#組合url
auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
re_url=redirect_url)
self.write(auth_url)
  第二步,回調獲取code,交換access_token和uid
  #新浪微博回調地址(第二步)
class SinaBackHandler(BaseHandler):
def get(self,*args,**kwargs):
#獲取回調的code
code = self.get_argument('code')
#微博認證地址
access_token_url = "https://api.weibo.com/oauth2/access_token"
#參數 向新浪接口發(fā)送請求
re_dict = requests.post(access_token_url,data={
"client_id": '2636039333',
"client_secret": "4e2fbdb39432c31dc5c2f90be3afa5ce",
"grant_type": "authorization_code",
"code": code,
"redirect_uri": "http://127.0.0.1:8000/md_admin/weibo",
})
re_dict = re_dict.text
re_dict = eval(re_dict)
print(re_dict.get('uid'))
self.write(re_dict)
  接下來(lái)的情況就有點(diǎn)亂了,因為新浪規定,如果申請沒(méi)有通過(guò)審核,那么部分新浪接口是沒(méi)有權限請求的??梢哉f(shuō),你手上只有access_token和uid,其他的也改不了。我該怎么辦,沒(méi)有人會(huì )免費拿到營(yíng)業(yè)執照來(lái)測試接口,但是有一個(gè)曲線(xiàn)救國,就是在測試信息頁(yè)面上添加一個(gè)測試帳戶(hù)。添加測試賬號后,就可以請求相應的接口了。
  
  最后使用你手上的access_token和uid獲取當前用戶(hù)的用戶(hù)名
  result = requests.get('https://api.weibo.com/2/users/show.json',params={'access_token':res['access_token'],'uid':res['uid']})
result = json.loads(result.text)
print(result['name'])
  可以看到接口請求成功
  
  完成它。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(我要開(kāi)發(fā)一個(gè)基于sina微博開(kāi)放平臺的應用(App)(組圖))

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

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

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

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議如何開(kāi)發(fā)微博應用?(圖))

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議如何開(kāi)發(fā)微博應用?(圖))
  騰訊微博開(kāi)放平臺API現已開(kāi)放。使用騰訊微博開(kāi)放平臺提供的API創(chuàng )建自己的應用程序,您必須先填寫(xiě)個(gè)人信息,聯(lián)系郵箱驗證,取得開(kāi)發(fā)者資質(zhì),才能創(chuàng )建自己的應用程序。騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧將創(chuàng )造無(wú)窮無(wú)盡的應用和樂(lè )趣。
  平臺說(shuō)明:
  騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧,創(chuàng )造無(wú)窮的應用和樂(lè )趣!
  平臺介紹——微博開(kāi)放平臺可以獲得的資源和優(yōu)勢
  應用程序開(kāi)發(fā)說(shuō)明-講解如何成為開(kāi)發(fā)人員并創(chuàng )建應用程序
  申請審核流程——審核申請源字段的好處,以及如何審核
  開(kāi)發(fā)者協(xié)議——在此查看騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議
  如何開(kāi)發(fā)微博應用?(立即成為開(kāi)發(fā)人員)
  您只需要按照以下步驟操作:
  第一步:填寫(xiě)您的開(kāi)發(fā)者信息;
  第二步:驗證聯(lián)系郵箱;(電子郵件將作為我們與您聯(lián)系的重要方式,請提供常用的電子郵件地址)
  第三步:填寫(xiě)要創(chuàng )建的應用信息。
  您可以立即獲取微博App Key和App Secret,調用微博API,開(kāi)始應用開(kāi)發(fā)。查看詳細說(shuō)明
  ----
  代表中國最先進(jìn)互聯(lián)網(wǎng)技術(shù)的騰訊終于邁出了開(kāi)放的第一步:-) 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議如何開(kāi)發(fā)微博應用?(圖))
  騰訊微博開(kāi)放平臺API現已開(kāi)放。使用騰訊微博開(kāi)放平臺提供的API創(chuàng )建自己的應用程序,您必須先填寫(xiě)個(gè)人信息,聯(lián)系郵箱驗證,取得開(kāi)發(fā)者資質(zhì),才能創(chuàng )建自己的應用程序。騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧將創(chuàng )造無(wú)窮無(wú)盡的應用和樂(lè )趣。
  平臺說(shuō)明:
  騰訊微博開(kāi)放平臺是基于騰訊微博系統面向開(kāi)發(fā)者和用戶(hù)開(kāi)放的數據共享和傳播平臺。開(kāi)發(fā)者和用戶(hù)登錄平臺后,可以使用平臺提供的開(kāi)放API接口創(chuàng )建應用程序,從微博系統獲取信息,或將新信息傳播到整個(gè)微博系統??梢蕴砑痈鞣N API 接口和應用程序。發(fā)揮你的智慧,創(chuàng )造無(wú)窮的應用和樂(lè )趣!
  平臺介紹——微博開(kāi)放平臺可以獲得的資源和優(yōu)勢
  應用程序開(kāi)發(fā)說(shuō)明-講解如何成為開(kāi)發(fā)人員并創(chuàng )建應用程序
  申請審核流程——審核申請源字段的好處,以及如何審核
  開(kāi)發(fā)者協(xié)議——在此查看騰訊微博開(kāi)放平臺開(kāi)發(fā)者服務(wù)協(xié)議
  如何開(kāi)發(fā)微博應用?(立即成為開(kāi)發(fā)人員)
  您只需要按照以下步驟操作:
  第一步:填寫(xiě)您的開(kāi)發(fā)者信息;
  第二步:驗證聯(lián)系郵箱;(電子郵件將作為我們與您聯(lián)系的重要方式,請提供常用的電子郵件地址)
  第三步:填寫(xiě)要創(chuàng )建的應用信息。
  您可以立即獲取微博App Key和App Secret,調用微博API,開(kāi)始應用開(kāi)發(fā)。查看詳細說(shuō)明
  ----
  代表中國最先進(jìn)互聯(lián)網(wǎng)技術(shù)的騰訊終于邁出了開(kāi)放的第一步:-)

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有些特殊的emoji表情符會(huì )被「同步圈」識別錯誤!)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有些特殊的emoji表情符會(huì )被「同步圈」識別錯誤!)
  在微信公眾號和朋友圈瘋狂擠壓個(gè)人時(shí)間的當下,很多人的微博賬號逐漸被拋棄,而這個(gè)工具可以幫你自動(dòng)同步任何朋友圈圖文內容到你的微博。
  這個(gè)可以為你省去很多麻煩的小工具叫做“同步圈”。顧名思義,就是把你的“朋友圈”“同步”到微博上。
  
  為了一勞永逸地享受自動(dòng)同步的便利,您需要提前在PC瀏覽器中使用您的個(gè)人微博賬號登錄同步推文。網(wǎng)址在這里。獲得登錄授權后,網(wǎng)頁(yè)上會(huì )顯示二維碼。用微信掃一掃后,添加一個(gè)名為“同步圈”的個(gè)人微信賬號,很快就會(huì )通過(guò)驗證。
  接下來(lái),您需要將二維碼下方的四位驗證碼發(fā)送到“同步圈”賬號,系統會(huì )提示您綁定成功!
  經(jīng)測試,“同步圈”目前支持純文本、文本+表情、文本+圖片的自動(dòng)同步。您在朋友圈發(fā)布的小視頻和地理位置無(wú)法同步到您的個(gè)人微博。經(jīng)過(guò)實(shí)測,我也發(fā)現一些特殊的表情符號會(huì )被“同步圈”誤識別,可能會(huì )造成一些歧義或誤解。這可能是微信朋友圈和微博支持的表情符號不一致造成的。
  從原理上看,“同步圈”調用了微信朋友圈側的一些內容識別接口,可以自動(dòng)抓取綁定用戶(hù)的朋友圈內容,然后利用微博開(kāi)放平臺的API接口發(fā)送同樣的內容內容出去。抽象地說(shuō),“同步圈”與著(zhù)名的自動(dòng)化服務(wù)IFTTT非常相似。只是它在微信封閉的城墻上開(kāi)設了一個(gè)單向信息站,幫助用戶(hù)將內容輸出到更廣闊的公共網(wǎng)絡(luò )空間。
  遺憾的是,根據pc6編輯對騰訊和微信團隊的了解,這個(gè)同步圈的“小聰明”可能很快就會(huì )失敗。
  安卓版
  
  新浪微博類(lèi)型:社交聊天 大?。?9.9M 版本:v5.6.0 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(有些特殊的emoji表情符會(huì )被「同步圈」識別錯誤!)
  在微信公眾號和朋友圈瘋狂擠壓個(gè)人時(shí)間的當下,很多人的微博賬號逐漸被拋棄,而這個(gè)工具可以幫你自動(dòng)同步任何朋友圈圖文內容到你的微博。
  這個(gè)可以為你省去很多麻煩的小工具叫做“同步圈”。顧名思義,就是把你的“朋友圈”“同步”到微博上。
  
  為了一勞永逸地享受自動(dòng)同步的便利,您需要提前在PC瀏覽器中使用您的個(gè)人微博賬號登錄同步推文。網(wǎng)址在這里。獲得登錄授權后,網(wǎng)頁(yè)上會(huì )顯示二維碼。用微信掃一掃后,添加一個(gè)名為“同步圈”的個(gè)人微信賬號,很快就會(huì )通過(guò)驗證。
  接下來(lái),您需要將二維碼下方的四位驗證碼發(fā)送到“同步圈”賬號,系統會(huì )提示您綁定成功!
  經(jīng)測試,“同步圈”目前支持純文本、文本+表情、文本+圖片的自動(dòng)同步。您在朋友圈發(fā)布的小視頻和地理位置無(wú)法同步到您的個(gè)人微博。經(jīng)過(guò)實(shí)測,我也發(fā)現一些特殊的表情符號會(huì )被“同步圈”誤識別,可能會(huì )造成一些歧義或誤解。這可能是微信朋友圈和微博支持的表情符號不一致造成的。
  從原理上看,“同步圈”調用了微信朋友圈側的一些內容識別接口,可以自動(dòng)抓取綁定用戶(hù)的朋友圈內容,然后利用微博開(kāi)放平臺的API接口發(fā)送同樣的內容內容出去。抽象地說(shuō),“同步圈”與著(zhù)名的自動(dòng)化服務(wù)IFTTT非常相似。只是它在微信封閉的城墻上開(kāi)設了一個(gè)單向信息站,幫助用戶(hù)將內容輸出到更廣闊的公共網(wǎng)絡(luò )空間。
  遺憾的是,根據pc6編輯對騰訊和微信團隊的了解,這個(gè)同步圈的“小聰明”可能很快就會(huì )失敗。
  安卓版
  
  新浪微博類(lèi)型:社交聊天 大?。?9.9M 版本:v5.6.0

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

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(鄭敏先任職于)
  作者簡(jiǎn)介:鄭敏賢,曾任職,售前工程師。從事SDN、白盒交換機等開(kāi)放網(wǎng)絡(luò )產(chǎn)品的推廣。
  
  成立于 2005 年。該公司提供了一個(gè)開(kāi)源網(wǎng)絡(luò )操作系統,也稱(chēng)為 Vyatta,可以在商用硬件上運行。Vyatta 的名字取自梵文中的“open”,發(fā)音為“vee-at-ah”。2006年,推出Vyatta商業(yè)訂閱版,每年定價(jià)500美元。
  
  隨著(zhù)云計算的發(fā)展,Vyatta得到了眾多公有云廠(chǎng)商的支持。例如,AWS Marketplace 中的第一個(gè)虛擬路由器應用程序是 Vyatta:
  
  2012年11月博科收購Vyatta后,開(kāi)源社區版被取消,軟件更名為Vyatta vRouter。但 Vyatta 的開(kāi)源之路并沒(méi)有結束。為了響應博科停止 Vyatta 社區版的決定,獨立開(kāi)發(fā)人員從 Vyatta Core 6.6 R1 版本(VyOS 開(kāi)源軟件項目)中分出一個(gè)分支。
  從 Vyatta 到 dNOS
  Vyatta 于 2017 年 7 月被 AT&amp;T 收購。 Vyatta NOS 構成了 AT&amp;T 開(kāi)源 dNOS(分解網(wǎng)絡(luò )操作系統)平臺的基礎。
  dNOS 由硬件和軟件組件組成:
  AT&amp;T 在這些場(chǎng)景中使用 dNOS 軟件:
  
  dNOS功能及組件圖
  簡(jiǎn)單分析一下上圖中的三個(gè)層次:
  1、應用程序是路由器上控制平面或管理平面組件的任何網(wǎng)絡(luò )功能。
  2、共享基礎設施和數據。NOS 必須能夠使用通用方法和協(xié)議在來(lái)自不同供應商的應用程序之間共享數據。dNOS 的一個(gè)關(guān)鍵目標是創(chuàng )建一個(gè)促進(jìn)應用程序之間共享的開(kāi)放環(huán)境。為此,dNOS 包括通用基礎設施組件和共享數據結構。
  基本網(wǎng)絡(luò )狀態(tài)信息存儲在一組通用共享數據結構中。這些數據結構包括有關(guān)接口狀態(tài)、鄰居解析表和轉發(fā)信息庫 (FIB) 狀態(tài)的信息。應用程序使用通用方法更新相關(guān)的基本網(wǎng)絡(luò )狀態(tài)共享數據。
  所有共享基礎設施數據都由使用合適的標準數據結構和/或數據建模語(yǔ)言(例如,YANG)表達的標準化數據模型定義。數據共享基礎設施和基礎網(wǎng)絡(luò )狀態(tài)共享數據結構實(shí)現了不同協(xié)議之間公共數據的共享(例如,經(jīng)典IGP可訪(fǎng)問(wèn)的鏈路狀態(tài)數據,如用于SDN控制應用的OSPF和ISIS和BGP-LS),以及優(yōu)雅的協(xié)議選擇的演變(例如,使用 gRPC 而不是 SNMP 來(lái)采集 OAM 數據)。
  用戶(hù)、業(yè)務(wù)流程和數據導出接口提供了一個(gè)通用的基礎設施,用于將應用程序和系統基礎設施連接到外部系統以進(jìn)行管理和分析。ONAP管控系統北向接口包括NetConf/YANG和gRPC,支持流式和(傳統)輪詢(xún)機制進(jìn)行遙測數據采集。
  3、dNOS 包括一組支持多個(gè)不同轉發(fā)層的組件。轉發(fā)抽象層 (FAL) 負責從共享基礎設施和數據組件獲取高級網(wǎng)絡(luò )狀態(tài)輸入,并將它們轉換為供應商特定的 API,用于各種軟件和硬件轉發(fā)選項:
  FAL 的目標是讓 ASIC 供應商多樣化,多個(gè) ASIC 共享一個(gè)與目標無(wú)關(guān)的公共抽象層。FAL 的長(cháng)期目標是收錄支持完全可編程硬件管道的抽象。這種抽象將基于正式的網(wǎng)絡(luò )編程語(yǔ)言,例如 P4 或其他類(lèi)似的行業(yè)認可的標準化語(yǔ)言。
  從 dNOS 到 DANOS
  AT&amp;T 于 2018 年初向 Linux 基金會(huì )貢獻了 dNOS 作為種子代碼,Linux 基金會(huì )據此建立了 DANOS 項目。DANOS(Dis-Aggregated Network Operating System)將提供一個(gè)開(kāi)放的 NOS 框架,使用現有的開(kāi)源資源和硬件平臺,如白盒交換機、白盒路由器和 uCPE。Vyatta第四代架構引入了商用芯片+軟件轉發(fā)的混合轉發(fā)模式。采用Vyatta第四代架構的DANOS預計將于2019年第一季度正式發(fā)布。
  
  DANOS專(zhuān)注于硬件/軟件分解,超越云數據中心網(wǎng)絡(luò )功能,創(chuàng )建和培育路由軟件組件供應商生態(tài)系統,提供創(chuàng )新的網(wǎng)絡(luò )解決方案,滿(mǎn)足城域網(wǎng)/廣域網(wǎng)(包括蜂窩網(wǎng)絡(luò ))規?;?、快速發(fā)展的功能需求。站點(diǎn)路由器、城域以太網(wǎng)服務(wù)和 RAN 回程路由器/交換機、互聯(lián)網(wǎng)和 VPN 服務(wù)邊緣路由器、運營(yíng)商間 POP 互連結構、骨干核心路由器等)。DANOS 目前計劃支持這五個(gè)操作系統:dNOS、FRR、SONiC、OpenSwitch 和 Stratum。
  DANOS的三大特點(diǎn):
  
  DANOS/dNOS詳細架構圖(顏色對應之前的“dNOS功能和組件圖”)
  對比上圖,我粗略介紹一下DANOS的控制和管理平面、基礎操作系統和數據平面:
  控制和管理平面:基本操作系統:數據平面:參考:
  1、%20whitepaper.pdf
  2、
  3、 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(鄭敏先任職于)
  作者簡(jiǎn)介:鄭敏賢,曾任職,售前工程師。從事SDN、白盒交換機等開(kāi)放網(wǎng)絡(luò )產(chǎn)品的推廣。
  
  成立于 2005 年。該公司提供了一個(gè)開(kāi)源網(wǎng)絡(luò )操作系統,也稱(chēng)為 Vyatta,可以在商用硬件上運行。Vyatta 的名字取自梵文中的“open”,發(fā)音為“vee-at-ah”。2006年,推出Vyatta商業(yè)訂閱版,每年定價(jià)500美元。
  
  隨著(zhù)云計算的發(fā)展,Vyatta得到了眾多公有云廠(chǎng)商的支持。例如,AWS Marketplace 中的第一個(gè)虛擬路由器應用程序是 Vyatta:
  
  2012年11月博科收購Vyatta后,開(kāi)源社區版被取消,軟件更名為Vyatta vRouter。但 Vyatta 的開(kāi)源之路并沒(méi)有結束。為了響應博科停止 Vyatta 社區版的決定,獨立開(kāi)發(fā)人員從 Vyatta Core 6.6 R1 版本(VyOS 開(kāi)源軟件項目)中分出一個(gè)分支。
  從 Vyatta 到 dNOS
  Vyatta 于 2017 年 7 月被 AT&amp;T 收購。 Vyatta NOS 構成了 AT&amp;T 開(kāi)源 dNOS(分解網(wǎng)絡(luò )操作系統)平臺的基礎。
  dNOS 由硬件和軟件組件組成:
  AT&amp;T 在這些場(chǎng)景中使用 dNOS 軟件:
  
  dNOS功能及組件圖
  簡(jiǎn)單分析一下上圖中的三個(gè)層次:
  1、應用程序是路由器上控制平面或管理平面組件的任何網(wǎng)絡(luò )功能。
  2、共享基礎設施和數據。NOS 必須能夠使用通用方法和協(xié)議在來(lái)自不同供應商的應用程序之間共享數據。dNOS 的一個(gè)關(guān)鍵目標是創(chuàng )建一個(gè)促進(jìn)應用程序之間共享的開(kāi)放環(huán)境。為此,dNOS 包括通用基礎設施組件和共享數據結構。
  基本網(wǎng)絡(luò )狀態(tài)信息存儲在一組通用共享數據結構中。這些數據結構包括有關(guān)接口狀態(tài)、鄰居解析表和轉發(fā)信息庫 (FIB) 狀態(tài)的信息。應用程序使用通用方法更新相關(guān)的基本網(wǎng)絡(luò )狀態(tài)共享數據。
  所有共享基礎設施數據都由使用合適的標準數據結構和/或數據建模語(yǔ)言(例如,YANG)表達的標準化數據模型定義。數據共享基礎設施和基礎網(wǎng)絡(luò )狀態(tài)共享數據結構實(shí)現了不同協(xié)議之間公共數據的共享(例如,經(jīng)典IGP可訪(fǎng)問(wèn)的鏈路狀態(tài)數據,如用于SDN控制應用的OSPF和ISIS和BGP-LS),以及優(yōu)雅的協(xié)議選擇的演變(例如,使用 gRPC 而不是 SNMP 來(lái)采集 OAM 數據)。
  用戶(hù)、業(yè)務(wù)流程和數據導出接口提供了一個(gè)通用的基礎設施,用于將應用程序和系統基礎設施連接到外部系統以進(jìn)行管理和分析。ONAP管控系統北向接口包括NetConf/YANG和gRPC,支持流式和(傳統)輪詢(xún)機制進(jìn)行遙測數據采集。
  3、dNOS 包括一組支持多個(gè)不同轉發(fā)層的組件。轉發(fā)抽象層 (FAL) 負責從共享基礎設施和數據組件獲取高級網(wǎng)絡(luò )狀態(tài)輸入,并將它們轉換為供應商特定的 API,用于各種軟件和硬件轉發(fā)選項:
  FAL 的目標是讓 ASIC 供應商多樣化,多個(gè) ASIC 共享一個(gè)與目標無(wú)關(guān)的公共抽象層。FAL 的長(cháng)期目標是收錄支持完全可編程硬件管道的抽象。這種抽象將基于正式的網(wǎng)絡(luò )編程語(yǔ)言,例如 P4 或其他類(lèi)似的行業(yè)認可的標準化語(yǔ)言。
  從 dNOS 到 DANOS
  AT&amp;T 于 2018 年初向 Linux 基金會(huì )貢獻了 dNOS 作為種子代碼,Linux 基金會(huì )據此建立了 DANOS 項目。DANOS(Dis-Aggregated Network Operating System)將提供一個(gè)開(kāi)放的 NOS 框架,使用現有的開(kāi)源資源和硬件平臺,如白盒交換機、白盒路由器和 uCPE。Vyatta第四代架構引入了商用芯片+軟件轉發(fā)的混合轉發(fā)模式。采用Vyatta第四代架構的DANOS預計將于2019年第一季度正式發(fā)布。
  
  DANOS專(zhuān)注于硬件/軟件分解,超越云數據中心網(wǎng)絡(luò )功能,創(chuàng )建和培育路由軟件組件供應商生態(tài)系統,提供創(chuàng )新的網(wǎng)絡(luò )解決方案,滿(mǎn)足城域網(wǎng)/廣域網(wǎng)(包括蜂窩網(wǎng)絡(luò ))規?;?、快速發(fā)展的功能需求。站點(diǎn)路由器、城域以太網(wǎng)服務(wù)和 RAN 回程路由器/交換機、互聯(lián)網(wǎng)和 VPN 服務(wù)邊緣路由器、運營(yíng)商間 POP 互連結構、骨干核心路由器等)。DANOS 目前計劃支持這五個(gè)操作系統:dNOS、FRR、SONiC、OpenSwitch 和 Stratum。
  DANOS的三大特點(diǎn):
  
  DANOS/dNOS詳細架構圖(顏色對應之前的“dNOS功能和組件圖”)
  對比上圖,我粗略介紹一下DANOS的控制和管理平面、基礎操作系統和數據平面:
  控制和管理平面:基本操作系統:數據平面:參考:
  1、%20whitepaper.pdf
  2、
  3、

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(基于python的開(kāi)放平臺簽名、加密解密以及授權認證測試體系)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(基于python的開(kāi)放平臺簽名、加密解密以及授權認證測試體系)
  目前,大型頂級公司擁有非常成熟的開(kāi)放平臺服務(wù),如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。開(kāi)放平臺的發(fā)展為第三方個(gè)人或公司提供了巨大的機會(huì )。開(kāi)發(fā)者想要接入各大開(kāi)放平臺,必須遵守開(kāi)放平臺的安全機制,實(shí)現業(yè)務(wù)邏輯的前提。一是實(shí)現簽名驗證、加解密、授權鑒權機制。
  本文介紹了基于python的開(kāi)放平臺簽名認證測試系統,可用于第三方應用的沙箱測試,也可應用于服務(wù)商相關(guān)系統的綜合測試。
  
  一、簡(jiǎn)介
  開(kāi)放平臺是指大型企業(yè)以業(yè)務(wù)+場(chǎng)景+解決方案+技術(shù)的優(yōu)勢,將自身的數據能力、計算能力、用戶(hù)系統、產(chǎn)品能力等資源打包,通過(guò)openAPI、openSDK等方式向第三方個(gè)人或個(gè)人開(kāi)放,和 openH5。企業(yè)使用,實(shí)現第三方與服務(wù)商企業(yè)自身的互利共贏(yíng)。
  目前各大廠(chǎng)商的開(kāi)放平臺都比較成熟,如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。與此同時(shí),各大商業(yè)銀行也在大力發(fā)展自身的開(kāi)放銀行服務(wù)。作為第三方開(kāi)發(fā)者,一般來(lái)說(shuō),接入開(kāi)放平臺有一個(gè)相對統一的流程。下圖為微信開(kāi)放平臺開(kāi)通流程。
  
  圖1 微信開(kāi)放平臺接入流程
  如圖1第三步所示,應用上線(xiàn)前,必須進(jìn)行必要的測試。業(yè)務(wù)邏輯測試的前提是測試簽名驗證、加解密、授權認證等安全認證機制。python社區非常成熟,廣泛應用于機器學(xué)習、數據分析、網(wǎng)絡(luò )爬蟲(chóng)、自動(dòng)化腳本等諸多領(lǐng)域。
  在web開(kāi)發(fā)方面,目前有很多公司如Instagram、Quora、Lyft、Dropbox、知乎等后端使用python進(jìn)行開(kāi)發(fā)。本文介紹了基于python的簽名驗證、加解密、授權認證測試的實(shí)現。
  二、簽名驗證
  第三方個(gè)人或企業(yè)通過(guò)開(kāi)放平臺門(mén)戶(hù)網(wǎng)站提交申請成為開(kāi)發(fā)者。開(kāi)發(fā)者資質(zhì)認證通過(guò)后,開(kāi)發(fā)者通常會(huì )從服務(wù)商處獲得自己的appid、appsecret和證書(shū)。該證書(shū)收錄第一個(gè) 第三方開(kāi)發(fā)者的私鑰和服務(wù)提供者的公鑰。
  服務(wù)提供商保留第三方開(kāi)發(fā)者的公鑰和自己的私鑰。開(kāi)發(fā)者使用自己的私鑰進(jìn)行簽名,并將消息發(fā)送到開(kāi)放平臺服務(wù)器。服務(wù)器驗證通過(guò)后,會(huì )使用自己的私鑰對返回給開(kāi)發(fā)者的消息進(jìn)行簽名,開(kāi)發(fā)者收到返回消息后,使用服務(wù)方提供的公鑰進(jìn)行驗證。通過(guò)這個(gè)過(guò)程,開(kāi)發(fā)者和服務(wù)端可以相互確認發(fā)送的消息沒(méi)有被中間人篡改。
  本文的簽名驗證使用RSA算法進(jìn)行演示。使用Python的Crypto庫,安裝時(shí)需要使用pip或conda等其他包管理工具。
  一般來(lái)說(shuō),開(kāi)發(fā)者需要對消息的每個(gè)字段進(jìn)行預處理。
  1.去除請求字典中的所有空值或不必要的參數(如sign、sign_type等);
  2. 對字典進(jìn)行排序(按照ASCII碼從小到大);
  3. 按照“參數=參數值”的模式,將字典中的所有元素用“&amp;”字符組合成一個(gè)字符串。
  數據預處理功能如下圖所示:
  
  圖2 數據預處理功能
  當開(kāi)發(fā)者發(fā)送消息時(shí),會(huì )使用Hash函數從消息中生成摘要,然后用私人消息對摘要進(jìn)行加密。加密后的摘要用作消息的數字簽名,并與消息一起發(fā)送到服務(wù)器。下圖展示了RSA算法的簽名函數的實(shí)現:
  
  圖3 數字簽名功能
  首先使用hash_method函數選擇要使用的digest算法,可以根據實(shí)際情況重構函數。這里演示了 MD5 和 SHA256 算法的示例。簽名函數首先要讀取開(kāi)發(fā)者的私鑰,然后使用RSA算法完成簽名。
  開(kāi)發(fā)者收到服務(wù)器返回的消息后,使用相同的Hash函數從接收到的原創(chuàng )消息中計算出消息的摘要,然后使用發(fā)送方的公鑰對消息所附的數字簽名進(jìn)行解密,如果兩個(gè)摘要是一致,開(kāi)發(fā)??者可以確認消息是服務(wù)器發(fā)送的,沒(méi)有被篡改。
  
  圖4 簽名驗證功能
  三、加解密
  除了用于數字簽名之外,RAS 算法還可以用于消息的非對稱(chēng)加密。非對稱(chēng)加密比對稱(chēng)加密更安全,但由于算法強度比對稱(chēng)加密復雜,因此加解密速度比對稱(chēng)加密慢。對稱(chēng)加密算法的特點(diǎn)是計算量小、加密速度快、加密效率高。缺點(diǎn)是交易雙方使用相同的密鑰,無(wú)法保證安全。常見(jiàn)的對稱(chēng)加密算法有DES、AES等。
  在互聯(lián)網(wǎng)上傳輸消息時(shí),要保證信息的安全,保證沒(méi)有高延遲。因此,對稱(chēng)加密算法和非對稱(chēng)加密算法通常結合使用。使用非對稱(chēng)加密算法對對稱(chēng)加密算法使用的密鑰進(jìn)行數字簽名和加密傳輸,然后使用對稱(chēng)加密算法對消息進(jìn)行加密和解密,保證了消息傳輸的安全性和消息的傳輸速度改善用戶(hù)體驗。
  下面介紹AES加解密的python實(shí)現。其他加密算法類(lèi)似。您可以根據服務(wù)方的要求選擇使用哪種算法。AES 加密方式有五種:ECB、CBC、CTR、CFB、OFB。最常用的是CBC加密。CBC 加密需要一個(gè) 16 位的密鑰和一個(gè) 16 位的偏移量。開(kāi)發(fā)者使用服務(wù)器提供的appsecret作為加解密密鑰。具體實(shí)現如下圖所示:
  
  圖5 AES加解密
  加密的數據應與簽名一起發(fā)送到服務(wù)器。通常,消息是否使用對稱(chēng)加密是可選的。開(kāi)發(fā)者可以根據開(kāi)放平臺的規定和交易的重要性來(lái)選擇是否加密。
  四、授權
  各大開(kāi)放平臺都有自己的授權認證機制,最流行的機制是OAuth2.0。OAuth2.0 是一種開(kāi)放的授權標準,允許用戶(hù)授權第三方應用訪(fǎng)問(wèn)用戶(hù)在某個(gè)服務(wù)(如微博、微信、QQ等)上的特定私有資源,而無(wú)需提供帳戶(hù)密碼給第三方。對于第三方應用,無(wú)需為第三方應用注冊賬號。如果要進(jìn)行開(kāi)放平臺授權認證測試,必須按照OAuth2.0標準連接服務(wù)方。一般來(lái)說(shuō),服務(wù)提供者提供授權服務(wù),主要提供兩類(lèi)接口:
  1.授權接口:接受第三方應用的授權請求。該接口通常收錄以下參數:
  response_type:必需。該值固定為“代碼”。
  client_id:必需。第三方應用的標識ID,即appID。
  狀態(tài):可選。第三方提供的字符串,服務(wù)器將原樣返回。
  redirect_uri:必需。授權成功后的重定向地址。
  范圍:可選。表示要訪(fǎng)問(wèn)的資源的授權范圍。
  成功訪(fǎng)問(wèn)該接口后,將獲得一個(gè)授權碼。
  2.獲取訪(fǎng)問(wèn)令牌(token)接口:使用授權接口提供的授權碼向第三方應用發(fā)放訪(fǎng)問(wèn)令牌。通常收錄以下參數:
  grant_type:必需。固定值“authorization_code”。
  代碼:必填。授權碼在授權界面響應。
  redirect_uri:必需。必須與授權接口中提供的redirect_uri相同。
  client_id:必需。必須與授權界面提供的appID一致。
  第三方應用獲得令牌后,可以使用令牌請求用戶(hù)授權其訪(fǎng)問(wèn)服務(wù)端存儲的資源。
  以上接口的請求可以自己編碼實(shí)現。Python的django-allauth庫封裝了GitHub、Twitter、微博、微信、百度等數十種第三方授權認證方式,通過(guò)簡(jiǎn)單的配置即可應對各大廠(chǎng)商開(kāi)放平臺的授權認證測試。下圖展示了如何在django應用中注冊django-allauth第三方登錄服務(wù)。
  
  圖6 使用django-allauth庫完成第三方授權登錄
  五、總結
  本文介紹了使用python連接各大開(kāi)放平臺實(shí)現簽名驗證、加解密、授權認證的測試方法,并給出了詳細的例子。開(kāi)發(fā)者可以將上述方法封裝到django或其他框架的web應用中,形成便于測試人員操作的界面。在處理簽名驗證、加解密、授權認證等測試或開(kāi)發(fā)工作時(shí),可以大大提高工作效率。
  我是誰(shuí)?
  我是一名資深的測試人員,從事軟件測試工作多年。今年年初花了一個(gè)月時(shí)間整理了一份2020年最適合學(xué)習的軟件測試學(xué)習干貨,可以送給每一個(gè)對軟件測試感興趣的小伙伴。想要領(lǐng)取的話(huà),可以關(guān)注我的頭條號,后臺給我發(fā)私信:【測試】,免費領(lǐng)取。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(基于python的開(kāi)放平臺簽名、加密解密以及授權認證測試體系)
  目前,大型頂級公司擁有非常成熟的開(kāi)放平臺服務(wù),如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。開(kāi)放平臺的發(fā)展為第三方個(gè)人或公司提供了巨大的機會(huì )。開(kāi)發(fā)者想要接入各大開(kāi)放平臺,必須遵守開(kāi)放平臺的安全機制,實(shí)現業(yè)務(wù)邏輯的前提。一是實(shí)現簽名驗證、加解密、授權鑒權機制。
  本文介紹了基于python的開(kāi)放平臺簽名認證測試系統,可用于第三方應用的沙箱測試,也可應用于服務(wù)商相關(guān)系統的綜合測試。
  
  一、簡(jiǎn)介
  開(kāi)放平臺是指大型企業(yè)以業(yè)務(wù)+場(chǎng)景+解決方案+技術(shù)的優(yōu)勢,將自身的數據能力、計算能力、用戶(hù)系統、產(chǎn)品能力等資源打包,通過(guò)openAPI、openSDK等方式向第三方個(gè)人或個(gè)人開(kāi)放,和 openH5。企業(yè)使用,實(shí)現第三方與服務(wù)商企業(yè)自身的互利共贏(yíng)。
  目前各大廠(chǎng)商的開(kāi)放平臺都比較成熟,如微信開(kāi)放平臺、新浪微博開(kāi)放平臺、支付寶開(kāi)放平臺等。與此同時(shí),各大商業(yè)銀行也在大力發(fā)展自身的開(kāi)放銀行服務(wù)。作為第三方開(kāi)發(fā)者,一般來(lái)說(shuō),接入開(kāi)放平臺有一個(gè)相對統一的流程。下圖為微信開(kāi)放平臺開(kāi)通流程。
  
  圖1 微信開(kāi)放平臺接入流程
  如圖1第三步所示,應用上線(xiàn)前,必須進(jìn)行必要的測試。業(yè)務(wù)邏輯測試的前提是測試簽名驗證、加解密、授權認證等安全認證機制。python社區非常成熟,廣泛應用于機器學(xué)習、數據分析、網(wǎng)絡(luò )爬蟲(chóng)、自動(dòng)化腳本等諸多領(lǐng)域。
  在web開(kāi)發(fā)方面,目前有很多公司如Instagram、Quora、Lyft、Dropbox、知乎等后端使用python進(jìn)行開(kāi)發(fā)。本文介紹了基于python的簽名驗證、加解密、授權認證測試的實(shí)現。
  二、簽名驗證
  第三方個(gè)人或企業(yè)通過(guò)開(kāi)放平臺門(mén)戶(hù)網(wǎng)站提交申請成為開(kāi)發(fā)者。開(kāi)發(fā)者資質(zhì)認證通過(guò)后,開(kāi)發(fā)者通常會(huì )從服務(wù)商處獲得自己的appid、appsecret和證書(shū)。該證書(shū)收錄第一個(gè) 第三方開(kāi)發(fā)者的私鑰和服務(wù)提供者的公鑰。
  服務(wù)提供商保留第三方開(kāi)發(fā)者的公鑰和自己的私鑰。開(kāi)發(fā)者使用自己的私鑰進(jìn)行簽名,并將消息發(fā)送到開(kāi)放平臺服務(wù)器。服務(wù)器驗證通過(guò)后,會(huì )使用自己的私鑰對返回給開(kāi)發(fā)者的消息進(jìn)行簽名,開(kāi)發(fā)者收到返回消息后,使用服務(wù)方提供的公鑰進(jìn)行驗證。通過(guò)這個(gè)過(guò)程,開(kāi)發(fā)者和服務(wù)端可以相互確認發(fā)送的消息沒(méi)有被中間人篡改。
  本文的簽名驗證使用RSA算法進(jìn)行演示。使用Python的Crypto庫,安裝時(shí)需要使用pip或conda等其他包管理工具。
  一般來(lái)說(shuō),開(kāi)發(fā)者需要對消息的每個(gè)字段進(jìn)行預處理。
  1.去除請求字典中的所有空值或不必要的參數(如sign、sign_type等);
  2. 對字典進(jìn)行排序(按照ASCII碼從小到大);
  3. 按照“參數=參數值”的模式,將字典中的所有元素用“&amp;”字符組合成一個(gè)字符串。
  數據預處理功能如下圖所示:
  
  圖2 數據預處理功能
  當開(kāi)發(fā)者發(fā)送消息時(shí),會(huì )使用Hash函數從消息中生成摘要,然后用私人消息對摘要進(jìn)行加密。加密后的摘要用作消息的數字簽名,并與消息一起發(fā)送到服務(wù)器。下圖展示了RSA算法的簽名函數的實(shí)現:
  
  圖3 數字簽名功能
  首先使用hash_method函數選擇要使用的digest算法,可以根據實(shí)際情況重構函數。這里演示了 MD5 和 SHA256 算法的示例。簽名函數首先要讀取開(kāi)發(fā)者的私鑰,然后使用RSA算法完成簽名。
  開(kāi)發(fā)者收到服務(wù)器返回的消息后,使用相同的Hash函數從接收到的原創(chuàng )消息中計算出消息的摘要,然后使用發(fā)送方的公鑰對消息所附的數字簽名進(jìn)行解密,如果兩個(gè)摘要是一致,開(kāi)發(fā)??者可以確認消息是服務(wù)器發(fā)送的,沒(méi)有被篡改。
  
  圖4 簽名驗證功能
  三、加解密
  除了用于數字簽名之外,RAS 算法還可以用于消息的非對稱(chēng)加密。非對稱(chēng)加密比對稱(chēng)加密更安全,但由于算法強度比對稱(chēng)加密復雜,因此加解密速度比對稱(chēng)加密慢。對稱(chēng)加密算法的特點(diǎn)是計算量小、加密速度快、加密效率高。缺點(diǎn)是交易雙方使用相同的密鑰,無(wú)法保證安全。常見(jiàn)的對稱(chēng)加密算法有DES、AES等。
  在互聯(lián)網(wǎng)上傳輸消息時(shí),要保證信息的安全,保證沒(méi)有高延遲。因此,對稱(chēng)加密算法和非對稱(chēng)加密算法通常結合使用。使用非對稱(chēng)加密算法對對稱(chēng)加密算法使用的密鑰進(jìn)行數字簽名和加密傳輸,然后使用對稱(chēng)加密算法對消息進(jìn)行加密和解密,保證了消息傳輸的安全性和消息的傳輸速度改善用戶(hù)體驗。
  下面介紹AES加解密的python實(shí)現。其他加密算法類(lèi)似。您可以根據服務(wù)方的要求選擇使用哪種算法。AES 加密方式有五種:ECB、CBC、CTR、CFB、OFB。最常用的是CBC加密。CBC 加密需要一個(gè) 16 位的密鑰和一個(gè) 16 位的偏移量。開(kāi)發(fā)者使用服務(wù)器提供的appsecret作為加解密密鑰。具體實(shí)現如下圖所示:
  
  圖5 AES加解密
  加密的數據應與簽名一起發(fā)送到服務(wù)器。通常,消息是否使用對稱(chēng)加密是可選的。開(kāi)發(fā)者可以根據開(kāi)放平臺的規定和交易的重要性來(lái)選擇是否加密。
  四、授權
  各大開(kāi)放平臺都有自己的授權認證機制,最流行的機制是OAuth2.0。OAuth2.0 是一種開(kāi)放的授權標準,允許用戶(hù)授權第三方應用訪(fǎng)問(wèn)用戶(hù)在某個(gè)服務(wù)(如微博、微信、QQ等)上的特定私有資源,而無(wú)需提供帳戶(hù)密碼給第三方。對于第三方應用,無(wú)需為第三方應用注冊賬號。如果要進(jìn)行開(kāi)放平臺授權認證測試,必須按照OAuth2.0標準連接服務(wù)方。一般來(lái)說(shuō),服務(wù)提供者提供授權服務(wù),主要提供兩類(lèi)接口:
  1.授權接口:接受第三方應用的授權請求。該接口通常收錄以下參數:
  response_type:必需。該值固定為“代碼”。
  client_id:必需。第三方應用的標識ID,即appID。
  狀態(tài):可選。第三方提供的字符串,服務(wù)器將原樣返回。
  redirect_uri:必需。授權成功后的重定向地址。
  范圍:可選。表示要訪(fǎng)問(wèn)的資源的授權范圍。
  成功訪(fǎng)問(wèn)該接口后,將獲得一個(gè)授權碼。
  2.獲取訪(fǎng)問(wèn)令牌(token)接口:使用授權接口提供的授權碼向第三方應用發(fā)放訪(fǎng)問(wèn)令牌。通常收錄以下參數:
  grant_type:必需。固定值“authorization_code”。
  代碼:必填。授權碼在授權界面響應。
  redirect_uri:必需。必須與授權接口中提供的redirect_uri相同。
  client_id:必需。必須與授權界面提供的appID一致。
  第三方應用獲得令牌后,可以使用令牌請求用戶(hù)授權其訪(fǎng)問(wèn)服務(wù)端存儲的資源。
  以上接口的請求可以自己編碼實(shí)現。Python的django-allauth庫封裝了GitHub、Twitter、微博、微信、百度等數十種第三方授權認證方式,通過(guò)簡(jiǎn)單的配置即可應對各大廠(chǎng)商開(kāi)放平臺的授權認證測試。下圖展示了如何在django應用中注冊django-allauth第三方登錄服務(wù)。
  
  圖6 使用django-allauth庫完成第三方授權登錄
  五、總結
  本文介紹了使用python連接各大開(kāi)放平臺實(shí)現簽名驗證、加解密、授權認證的測試方法,并給出了詳細的例子。開(kāi)發(fā)者可以將上述方法封裝到django或其他框架的web應用中,形成便于測試人員操作的界面。在處理簽名驗證、加解密、授權認證等測試或開(kāi)發(fā)工作時(shí),可以大大提高工作效率。
  我是誰(shuí)?
  我是一名資深的測試人員,從事軟件測試工作多年。今年年初花了一個(gè)月時(shí)間整理了一份2020年最適合學(xué)習的軟件測試學(xué)習干貨,可以送給每一個(gè)對軟件測試感興趣的小伙伴。想要領(lǐng)取的話(huà),可以關(guān)注我的頭條號,后臺給我發(fā)私信:【測試】,免費領(lǐng)取。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺注冊開(kāi)發(fā)者并獲取app和appsecret百度很容易)

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

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

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

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)放平臺API調用和TWITTER接口一樣的限定規則)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)放平臺API調用和TWITTER接口一樣的限定規則)
  新浪微博開(kāi)放平臺API調用與TWITTER接口相同,有時(shí)間限制和限制。
  他有兩個(gè)限制原則
  1.用戶(hù)不基于IP限制登錄,每小時(shí)1000次
  2. 用戶(hù)以基于用戶(hù)的限制登錄,每小時(shí)1000次
  如果應用是用戶(hù)未登錄,則IP被限制。建議登錄破解瓶頸,否則不討論。
  新浪給出了具體限制
  開(kāi)發(fā)者可以通過(guò) rate_limit_status 接口查看調用頻率
  rate_limit_status 接口文檔
  接口返回如下信息
  數組([remaining_hits] =&gt; 999 [hourly_limit] =&gt; 1000 [reset_time_in_seconds] =&gt; 2717 [reset_time] =&gt; 12 月 14 日星期二 17:00:00 +0800 2010)
  代表
  剩余數量為999次,
  每小時(shí)限制1000次,
  計數器復位的剩余時(shí)間為 2717 秒,
  下次重置時(shí)間為 17:00。
  對于小型非授權應用程序,這樣的調用頻率已不再足夠。最簡(jiǎn)單的方法是使用多個(gè)賬號和多個(gè)APP_KEY,相當于做一個(gè)賬號輪詢(xún)。
  首先,多注冊幾個(gè)微博賬號,存儲在一個(gè)數組中,每次隨機調用一個(gè),這樣可以輕松達到3000個(gè)。
  $wb_id = array('|password','|password','|password');
  列表($wb_name,$wb_password)=explode(“|”,$wb_id[array_rand($wb_id)]);
  如果用同樣的方法列出幾個(gè)APP_KEY,重復組合,就會(huì )更多。比如2個(gè)APP_KEY,3個(gè)賬號,上限可以達到6000。
  我個(gè)人用了3個(gè)APP_KEY,4個(gè)賬號,每小時(shí)1.20000的量就夠了。
  另一種快速注冊微博賬號的方法
  第一步,
  去gmail注冊一個(gè)長(cháng)賬號,多長(cháng)時(shí)間?反正越長(cháng)越好,一個(gè)原則信比你想注冊的微博賬號長(cháng)
  例如
  第二步,
  使用此賬號注冊新浪
  第一次使用
  第二次使用
  第三次使用
  ....
  以此類(lèi)推,一個(gè)郵箱可以注冊多個(gè)新浪微博。無(wú)需來(lái)回重新注冊郵箱。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(新浪微博開(kāi)放平臺API調用和TWITTER接口一樣的限定規則)
  新浪微博開(kāi)放平臺API調用與TWITTER接口相同,有時(shí)間限制和限制。
  他有兩個(gè)限制原則
  1.用戶(hù)不基于IP限制登錄,每小時(shí)1000次
  2. 用戶(hù)以基于用戶(hù)的限制登錄,每小時(shí)1000次
  如果應用是用戶(hù)未登錄,則IP被限制。建議登錄破解瓶頸,否則不討論。
  新浪給出了具體限制
  開(kāi)發(fā)者可以通過(guò) rate_limit_status 接口查看調用頻率
  rate_limit_status 接口文檔
  接口返回如下信息
  數組([remaining_hits] =&gt; 999 [hourly_limit] =&gt; 1000 [reset_time_in_seconds] =&gt; 2717 [reset_time] =&gt; 12 月 14 日星期二 17:00:00 +0800 2010)
  代表
  剩余數量為999次,
  每小時(shí)限制1000次,
  計數器復位的剩余時(shí)間為 2717 秒,
  下次重置時(shí)間為 17:00。
  對于小型非授權應用程序,這樣的調用頻率已不再足夠。最簡(jiǎn)單的方法是使用多個(gè)賬號和多個(gè)APP_KEY,相當于做一個(gè)賬號輪詢(xún)。
  首先,多注冊幾個(gè)微博賬號,存儲在一個(gè)數組中,每次隨機調用一個(gè),這樣可以輕松達到3000個(gè)。
  $wb_id = array('|password','|password','|password');
  列表($wb_name,$wb_password)=explode(“|”,$wb_id[array_rand($wb_id)]);
  如果用同樣的方法列出幾個(gè)APP_KEY,重復組合,就會(huì )更多。比如2個(gè)APP_KEY,3個(gè)賬號,上限可以達到6000。
  我個(gè)人用了3個(gè)APP_KEY,4個(gè)賬號,每小時(shí)1.20000的量就夠了。
  另一種快速注冊微博賬號的方法
  第一步,
  去gmail注冊一個(gè)長(cháng)賬號,多長(cháng)時(shí)間?反正越長(cháng)越好,一個(gè)原則信比你想注冊的微博賬號長(cháng)
  例如
  第二步,
  使用此賬號注冊新浪
  第一次使用
  第二次使用
  第三次使用
  ....
  以此類(lèi)推,一個(gè)郵箱可以注冊多個(gè)新浪微博。無(wú)需來(lái)回重新注冊郵箱。

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

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺(api同步微博內容至自己網(wǎng)站))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站新浪微博關(guān)注</a>
  前端把微博的鏈接請求發(fā)給后端服務(wù)器,會(huì )返回轉發(fā)的url,服務(wù)器根據url里的id把這條微博轉發(fā)給相應的網(wǎng)站。例如:微博用戶(hù)頁(yè),微博轉發(fā)頁(yè)面url=""//新浪微博轉發(fā)微博鏈接headerhref=""//新浪微博自定義地址sign="text/html,application/xhtml+xml,application/xml;q=0.9"//后端headerdata={"user-agent":"mozilla/5.0(windowsnt10.0;win64;x6。
  4)applewebkit/537.36(khtml,likegecko)chrome/74.0.3033.110safari/537.36","ispublishers":"keep-alive","mms":"5.0"}
  新浪官方做了一個(gè)可以對新浪微博中鏈接進(jìn)行互訪(fǎng)的api,很有用,我寫(xiě)了一個(gè)專(zhuān)門(mén)用于新浪微博互訪(fǎng)的web框架,
  這個(gè)可以實(shí)現,先把新浪微博的數據抓到,然后微博數據庫中查出微博地址轉發(fā)給相應網(wǎng)站,然后轉發(fā)到自己的網(wǎng)站上。
  剛遇到,使用互聯(lián)網(wǎng)開(kāi)放平臺(api),然后后端轉發(fā)給對應網(wǎng)站。開(kāi)放平臺把數據流轉發(fā)給對應網(wǎng)站的服務(wù)器,再由對應網(wǎng)站服務(wù)器再把數據轉發(fā)給后端。
  通過(guò)流分析收集微博內容,然后直接通過(guò)爬蟲(chóng)抓取過(guò)來(lái)。
  1、excel或者powerbi做流程圖;
  2、用網(wǎng)頁(yè)版新浪提供; 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺(api同步微博內容至自己網(wǎng)站))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站新浪微博關(guān)注</a>
  前端把微博的鏈接請求發(fā)給后端服務(wù)器,會(huì )返回轉發(fā)的url,服務(wù)器根據url里的id把這條微博轉發(fā)給相應的網(wǎng)站。例如:微博用戶(hù)頁(yè),微博轉發(fā)頁(yè)面url=""//新浪微博轉發(fā)微博鏈接headerhref=""//新浪微博自定義地址sign="text/html,application/xhtml+xml,application/xml;q=0.9"//后端headerdata={"user-agent":"mozilla/5.0(windowsnt10.0;win64;x6。
  4)applewebkit/537.36(khtml,likegecko)chrome/74.0.3033.110safari/537.36","ispublishers":"keep-alive","mms":"5.0"}
  新浪官方做了一個(gè)可以對新浪微博中鏈接進(jìn)行互訪(fǎng)的api,很有用,我寫(xiě)了一個(gè)專(zhuān)門(mén)用于新浪微博互訪(fǎng)的web框架,
  這個(gè)可以實(shí)現,先把新浪微博的數據抓到,然后微博數據庫中查出微博地址轉發(fā)給相應網(wǎng)站,然后轉發(fā)到自己的網(wǎng)站上。
  剛遇到,使用互聯(lián)網(wǎng)開(kāi)放平臺(api),然后后端轉發(fā)給對應網(wǎng)站。開(kāi)放平臺把數據流轉發(fā)給對應網(wǎng)站的服務(wù)器,再由對應網(wǎng)站服務(wù)器再把數據轉發(fā)給后端。
  通過(guò)流分析收集微博內容,然后直接通過(guò)爬蟲(chóng)抓取過(guò)來(lái)。
  1、excel或者powerbi做流程圖;
  2、用網(wǎng)頁(yè)版新浪提供;

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

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(圖))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,方便所有中文字體開(kāi)發(fā)者使用。
  開(kāi)放平臺不了解,不過(guò)我聽(tīng)說(shuō)可以用apilink,國內比較領(lǐng)先的文字轉引擎,支持的場(chǎng)景還是蠻多的,
  可以關(guān)注下“simplemouse”這款app,主要用來(lái)做文字轉,
  微博開(kāi)放平臺::。
  有一個(gè)功能叫智能轉換,可以達到所有人都可以使用,在googlereader里面登錄賬號,并授權,那么別人無(wú)論是手機端,還是網(wǎng)頁(yè)端,只要有相同的標題,在閱讀過(guò)程中,都可以收聽(tīng)你的內容。實(shí)現方法:登錄谷歌reader賬號,添加賬號,當前用戶(hù)是可以直接直接登錄谷歌reader里面的賬號的,同理,所有用戶(hù)也都可以登錄同一個(gè)賬號。
  打開(kāi)readitlater,新建文章,同一標題,同一內容,系統就會(huì )自動(dòng)收聽(tīng)你的音頻,省去你登錄多個(gè)賬號的步驟。音頻的長(cháng)度:所有未經(jīng)過(guò)長(cháng)短號轉換的全免費音頻,可以無(wú)限制的轉換。音頻的音量:音量是60即可,自己可以調節。轉換之后文章不會(huì )加長(cháng)或者減短。上傳音頻:文章上傳的時(shí)候,選擇文章文件大小,選擇輸出比特率,這樣音頻會(huì )根據你電腦是網(wǎng)絡(luò )過(guò)載還是網(wǎng)絡(luò )不好調整成其他形式,只要你能拿到音頻長(cháng)度,并且實(shí)時(shí)收聽(tīng),基本上也是沒(méi)有任何問(wèn)題的。
  所以我相信國內一定還有很多人都在用,畢竟谷歌reader目前已經(jīng)極度完善的情況下,還有那么多的問(wèn)題,確實(shí)也有必要好好思考一下。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(圖))
  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站,方便所有中文字體開(kāi)發(fā)者使用。
  開(kāi)放平臺不了解,不過(guò)我聽(tīng)說(shuō)可以用apilink,國內比較領(lǐng)先的文字轉引擎,支持的場(chǎng)景還是蠻多的,
  可以關(guān)注下“simplemouse”這款app,主要用來(lái)做文字轉,
  微博開(kāi)放平臺::。
  有一個(gè)功能叫智能轉換,可以達到所有人都可以使用,在googlereader里面登錄賬號,并授權,那么別人無(wú)論是手機端,還是網(wǎng)頁(yè)端,只要有相同的標題,在閱讀過(guò)程中,都可以收聽(tīng)你的內容。實(shí)現方法:登錄谷歌reader賬號,添加賬號,當前用戶(hù)是可以直接直接登錄谷歌reader里面的賬號的,同理,所有用戶(hù)也都可以登錄同一個(gè)賬號。
  打開(kāi)readitlater,新建文章,同一標題,同一內容,系統就會(huì )自動(dòng)收聽(tīng)你的音頻,省去你登錄多個(gè)賬號的步驟。音頻的長(cháng)度:所有未經(jīng)過(guò)長(cháng)短號轉換的全免費音頻,可以無(wú)限制的轉換。音頻的音量:音量是60即可,自己可以調節。轉換之后文章不會(huì )加長(cháng)或者減短。上傳音頻:文章上傳的時(shí)候,選擇文章文件大小,選擇輸出比特率,這樣音頻會(huì )根據你電腦是網(wǎng)絡(luò )過(guò)載還是網(wǎng)絡(luò )不好調整成其他形式,只要你能拿到音頻長(cháng)度,并且實(shí)時(shí)收聽(tīng),基本上也是沒(méi)有任何問(wèn)題的。
  所以我相信國內一定還有很多人都在用,畢竟谷歌reader目前已經(jīng)極度完善的情況下,還有那么多的問(wèn)題,確實(shí)也有必要好好思考一下。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
  最近一直在做利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
  對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號和本地賬號的綁定。放心,一定和代碼級別一樣好。
  第 1 部分:三方登錄:
  1. 新浪微博開(kāi)放平臺要做的事情:
  請耐心閱讀,一步一步操作,如圖:
 ?、龠M(jìn)入
  
 ?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
  
 ?、圻x擇立即連接:
  
  請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊后即可通過(guò)驗證(身份驗證)
 ?、芴顚?xiě)網(wǎng)站信息,然后在你的網(wǎng)站主頁(yè)添加標記,本地添加成功后(在eclipse等開(kāi)發(fā)ide中添加到項目主頁(yè)),然后重新發(fā)布到你自己的服務(wù)器,(你可以重新打包成war包發(fā)布到網(wǎng)上,比如我用的是騰訊的阿里云主機)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
  
 ?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站的appKey,(appkey)是你的網(wǎng)站的唯一標識。
  查找您自己的 appkey,如下所示:
  點(diǎn)擊我的申請:
  
  這時(shí)候會(huì )有appkey的值,你肯定會(huì )看到
  完成這些步驟后,請設置您的授權回調頁(yè)面:
  解釋
  1.授權回調頁(yè)面是用戶(hù)登錄到您使用微博賬號訪(fǎng)問(wèn)過(guò)的網(wǎng)站(您的網(wǎng)站首頁(yè))后,會(huì )收到用戶(hù)個(gè)人openID和accessToken的頁(yè)面或其他頁(yè)面)
  2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
  設置如下
  點(diǎn)擊上圖中的界面管理:
  
  然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
  
  點(diǎn)擊編輯,切換到自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
  這時(shí)候網(wǎng)站的申請已經(jīng)完成了,騷年,開(kāi)始寫(xiě)代碼。
  在你的主頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試,真正的開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,有登錄按鈕新浪微博)注意微博有登錄組件,這里我們使用自定義按鈕:
  進(jìn)行如下操作:
 ?、? 在 weibo.js 中引入
  
  appkey=寫(xiě)你的應用密鑰網(wǎng)站。
 ?、? 設置您的登錄按鈕
  
 ?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
  
 ?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
  
  隱藏表單如下所示:
  
  spring 安全框架用于用戶(hù)認證和授權。
  基本上就是這樣。我相信那些想做這件事的人也知道 Ajax。因為后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
  一切平安。 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(初涉外網(wǎng)資源的互聯(lián)網(wǎng)系統摸索了很長(cháng)時(shí)間無(wú)力吐槽)
  最近一直在做利用三方資源的事情。由于之前做企業(yè)管理(ERP)內網(wǎng)系統,我一直在探索涉及外網(wǎng)資源的互聯(lián)網(wǎng)系統。
  對于網(wǎng)上泛濫的各種教程,我實(shí)在是無(wú)力吐槽。決定分享一下這段時(shí)間遇到的各種問(wèn)題和相應的解決方法。教程分為兩個(gè)階段:一是賬號登錄,二是三方賬號和本地賬號的綁定。放心,一定和代碼級別一樣好。
  第 1 部分:三方登錄:
  1. 新浪微博開(kāi)放平臺要做的事情:
  請耐心閱讀,一步一步操作,如圖:
 ?、龠M(jìn)入
  
 ?、谠谖⑦B接中選擇“網(wǎng)站訪(fǎng)問(wèn)”:
  
 ?、圻x擇立即連接:
  
  請注意,如果您此時(shí)未登錄,或登錄后微博檢測到您不是開(kāi)發(fā)者,請填寫(xiě)并查看開(kāi)發(fā)者信息。審核會(huì )很快,點(diǎn)擊后即可通過(guò)驗證(身份驗證)
 ?、芴顚?xiě)網(wǎng)站信息,然后在你的網(wǎng)站主頁(yè)添加標記,本地添加成功后(在eclipse等開(kāi)發(fā)ide中添加到項目主頁(yè)),然后重新發(fā)布到你自己的服務(wù)器,(你可以重新打包成war包發(fā)布到網(wǎng)上,比如我用的是騰訊的阿里云主機)。確認以上步驟完成后,點(diǎn)擊“驗證并添加”,微博中的某段代碼會(huì )自動(dòng)讀取你在項目首頁(yè)添加的header,如果有則驗證成功。
  
 ?、萁?jīng)過(guò)以上過(guò)程,你的網(wǎng)站已經(jīng)添加成功。這時(shí)候微博會(huì )發(fā)給你你的網(wǎng)站的appKey,(appkey)是你的網(wǎng)站的唯一標識。
  查找您自己的 appkey,如下所示:
  點(diǎn)擊我的申請:
  
  這時(shí)候會(huì )有appkey的值,你肯定會(huì )看到
  完成這些步驟后,請設置您的授權回調頁(yè)面:
  解釋
  1.授權回調頁(yè)面是用戶(hù)登錄到您使用微博賬號訪(fǎng)問(wèn)過(guò)的網(wǎng)站(您的網(wǎng)站首頁(yè))后,會(huì )收到用戶(hù)個(gè)人openID和accessToken的頁(yè)面或其他頁(yè)面)
  2. 通俗地說(shuō),就是用戶(hù)在成功授權你的應用后(登錄成功后)被重定向到的頁(yè)面。
  設置如下
  點(diǎn)擊上圖中的界面管理:
  
  然后點(diǎn)擊授權機制,右側頁(yè)面有授權回調頁(yè)面的設置:
  
  點(diǎn)擊編輯,切換到自己的網(wǎng)站首頁(yè)或對應的授權回調頁(yè)面。(如:(優(yōu)雅的restful url))等。
  這時(shí)候網(wǎng)站的申請已經(jīng)完成了,騷年,開(kāi)始寫(xiě)代碼。
  在你的主頁(yè)或登錄界面設置登錄按鈕,這里我們選擇后者(僅用于測試,真正的開(kāi)發(fā)應該在首頁(yè)顯示登錄按鈕,點(diǎn)擊登錄按鈕后,頁(yè)面跳轉到登錄界面,有登錄按鈕新浪微博)注意微博有登錄組件,這里我們使用自定義按鈕:
  進(jìn)行如下操作:
 ?、? 在 weibo.js 中引入
  
  appkey=寫(xiě)你的應用密鑰網(wǎng)站。
 ?、? 設置您的登錄按鈕
  
 ?、? 在微博登錄按鈕上設置一個(gè) οnclick="weibologin()" 事件:
  
 ?、芫帉?xiě)用戶(hù)授權登錄和綁定的js代碼:
  
  隱藏表單如下所示:
  
  spring 安全框架用于用戶(hù)認證和授權。
  基本上就是這樣。我相信那些想做這件事的人也知道 Ajax。因為后端代碼比較保密,不能寫(xiě)。ajax請求對應的服務(wù)端處理代碼,請自行完成,基本流程是這樣的,有不懂的請留言::1061328217
  一切平安。

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API生成短鏈接,同時(shí)支持多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,通俗的講就是通過(guò)程序計算將長(cháng)網(wǎng)址網(wǎng)址轉換為短網(wǎng)址字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  // APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p> 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(通過(guò)新浪微博API生成短鏈接,支持一次性轉多個(gè)長(cháng)鏈接)
  通過(guò)新浪微博API生成短鏈接,同時(shí)支持多個(gè)長(cháng)鏈接。什么是短鏈接 短鏈接,通俗的講就是通過(guò)程序計算將長(cháng)網(wǎng)址網(wǎng)址轉換為短網(wǎng)址字符串。短鏈接服務(wù)
  國內各大微博都推出了自己的短鏈接服務(wù)。比如新浪微博、騰訊微博等。
  為什么選擇新浪微博API新浪微博短鏈接API是開(kāi)放的 新浪微博短鏈接API不需要用戶(hù)登錄文檔查詢(xún)鏈接使用方法
  拿到自己的AppKey后,只需替換類(lèi)的成員屬性$appKey的值即可,如下圖,$shortUrl為API請求地址
  // APPkey,我在網(wǎng)上找的(https://fengmk2.com/blog/appkey.html),可以自己申請
protected $appKey = '569452181';
// 轉短連接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
  其他的,基本不需要配置,直接實(shí)例化類(lèi)ShortLink,然后調用getShortUrl方法,需要注意的是長(cháng)鏈接URL數組$longUrl中的值可以傳多個(gè)值
  當然,為了方便,我把它寫(xiě)成一個(gè)類(lèi),可以根據自己的需要進(jìn)行調整,滿(mǎn)足自己的需求。
  源代碼
<p>

使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺創(chuàng )建應用的詳細流程及應用)

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

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺創(chuàng )建應用的詳細流程及應用)
  一、準備。
  1. 微博賬號。注冊很容易。
  2.微博賬號成為開(kāi)發(fā)者。
  登錄微博開(kāi)放平臺登錄您的注冊賬號,然后進(jìn)入管理中心完成開(kāi)發(fā)者基本信息和身份認證。
  這時(shí)候還需要瀏覽微博開(kāi)放平臺的文檔,了解這個(gè)開(kāi)放平臺的一些規范術(shù)語(yǔ)。
  單擊每個(gè)鏈接進(jìn)行查看。順便看一下微博API文檔,里面有介紹,有些接口調用需要獲取access_token。這篇文章就是為了達到這個(gè)目的。
  二、創(chuàng )建一個(gè)應用程序。
  比如我們要開(kāi)發(fā)一個(gè)網(wǎng)站,然后在這個(gè)網(wǎng)站中連接微博開(kāi)放平臺,調用開(kāi)放平臺的接口。然后我們需要在登錄微博開(kāi)放平臺后創(chuàng )建一個(gè)應用。
  創(chuàng )建應用程序后,您將獲得應用程序的 App key 和 AppSecret。然后我們就是利用這個(gè)信息調用新浪微博的auth2.0認證獲取access_token。
  拿到access_token后,我們就可以調用我們需要的接口了,比如發(fā)微博等。
  1. 創(chuàng )建引用的地方。開(kāi)放平臺--》點(diǎn)擊上方導航菜單中的“微鏈接”,這里的微鏈接的概念也是這個(gè)開(kāi)放平臺的一個(gè)術(shù)語(yǔ),具體含義可以查看相關(guān)文檔。
  2.創(chuàng )建什么類(lèi)型的應用程序?
  隨意看看你的情況。測試時(shí),您可以創(chuàng )建任何東西,嘗試并充滿(mǎn)信心地去做。我創(chuàng )建的是一個(gè)網(wǎng)頁(yè)參考,所以我發(fā)現它很容易輸入,不需要填寫(xiě)太多信息。
  如下所示:
  
  創(chuàng )建完成后,可以在我的應用中看到:
  
  單擊以查看與應用程序相關(guān)的信息。一會(huì )兒我們需要用到這里的app key和app secret,還需要配置應用授權回調地址。
  三、下載微博開(kāi)發(fā)SDK。
  開(kāi)發(fā)SDK中有一些示例,可以直接作為參考。下載鏈接。我下載了 weibo4j 的 Java 版本。下載后,我導入了開(kāi)發(fā)工具。如下所示:
  
  代碼很多,不要慌,先在examples包下的oauth2包下找到OAuth4Code類(lèi)。我們需要運行這個(gè)類(lèi)。
  這個(gè)類(lèi)完成oauth操作,這一步包括兩個(gè)請求
  第一次:
https://api.weibo.com/oauth2/a ... Dcode
第二次:
https://api.weibo.com/oauth2/access_token
  請注意,第一個(gè)請求中有一個(gè) client_id。這個(gè)參數需要在config.properties中配置,對應我們上面創(chuàng )建的應用的app key。
  同樣,這個(gè)配置文件中有一個(gè)client_SERCRET,對應我們上面創(chuàng )建的應用的app sercret,復制進(jìn)去。
  還有一個(gè)參數redirect_uri,比較關(guān)鍵。當我們運行OAuth4Code類(lèi)時(shí),第一次請求完成后,會(huì )回調這個(gè)地址,同時(shí)帶入一個(gè)code參數。
  我們需要復制這個(gè)參數,在控制臺中輸入,然后回車(chē)。發(fā)起第二個(gè)請求,這個(gè)請求會(huì )返回我們需要的access_token。那么問(wèn)題來(lái)了,如何配置這個(gè)地址呢?
  1. 在上面創(chuàng )建的參考中,找到接口管理--》授權機制也沒(méi)有配置回調地址的地方,填寫(xiě)即可。
  2. 上面的鏈接應該在config.properties中配置,如下:
  client_ID = 1234567890
client_SERCRET = 890a2ab550cf8d7a0090ff2f19850f3a
redirect_URI = https\://api.weibo.com/oauth2/default.html
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https\://rm.api.weibo.com/2/
  三、 運行程序獲取access_token。
  上面第二步完成后,配置就完成了。運行以下類(lèi):
  public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.println(oauth.authorize("code"));
System.out.print("Hit enter when it&#39;s done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
Log.logInfo("code: " + code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
} catch (WeiboException e) {
if(401 == e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}
}
  程序運行后,在控制臺輸入一行log后,進(jìn)入等待控制臺輸入的狀態(tài),瀏覽器立即打開(kāi)了一個(gè)頁(yè)面,跳轉后頁(yè)面變成了如下:
  
  復制瀏覽器地址欄中的code參數值?;氐絤yeclipse,粘貼這個(gè)值,然后回車(chē)。程序繼續執行,使用這個(gè)code參數,再次發(fā)起請求,終于成功后就可以拿到access_token了
  整個(gè)過(guò)程的效果日志:
  
  四、本例中oauth授權流程總結。
  兩次請求
  第一次:
  https://api.weibo.com/oauth2/a ... Dcode
  同意授權后,會(huì )重定向:
  //同意授權后會(huì )重定向
http://www.example.com/response&code=CODE
  第二次:
  按照上面的代碼再次發(fā)起請求。獲取 access_token
  會(huì )有一些問(wèn)題,主要原因是授權地址配置不正確。根據本文中的示例配置,您可以成功運行程序。獲取 access_token。
  錯誤代碼如下:
  錯誤代碼(error) 錯誤代碼(error_code) 錯誤描述(error_description)
  redirect_uri_mismatch
  21322
  重定向地址不匹配
  無(wú)效請求
  21323
  請求是非法的
  invalid_client
  21324
  client_id 或 client_secret 參數無(wú)效
  invalid_grant
  21325
  提供的訪(fǎng)問(wèn)授權無(wú)效、已過(guò)期或已撤銷(xiāo)
  未經(jīng)授權的客戶(hù)端
  21326
  客戶(hù)端沒(méi)有權限
  expired_token
  21327
  令牌過(guò)期
  unsupported_grant_type
  21328
  不支持的 GrantType
  unsupported_response_type
  21329
  不支持的響應類(lèi)型
  拒絕訪(fǎng)問(wèn)
  21330
  用戶(hù)或授權服務(wù)器拒絕授予數據訪(fǎng)問(wèn)權限
  暫時(shí)不可用
  21331
  該服務(wù)暫時(shí)不可用
  appkey權限被拒絕
  21337
  應用權限不足 查看全部

  使用新浪微博開(kāi)放平臺api同步微博內容至自己網(wǎng)站(微博開(kāi)放平臺創(chuàng )建應用的詳細流程及應用)
  一、準備。
  1. 微博賬號。注冊很容易。
  2.微博賬號成為開(kāi)發(fā)者。
  登錄微博開(kāi)放平臺登錄您的注冊賬號,然后進(jìn)入管理中心完成開(kāi)發(fā)者基本信息和身份認證。
  這時(shí)候還需要瀏覽微博開(kāi)放平臺的文檔,了解這個(gè)開(kāi)放平臺的一些規范術(shù)語(yǔ)。
  單擊每個(gè)鏈接進(jìn)行查看。順便看一下微博API文檔,里面有介紹,有些接口調用需要獲取access_token。這篇文章就是為了達到這個(gè)目的。
  二、創(chuàng )建一個(gè)應用程序。
  比如我們要開(kāi)發(fā)一個(gè)網(wǎng)站,然后在這個(gè)網(wǎng)站中連接微博開(kāi)放平臺,調用開(kāi)放平臺的接口。然后我們需要在登錄微博開(kāi)放平臺后創(chuàng )建一個(gè)應用。
  創(chuàng )建應用程序后,您將獲得應用程序的 App key 和 AppSecret。然后我們就是利用這個(gè)信息調用新浪微博的auth2.0認證獲取access_token。
  拿到access_token后,我們就可以調用我們需要的接口了,比如發(fā)微博等。
  1. 創(chuàng )建引用的地方。開(kāi)放平臺--》點(diǎn)擊上方導航菜單中的“微鏈接”,這里的微鏈接的概念也是這個(gè)開(kāi)放平臺的一個(gè)術(shù)語(yǔ),具體含義可以查看相關(guān)文檔。
  2.創(chuàng )建什么類(lèi)型的應用程序?
  隨意看看你的情況。測試時(shí),您可以創(chuàng )建任何東西,嘗試并充滿(mǎn)信心地去做。我創(chuàng )建的是一個(gè)網(wǎng)頁(yè)參考,所以我發(fā)現它很容易輸入,不需要填寫(xiě)太多信息。
  如下所示:
  
  創(chuàng )建完成后,可以在我的應用中看到:
  
  單擊以查看與應用程序相關(guān)的信息。一會(huì )兒我們需要用到這里的app key和app secret,還需要配置應用授權回調地址。
  三、下載微博開(kāi)發(fā)SDK。
  開(kāi)發(fā)SDK中有一些示例,可以直接作為參考。下載鏈接。我下載了 weibo4j 的 Java 版本。下載后,我導入了開(kāi)發(fā)工具。如下所示:
  
  代碼很多,不要慌,先在examples包下的oauth2包下找到OAuth4Code類(lèi)。我們需要運行這個(gè)類(lèi)。
  這個(gè)類(lèi)完成oauth操作,這一步包括兩個(gè)請求
  第一次:
https://api.weibo.com/oauth2/a ... Dcode
第二次:
https://api.weibo.com/oauth2/access_token
  請注意,第一個(gè)請求中有一個(gè) client_id。這個(gè)參數需要在config.properties中配置,對應我們上面創(chuàng )建的應用的app key。
  同樣,這個(gè)配置文件中有一個(gè)client_SERCRET,對應我們上面創(chuàng )建的應用的app sercret,復制進(jìn)去。
  還有一個(gè)參數redirect_uri,比較關(guān)鍵。當我們運行OAuth4Code類(lèi)時(shí),第一次請求完成后,會(huì )回調這個(gè)地址,同時(shí)帶入一個(gè)code參數。
  我們需要復制這個(gè)參數,在控制臺中輸入,然后回車(chē)。發(fā)起第二個(gè)請求,這個(gè)請求會(huì )返回我們需要的access_token。那么問(wèn)題來(lái)了,如何配置這個(gè)地址呢?
  1. 在上面創(chuàng )建的參考中,找到接口管理--》授權機制也沒(méi)有配置回調地址的地方,填寫(xiě)即可。
  2. 上面的鏈接應該在config.properties中配置,如下:
  client_ID = 1234567890
client_SERCRET = 890a2ab550cf8d7a0090ff2f19850f3a
redirect_URI = https\://api.weibo.com/oauth2/default.html

baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https\://rm.api.weibo.com/2/
  三、 運行程序獲取access_token。
  上面第二步完成后,配置就完成了。運行以下類(lèi):
  public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.println(oauth.authorize("code"));
System.out.print("Hit enter when it&#39;s done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
Log.logInfo("code: " + code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
} catch (WeiboException e) {
if(401 == e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}
}
  程序運行后,在控制臺輸入一行log后,進(jìn)入等待控制臺輸入的狀態(tài),瀏覽器立即打開(kāi)了一個(gè)頁(yè)面,跳轉后頁(yè)面變成了如下:
  
  復制瀏覽器地址欄中的code參數值?;氐絤yeclipse,粘貼這個(gè)值,然后回車(chē)。程序繼續執行,使用這個(gè)code參數,再次發(fā)起請求,終于成功后就可以拿到access_token了
  整個(gè)過(guò)程的效果日志:
  
  四、本例中oauth授權流程總結。
  兩次請求
  第一次:
  https://api.weibo.com/oauth2/a ... Dcode
  同意授權后,會(huì )重定向:
  //同意授權后會(huì )重定向
http://www.example.com/response&code=CODE
  第二次:
  按照上面的代碼再次發(fā)起請求。獲取 access_token
  會(huì )有一些問(wèn)題,主要原因是授權地址配置不正確。根據本文中的示例配置,您可以成功運行程序。獲取 access_token。
  錯誤代碼如下:
  錯誤代碼(error) 錯誤代碼(error_code) 錯誤描述(error_description)
  redirect_uri_mismatch
  21322
  重定向地址不匹配
  無(wú)效請求
  21323
  請求是非法的
  invalid_client
  21324
  client_id 或 client_secret 參數無(wú)效
  invalid_grant
  21325
  提供的訪(fǎng)問(wèn)授權無(wú)效、已過(guò)期或已撤銷(xiāo)
  未經(jīng)授權的客戶(hù)端
  21326
  客戶(hù)端沒(méi)有權限
  expired_token
  21327
  令牌過(guò)期
  unsupported_grant_type
  21328
  不支持的 GrantType
  unsupported_response_type
  21329
  不支持的響應類(lèi)型
  拒絕訪(fǎng)問(wèn)
  21330
  用戶(hù)或授權服務(wù)器拒絕授予數據訪(fǎng)問(wèn)權限
  暫時(shí)不可用
  21331
  該服務(wù)暫時(shí)不可用
  appkey權限被拒絕
  21337
  應用權限不足

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

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