偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用于新浪微博,騰訊QQ,淘寶 OAUTH2.0 登陸的NET類庫封裝

開發(fā) 后端
目前開放OAuth2互聯(lián)接口比較常用的有新浪微博,騰訊QQ,淘寶,其實還有微信,只是微信的我木有申請下來,因為手續(xù)麻煩,貌似需要掃描它的協(xié)議簽字然后發(fā)過去,所以就放棄封裝微信OAuth2登陸接口了,待以后給補上!關(guān)于淘寶OAuth網(wǎng)站接入登陸目前淘寶是暫停審核了貌似,也許是因為財大氣粗比較任性吧,不過你還是可申請賬號的,可以做應(yīng)用提交給淘寶。

目前開放OAuth2互聯(lián)接口比較常用的有新浪微博,騰訊QQ,淘寶,其實還有微信,只是微信的我木有申請下來,因為手續(xù)麻煩,貌似需要掃描它的協(xié)議簽字然后發(fā)過去,所以就放棄封裝微信OAuth2登陸接口了,待以后給補上!關(guān)于淘寶OAuth網(wǎng)站接入登陸目前淘寶是暫停審核了貌似,也許是因為財大氣粗比較任性吧,不過你還是可申請賬號的,可以做應(yīng)用提交給淘寶。

需要源代碼的小伙伴請猛戳這里下載,需要已經(jīng)編譯好Dll的小伙伴請猛戳這里下載。

一。 下面給出各個OAuth2.0申請合作的地址:

-- sinaweibo OAuth2.0 --

申請接入OAuth2合作地址:http://open.weibo.com (微博.開放平臺)
授權(quán)Url: https://api.weibo.com/oauth2/authorize?client_id=你的ClientId&redirect_uri=你的回調(diào)Url&response_type=code&display=default%20&state=sinaweibo

-- qq OAuth2.0 --

