成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

需要源代碼的小伙伴請猛戳這里下載,需要已經編譯好Dll的小伙伴請猛戳這里下載

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

-- sinaweibo OAuth2.0 --

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

-- qq OAuth2.0 --

申請接入OAuth2合作地址: http://connect.qq.com (所謂的QQ互聯,貌似還有一個http://open.qq.com,但這個我還木有用過,就先用QQ互聯吧反正是可以登陸)
授權Url: http://openapi.qzone.qq.com/oauth/show?which=Login&display=pc&client_id=你的ClientId&redirect_uri=你的回調Url&response_type=code&display=default%20&state=qq

-- taobao OAuth2.0 --

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

-- WeiXin OAuth2.0 --

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

下面開始給dotNET平臺的小伙伴們發福利啦,封裝了一個類實現了接入到新浪微博,騰訊QQ,淘寶,和獲取用戶信息,就實現了下面的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的請自行擴展,也可以直接調用IOAuthClient的Get和Post方法直接傳遞參數快速訪問api。

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

各位小伙伴注意啦:訪問授權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.             //初始化開放平臺客戶端(請替換成自己的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.             //***步:獲取開放平臺授權地址 
  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.             //第三步:獲取開放平臺授權令牌 
  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.                 //輸出原始響應數據 
  65.                 Console.WriteLine("GetAccessToken Raw Response : "); 
  66.                 Console.WriteLine(oauthClient.Token.TraceInfo); 
  67.   
  68.                 //第四步:調用開放平臺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.                 //輸出原始響應數據 
  76.                 Console.WriteLine("GetUserInfo Raw Response : "); 
  77.                 Console.WriteLine(oauthClient.Token.TraceInfo); 
  78.             } 
  79.         } 
  80.     } 

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

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

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

 

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

 

責任編輯:張偉 來源: 博客園
相關推薦

2025-04-11 05:55:00

2020-09-07 14:00:23

騰訊微博微信互聯網

2015-03-21 06:41:50

oauth2.0監控寶

2012-02-15 17:17:02

開放平臺

2013-06-17 10:39:32

淘寶阿里巴巴新浪微博

2012-11-20 10:36:38

新浪微博

2013-06-24 09:28:53

大數據挖掘

2021-08-02 06:49:46

OIDC認證協議

2020-09-14 17:05:16

騰訊微博新浪

2020-09-29 17:50:29

騰訊微博關閉

2012-02-15 17:09:34

開放平臺

2013-07-10 14:15:38

php新浪微博

2015-09-24 18:08:50

微博架構架構演進架構

2015-01-21 15:28:16

Android源碼新浪微博

2011-12-08 16:10:18

2013-07-01 18:34:47

個推案例新浪微博

2011-07-20 09:27:37

Scala

2022-03-16 00:07:55

OAuth2授權框架

2021-11-19 06:50:17

OAuth協議授權

2011-07-22 10:38:55

HTC新浪Facebook
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人毛片在线视频 | a级毛片基地 | 亚洲一区视频在线播放 | 丝袜美腿一区 | 成人h免费观看视频 | 午夜在线影院 | 超碰国产在线 | 欧美综合精品 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美日韩中文字幕 | 欧美日韩在线国产 | 91porn在线观看| 蜜桃av一区二区三区 | 国产精品久久久久久福利一牛影视 | 在线不卡一区 | 成人深夜福利 | 国产精品99一区二区 | 毛片一区二区三区 | 精品伦精品一区二区三区视频 | 欧美一区2区三区3区公司 | 99re国产精品 | 99热国产在线播放 | 亚洲国产精品人人爽夜夜爽 | 精品久久一区 | 国产四区 | 国产亚洲欧美日韩精品一区二区三区 | 9999视频 | 成人福利电影 | 精品一区国产 | 在线视频中文字幕 | 91婷婷韩国欧美一区二区 | 成人精品久久 | 中文字幕一区在线 | 中国美女一级黄色片 | 日本精a在线观看 | 欧美日韩久久精品 | 成人激情视频在线 | 国产98色在线 | 中文字幕在线视频免费观看 | 国产一区高清 | 久久久久1 |