<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Dev Guide: js | css | HTML(DOM) WEBCAST .NET4 Lib Web.config-WCF MVC3-EF4.1 T-SQL-(2012)

      OAuth 2.0 - dotNetDR_OAuth2微博API訪問組件使用教程

      I:組件類庫的引用安裝

      使用NuGet安裝dotNetDR_OAuth2類庫,然后點擊安裝按鈕image

      或者你可以利用NuGet程序包管理器控制臺輸入 Install-Package dotNetDR_OAuth2
      image

      當你看到項目當中已經包含dotNetDR_OAuth2的引用時,將意味著你已順利完成前期安裝工作,接下來我將為大家介紹如何使用它。

      注意事項:該類庫只能在.NET Framework 4.0及以上的環境當中使用,因為類庫內部大量用了dynamic新特性。如果你是使用.NET 2.0~3.5的朋友,請另行尋找其他sdk?;蛘邆€人建議您把應用升級到.NET 4.0平臺上。

      II:在web.config中配置你的AppKey/AppSecret

      在web.config中設置AppKey、AppSecret時,請按照以下的代碼去改寫你的key/secret。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
      
        <appSettings>
          <add key="sina.weibo.appkey" value="新浪微博appkey" />
          <add key="sina.weibo.appsecret" value="新浪微博appsecret" />
      
          <add key="tencent.weibo.appkey" value="騰訊微博appkey" />
          <add key="tencent.weibo.appsecret" value="騰訊微博appsecret" />
        </appSettings>
      
        <system.web>
          <!-- 配置省略 -->
        </system.web>
      
      </configuration>

      到了這一步,你將完成所有的組件需要配置的準備工作,在此暗暗高興一下,作者寫的組件配置和使用起來都非常簡單,也不見得非要像官方提供的一大堆自定義的配置節,讓人捉拿不透,但是各有利弊就看您怎么去衡量它了。

      接下來就可以去真槍實彈玩OAuth2了!

      III:編寫OAuth2代碼

      首先,在編寫代碼之前我們需要建立好一個測試環境,具體原因是因為你的appkey是對應一個域名的,而我們需要做的是在系統hosts,位置位于C:\Windows\System32\drivers\etc\hosts win7用戶需要以管理員身份打開,然后將你的appkey對應的域名前加127.0.0.1添加上去然后保存。
      image

      然后在你的web應用程序項目里面設置一下項目屬性
      image

      Ok!第一步,我們需要提供一個微博登陸的功能。所以在此需要在頁面上添加2個<a />標記,一個跳到新浪微博,另一個跳到騰訊微博,所以我們需要設置他們的href屬性。如下圖
      image

      View頁面代碼如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      @{
          ViewBag.Title = "Home Page";
      }
      @model dynamic
      
      <h2>dotNetDR_OAuth2 微博API訪問組件示例</h2>
      <div>
          <hr />
          <div>
              <p><img src="http://www.rzrgm.cn/Content/Images/xlwb.gif" />新浪部分</p>
              <a href="@Model.SinaLink">登陸</a> <text>|</text>
              <a href="http://open.t.sina.com.cn/wiki/API%E6%96%87%E6%A1%A3_V2">官方API</a> <text>|</text>
              <a href="http://open.weibo.com/tools/console">官方調試工具</a>
          </div>
              
          <hr />
          <div>
              <p><img src="http://www.rzrgm.cn/Content/Images/txwb.gif" />騰訊部分</p>
              <a href="@Model.TencentLink">登陸</a> <text>|</text>
              <a href="http://wiki.open.t.qq.com/index.php/API%E6%96%87%E6%A1%A3">官方API</a> <text>|</text>
              <a href="http://open.t.qq.com/auth_tool/main.html#10">官方調試工具(誰用誰蛋疼)</a>
          </div>
              
          <hr />
          <div>
              <p><img src="http://www.rzrgm.cn/Content/Images/myoauth2logo.png" /></p>
          </div>
      </div>

       

      控制器代碼如下

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Web;
      using System.Web.Mvc;
      using System.Dynamic;
      
      //引入dotNetDR_OAuth2組件命名空間
      using dotNetDR_OAuth2;
      using dotNetDR_OAuth2.AccessToken;
      
      namespace dotNetDR_OAuth2.Sample.MVC.Controllers
      {
          public class HomeController : Controller
          {
              //獲取新浪、騰訊的IAuthorizationCodeBase接口實例
               private IAuthorizationCodeBase sina = Uf.C(CtorAT.Sina);
              private IAuthorizationCodeBase tencent = Uf.C(CtorAT.Tencent);
      
              public ActionResult Index()
              {
                  dynamic model = new ExpandoObject();
      
                  //生成主機頭例如:http://www.yourhost.com:8081 (注:默認80端口則不會顯示:80)
                  var hostPath = AccessTokenToolkit.GenerateHostPath(Request.Url);
      
                  //定義授權成功后返回的url地址
                    var sinaRedirectUrl = hostPath + Url.Action("Index", "Sina");
                  var tencentRedirectUrl = hostPath + Url.Action("Index", "Tencent");
      
                  //設置超級鏈接
                    model.SinaLink = sina.GenerateCodeUrl(sinaRedirectUrl);
                  model.TencentLink = tencent.GenerateCodeUrl(tencentRedirectUrl);
      
                  Session.Remove("accessToken");
      
                  return View(model);
              }
      
              public ActionResult About()
              {
                  return View();
              }
          }
      }

      在這個過程當中,你需要引入OAuth2組件的2個命名空間如下:
      image

      然后初始化2個IAuthorizationCodeBase接口
      image

      接下來,用戶將會被引導到微博官方的登陸頁面之中!此時第三方應用收集不到用戶的密碼賬號信息!
      image
      在上圖中填寫正確的賬戶密碼并驗證成功后,微博網站會跳轉回我們之前設置的回調頁url上。屆時我們需要把拿到的code去換access token了!看如下代碼:
      image
      image
      僅僅通過簡單幾步,使用OAuth2組件的朋友們就可以順利地獲取到Access token對象了。

      至此關于在授權或者在調用API過程中可能引發的錯誤異常,OAuth2組件的api類接口有提供一個處理異常的方法實現:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      namespace dotNetDR_OAuth2.APIs
      {
          /// <summary>
          /// 訪問OAuth2協議API的接口
          /// </summary>
          public interface IApi
          {
              /* other code */
      
              #region HandlerError
              /// <summary>
              /// 返回的json是否為錯誤
              /// </summary>
              /// <typeparam name="T">此泛型請傳入實現IError的具體類型(如SinaError,TencentError)</typeparam>
              /// <param name="obj">接口返回的結果</param>
              /// <param name="error">若此方法返回true則此輸出參數將不為null</param>
              /// <returns></returns>
              bool WasError<T>(dynamic obj, out T error) where T : class, IError;
      
              /// <summary>
              /// 調用api接口時引發異常的處理方式
              /// </summary>
              /// <typeparam name="T">此泛型請傳入實現IError的具體類型(如SinaError,TencentError)</typeparam>
              /// <param name="ex">調用api拋出的異常</param>
              /// <param name="context">當前http上下文</param>
              /// <returns></returns>
              T HandlerException<T>(Exception ex, HttpContextBase context) where T : class, IError;
              #endregion
          }   
      }

      接著,我們開始介紹調用API的具體使用方法。

      就一般正常訪問而言。我們對微博API的調用分為如下幾個主要知識點:
      image
      因此我利用一個新浪微博當中比較常見的讀取公共微博接口來做一個簡單說明
      jjfly

      下面列出一個調用新浪微博users/show API的接口示例:
      image
      由于返回的結果是.NET 4.0的dynamic類型,所以在View視圖頁上面。我們可以直接動態寫出字段的屬性:
      image
      image
      更多詳細的類庫使用說明,請查看xml文件。當然Visual Studio也會有相應的智能提示:image

      image

      目前你可以通過訪問dotNetDR_OAuth2在codeplex項目主頁去獲取它的源代碼。

       

      IV:關于內置的Debug Tool介紹

      在dotNetDR_OAuth2類庫項目內包含一個用于測試的DebugTool
      image
      在使用它之前你首先要在web.config內設置好appkey/appsecret及windows的hotst系統文件,具體步驟已經在上文中一一列出,在此不在重述!因為該工具是用ASP.NET MVC3編寫的,所以你的VS也需要支持MVC3的開發。對此向使用web forms的同學們致歉!作者沒有打算寫web forms版本。

      現在開始運行起來了,首先我們看到主頁
      image
      然后我們我們按新浪微博部分下面的[登陸]連接輸入完正確的賬戶密碼后,跳轉回本站時你會發現右上角的導航會多出一個選項卡。
      image
      然后點擊上圖中的[api調試工具]
      image
      上圖示例中作者示范了調用新浪users/show.json的接口并添加screen_name = "xx",然后按Call按鈕后看到Returns文本框內出現調用成功返回的內容了。
      從中可以了解到這個DebugTool的訪問令牌和令牌的微博類型是自動設置好的,你僅需要填寫調用的api的url地址和設置好api具體的參數然后按Call按鈕,就會有相應的json返回結果通過ajax請求填充到Returns文本框里面了。

      V:提交bug & 技術支持

      所有由調用本組件引發的bug都可以通過email,qq群(項目主頁有聯系email及qq群的信息)的方式與組件作者取得聯系。

       


      本文到此結束,謝謝!

      一分耕耘,期待換取您的一個推薦!

      posted @ 2012-09-20 10:07  dotNetDR_  閱讀(4244)  評論(18)    收藏  舉報
      主站蜘蛛池模板: 日韩精品成人一区二区三| 中文国产成人精品久久不卡| 国产一区日韩二区三区| 国产精品综合一区二区三区| 少妇人妻偷人免费观看| 国产在线无码不卡播放| 欧美寡妇xxxx黑人猛交| av午夜福利亚洲精品福利| 91亚洲免费视频| 国产盗摄xxxx视频xxxx| 国产精品成人免费视频网站京东| 国产永久免费高清在线| 国产妇女馒头高清泬20p多| 久热这里有精品视频播放| 国产成人精品亚洲午夜麻豆| 制服丝袜国产精品| 无码专区 人妻系列 在线| 极品少妇的粉嫩小泬看片| 亚洲国产成人一区二区在线 | 老司机精品成人无码AV| 亚洲国产精品一区在线看| 四虎www永久在线精品| 国产午夜精品一区二区三区漫画| 国产剧情视频一区二区麻豆| 欧美videosdesexo吹潮| 东京热无码国产精品| 国内综合精品午夜久久资源 | 又大又粗又爽的少妇免费视频| 国产精品免费中文字幕| 丁香五香天堂网| 性色欲情网站iwww九文堂 | 日本欧美一区二区三区在线播放| 永久不封国产av毛片| 久久天天躁狠狠躁夜夜躁2020| 亚洲欧美高清在线精品一区二区| 性色在线视频精品| 亚洲精品国产精品国在线| 苍井空毛片精品久久久| 亚洲综合精品中文字幕| 国产免费高清69式视频在线观看| 亚洲熟妇熟女久久精品一区|