這篇文章跟大家分析一下“NET類庫封裝該如何理解”。內(nèi)容詳細易懂,對“NET類庫封裝該如何理解”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭?。下面跟著小編一起深入學習“NET類庫封裝該如何理解”的知識吧。
創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為盈江企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站設計、外貿(mào)網(wǎng)站建設,盈江網(wǎng)站改版等技術服務。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
目前開放OAuth3互聯(lián)接口比較常用的有新浪微博,騰訊QQ,淘寶,其實還有微信,只是微信的我木有申請下來,因為手續(xù)麻煩,貌似需要掃描它的協(xié)議簽字然后發(fā)過去,所以就放棄封裝微信OAuth3登陸接口了,待以后給補上!關于淘寶OAuth網(wǎng)站接入登陸目前淘寶是暫停審核了貌似,也許是因為財大氣粗比較任性吧,不過你還是可申請賬號的,可以做應用提交給淘寶。
一。 下面給出各個OAuth3.0申請合作的地址:
-- sinaweibo OAuth3.0 --
申請接入OAuth3合作地址:http://open.weibo.com (微博.開放平臺)
授權Url: https://api.weibo.com/oauth3/authorize?client_id=你的ClientId&redirect_uri=你的回調(diào)Url&response_type=code&display=default%20&state=sinaweibo
-- qq OAuth3.0 --
申請接入OAuth3合作地址: http://connect.qq.com (所謂的QQ互聯(lián),貌似還有一個http://open.qq.com,但這個我還木有用過,就先用QQ互聯(lián)吧反正是可以登陸)
授權Url: http://openapi.qzone.qq.com/oauth/show?which=Login&display=pc&client_id=你的ClientId&redirect_uri=你的回調(diào)Url&response_type=code&display=default%20&state=qq
-- taobao OAuth3.0 --
申請接入OAuth3合作地址:http://open.taobao.com/index.htm
授權Url: https://oauth.taobao.com/authorize?client_id=你的ClientId&redirect_uri=你的回調(diào)Url&response_type=code&display=default%20&state=taobao
-- WeiXin OAuth3.0 --
申請接入OAuth3合作地址:https://open.weixin.qq.com
下面開始給dotNET平臺的小伙伴們發(fā)福利啦,封裝了一個類實現(xiàn)了接入到新浪微博,騰訊QQ,淘寶,和獲取用戶信息,就實現(xiàn)了下面的2個接口,分別是IOAuthClient和IUserInterface。
namespace GeRenXing.OpenPlatform { public interface IOAuthClient { AuthOption Option { get; } AuthToken Token { get; } IUserInterface User { get; } String GetAuthorizeUrl(ResponseType responseType); AuthToken GetAccessTokenByAuthorizationCode(string code); AuthToken GetAccessTokenByPassword(string passport, string password); AuthToken GetAccessTokenByRefreshToken(string refreshToken); String Get(String url, params RequestOption[] options); String Post(String url, params RequestOption[] options); } }
需要封裝更多api的請自行擴展,也可以直接調(diào)用IOAuthClient的Get和Post方法直接傳遞參數(shù)快速訪問api。
新浪微博和淘寶在獲取Token的時候就把OpenId直接返回給你了,而騰訊QQ的OAuth3.0接入里獲取Token是不會返回OpenId的,需要單獨訪問https://graph.qq.com/oauth3.0/me獲取OpenId,對于這個不同點我在封裝的騰訊QQ ParseAccessToken 方法里面已經(jīng)自動處理了,就是再次發(fā)起了一次獲取用戶Open Id的請求。
各位小伙伴注意啦:訪問授權Url返回的Code碼只能使用一次,否則會報下面這個錯誤:
{"error":"invalid_grant","error_code":21325,"request":"/oauth3/access_token","error_uri":"/oauth3/access_token","error_description":"invalid authorization code:2c2cb4e1f6b70650acbe1dad757ea6bb"}
二。 下面做了個測試的控制臺程序,ClientId和ClientSecret,CallbackUrl請改為自己的。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using GeRenXing.OpenPlatform; namespace GeRenXing.OpenPlatform.Test { class Program { private static Dictionary<String, IOAuthClient> m_oauthClients; static void Main(string[] args) { //初始化開放平臺客戶端(請?zhí)鎿Q成自己的ClientId,ClientScrert,CallbackUrl) m_oauthClients = new Dictionary<string, IOAuthClient>(); m_oauthClients["sinaweibo"] = new OpenPlatform.OAuthClient.SinaWeiBoClient("You ClientId", "You ClientScrert", "You Callback Url"); m_oauthClients["qq"] = new OpenPlatform.OAuthClient.TencentQQClient("You ClientId", "You ClientScrert", "You Callback Url"); m_oauthClients["taobao"] = new OpenPlatform.OAuthClient.TaoBaoClient("You ClientId", "You ClientScrert", "You Callback Url"); //測試 OAuthTest("sinaweibo"); //OAuthTest("qq"); //OAuthTest("taobao"); Console.ReadKey(true); } private static void OAuthTest(String platformCode) { String authorizeUrl = String.Empty; if (String.IsNullOrEmpty(platformCode)) platformCode = "sinaweibo"; Console.WriteLine("OpenPlatform Request For " + platformCode); Console.WriteLine(""); IOAuthClient oauthClient = m_oauthClients[platformCode]; oauthClient.Option.State = platformCode; //***步:獲取開放平臺授權地址 authorizeUrl = m_oauthClients[platformCode].GetAuthorizeUrl(ResponseType.Code); Console.WriteLine("Step 1 - OAuth3.0 for Redirect AuthorizeUrl: "); Console.WriteLine(authorizeUrl); //第二步:打開IE瀏覽器獲取Code Process p = new Process(); ProcessStartInfo psi = new ProcessStartInfo(); psi.Arguments = authorizeUrl; psi.FileName = "C:\\Program Files\\Internet Explorer\\iexplore.exe"; p.StartInfo = psi; p.Start(); Console.WriteLine(""); Console.WriteLine("OAuth3.0 Input Server Response Code"); String code = Console.ReadLine(); //第三步:獲取開放平臺授權令牌 oauthClient = m_oauthClients[platformCode]; AuthToken accessToken = oauthClient.GetAccessTokenByAuthorizationCode(code); if (accessToken != null) { Console.WriteLine(""); Console.WriteLine("Step 2 - OAuth3.0 for AccessToken: " + accessToken.AccessToken); //輸出原始響應數(shù)據(jù) Console.WriteLine("GetAccessToken Raw Response : "); Console.WriteLine(oauthClient.Token.TraceInfo); //第四步:調(diào)用開放平臺API,獲取開放平臺用戶信息 dynamic oauthProfile = oauthClient.User.GetUserInfo(); //輸出解析出來的用戶昵稱 Console.WriteLine(""); Console.WriteLine("Step 3 - Call Open API UserInfo: "); Console.WriteLine("UserInfo Nickname: " + oauthClient.Token.User.Nickname); //輸出原始響應數(shù)據(jù) Console.WriteLine("GetUserInfo Raw Response : "); Console.WriteLine(oauthClient.Token.TraceInfo); } } } }
三。 下面給出幾張測試的截圖:
SianWeiBo Oauth3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++
QQ OAuth3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++
TaoBao OAuth3.0
++++++++++++++++++++++++++++++++++++++++++++++++++++
關于NET類庫封裝該如何理解就分享到這里啦,希望上述內(nèi)容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下創(chuàng)新互聯(lián)網(wǎng)站!
當前文章:NET類庫封裝該如何理解
URL地址:http://bm7419.com/article0/pscgio.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、網(wǎng)站制作、軟件開發(fā)、營銷型網(wǎng)站建設、電子商務、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)