申請接入OAuth2合作地址: http://connect.qq.com (所謂的QQ互聯(lián),貌似還有一個http://open.qq.com,但這個我還木有用過,就先用QQ互聯(lián)吧反正是可以登陸)
授權(quá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 OAuth2.0 --

申請接入OAuth2合作地址:http://open.taobao.com/index.htm
授權(quán)Url: https://oauth.taobao.com/authorize?client_id=你的ClientId&redirect_uri=你的回調(diào)Url&response_type=code&display=default%20&state=taobao

-- WeiXin OAuth2.0 --

申請接入OAuth2合作地址:https://open.weixin.qq.com

下面開始給dotNET平臺的小伙伴們發(fā)福利啦,封裝了一個類實現(xiàn)了接入到新浪微博,騰訊QQ,淘寶,和獲取用戶信息,就實現(xiàn)了下面的2個接口,分別是IOAuthClient和IUserInterface。

  1. namespace GeRenXing.OpenPlatform 
  2.     public interface IOAuthClient 
  3.     { 
  4.         AuthOption Option { get; } 
  5.         AuthToken Token { get; } 
  6.         IUserInterface User { get; } 
  7.   
  8.         String GetAuthorizeUrl(ResponseType responseType); 
  9.         AuthToken GetAccessTokenByAuthorizationCode(string code); 
  10.         AuthToken GetAccessTokenByPassword(string passport, string password); 
  11.         AuthToken GetAccessTokenByRefreshToken(string refreshToken); 
  12.         String Get(String url, params RequestOption[] options); 
  13.         String Post(String url, params RequestOption[] options); 
  14.     } 

需要封裝更多api的請自行擴展,也可以直接調(diào)用IOAuthClient的Get和Post方法直接傳遞參數(shù)快速訪問api。

新浪微博和淘寶在獲取Token的時候就把OpenId直接返回給你了,而騰訊QQ的OAuth2.0接入里獲取Token是不會返回OpenId的,需要單獨訪問https://graph.qq.com/oauth2.0/me獲取OpenId,對于這個不同點我在封裝的騰訊QQ ParseAccessToken 方法里面已經(jīng)自動處理了,就是再次發(fā)起了一次獲取用戶Open Id的請求。

各位小伙伴注意啦:訪問授權(quán)Url返回的Code碼只能使用一次,否則會報下面這個錯誤:

{"error":"invalid_grant","error_code":21325,"request":"/oauth2/access_token","error_uri":"/oauth2/access_token","error_description":"invalid authorization code:2c2cb4e1f6b70650acbe1dad757ea6bb"}

二。 下面做了個測試的控制臺程序,ClientId和ClientSecret,CallbackUrl請改為自己的。

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using System.Diagnostics; 
  6.   
  7. using GeRenXing.OpenPlatform; 
  8.   
  9. namespace GeRenXing.OpenPlatform.Test 
  10.     class Program 
  11.     { 
  12.         private static Dictionary<String, IOAuthClient> m_oauthClients; 
  13.         static void Main(string[] args) 
  14.         { 
  15.             //初始化開放平臺客戶端(請?zhí)鎿Q成自己的ClientId,ClientScrert,CallbackUrl) 
  16.             m_oauthClients = new Dictionary<string, IOAuthClient>(); 
  17.             m_oauthClients["sinaweibo"] = new OpenPlatform.OAuthClient.SinaWeiBoClient("You ClientId""You ClientScrert""You Callback Url"); 
  18.             m_oauthClients["qq"] = new OpenPlatform.OAuthClient.TencentQQClient("You ClientId""You ClientScrert""You Callback Url"); 
  19.             m_oauthClients["taobao"] = new OpenPlatform.OAuthClient.TaoBaoClient("You ClientId""You ClientScrert""You Callback Url"); 
  20.   
  21.             //測試 
  22.             OAuthTest("sinaweibo"); 
  23.             //OAuthTest("qq"); 
  24.             //OAuthTest("taobao"); 
  25.   
  26.             Console.ReadKey(true); 
  27.         } 
  28.   
  29.         private static void OAuthTest(String platformCode) 
  30.         { 
  31.             String authorizeUrl = String.Empty; 
  32.             if (String.IsNullOrEmpty(platformCode)) platformCode = "sinaweibo"
  33.   
  34.             Console.WriteLine("OpenPlatform Request For " + platformCode); 
  35.             Console.WriteLine(""); 
  36.   
  37.             IOAuthClient oauthClient = m_oauthClients[platformCode]; 
  38.             oauthClient.Option.State = platformCode; 
  39.   
  40.             //***步:獲取開放平臺授權(quán)地址 
  41.             authorizeUrl = m_oauthClients[platformCode].GetAuthorizeUrl(ResponseType.Code); 
  42.             Console.WriteLine("Step 1 - OAuth2.0 for Redirect AuthorizeUrl: "); 
  43.             Console.WriteLine(authorizeUrl); 
  44.   
  45.             //第二步:打開IE瀏覽器獲取Code 
  46.             Process p = new Process(); 
  47.             ProcessStartInfo psi = new ProcessStartInfo(); 
  48.             psi.Arguments = authorizeUrl; 
  49.             psi.FileName = "C:\\Program Files\\Internet Explorer\\iexplore.exe"
  50.             p.StartInfo = psi; 
  51.             p.Start(); 
  52.   
  53.             Console.WriteLine(""); 
  54.             Console.WriteLine("OAuth2.0 Input Server Response Code"); 
  55.             String code = Console.ReadLine(); 
  56.   
  57.             //第三步:獲取開放平臺授權(quán)令牌 
  58.             oauthClient = m_oauthClients[platformCode]; 
  59.             AuthToken accessToken = oauthClient.GetAccessTokenByAuthorizationCode(code); 
  60.             if (accessToken != null
  61.             { 
  62.                 Console.WriteLine(""); 
  63.                 Console.WriteLine("Step 2 - OAuth2.0 for AccessToken: " + accessToken.AccessToken); 
  64.                 //輸出原始響應(yīng)數(shù)據(jù) 
  65.                 Console.WriteLine("GetAccessToken Raw Response : "); 
  66.                 Console.WriteLine(oauthClient.Token.TraceInfo); 
  67.   
  68.                 //第四步:調(diào)用開放平臺API,獲取開放平臺用戶信息 
  69.                 dynamic oauthProfile = oauthClient.User.GetUserInfo(); 
  70.   
  71.                 //輸出解析出來的用戶昵稱 
  72.                 Console.WriteLine(""); 
  73.                 Console.WriteLine("Step 3 - Call Open API UserInfo: "); 
  74.                 Console.WriteLine("UserInfo Nickname: " + oauthClient.Token.User.Nickname); 
  75.                 //輸出原始響應(yīng)數(shù)據(jù) 
  76.                 Console.WriteLine("GetUserInfo Raw Response : "); 
  77.                 Console.WriteLine(oauthClient.Token.TraceInfo); 
  78.             } 
  79.         } 
  80.     } 

三。 下面給出幾張測試的截圖:

SianWeiBo Oauth2.0
++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++
QQ OAuth2.0
++++++++++++++++++++++++++++++++++++++++++++++++++++

 

++++++++++++++++++++++++++++++++++++++++++++++++++++
TaoBao OAuth2.0
++++++++++++++++++++++++++++++++++++++++++++++++++++

 

責(zé)任編輯:張偉 來源: 博客園
相關(guān)推薦

2025-04-11 05:55:00

2015-03-21 06:41:50

oauth2.0監(jiān)控寶

2020-09-07 14:00:23

騰訊微博微信互聯(lián)網(wǎng)

2012-02-15 17:17:02

開放平臺

2013-06-17 10:39:32

淘寶阿里巴巴新浪微博

2012-11-20 10:36:38

新浪微博

2013-06-24 09:28:53

大數(shù)據(jù)挖掘

2021-08-02 06:49:46

OIDC認證協(xié)議

2020-09-14 17:05:16

騰訊微博新浪

2020-09-29 17:50:29

騰訊微博關(guān)閉

2012-02-15 17:09:34

開放平臺

2013-07-10 14:15:38

php新浪微博

2022-03-16 00:07:55

OAuth2授權(quán)框架

2021-11-19 06:50:17

OAuth協(xié)議授權(quán)

2015-09-24 18:08:50

微博架構(gòu)架構(gòu)演進架構(gòu)

2011-07-20 09:27:37

Scala

2015-01-21 15:28:16

Android源碼新浪微博

2011-12-08 16:10:18

2013-07-01 18:34:47

個推案例新浪微博

2011-07-22 10:38:55

HTC新浪Facebook
點贊
收藏

51CTO技術(shù)棧公眾號