關於使用QQ、新浪微博、騰訊微博等第三方登陸網站的開發過程(一)

(一). 實現QQ登陸本身開發的網站html

  首先須要在http://connect.qq.com/申請一個網站應用的 APP ID 和APP KEY。申請流程以下:web

  1. 登陸QQ互聯以後,註冊成爲開發者,填寫相關資料,根據本身選擇公司或者我的都行post

  2. 在【管理中心】點擊建立應用測試

  3. 填寫應用的相關信息,填寫網站以後記得根據提示進行網站的驗證網站

  4. 填寫回調地址,其實回調地址能夠本身定義(若是是本地測試,能夠用IP地址)ui

  5. 以上步驟完成以後,就會獲取到APP ID 和APP KEYthis

接下來就是準備作開發了:spa

  過程是參照博客園的 張善友 博友的文章來作的,原文地址:http://www.cnblogs.com/shanyou/archive/2012/02/05/2338797.html3d

  1. 首先下載 SDK(http://opensns.codeplex.com/)。SDK依賴於Newtonsoft.Json和RestSharp兩個程序集,具體能夠參考使用RestSharp 庫消費Restful Service。 主要是兩個類QzoneContext(QQ登錄的上下文數據)  和 QOpenClient (QQ互聯API入口),其餘類主要是模型,配置類。code

  2. 配置文件中加入以下內容:

 1 <configSections>
 2     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
 3 
 4     <sectionGroup name="QQSectionGroup">
 5       <section name="QzoneSection" type="System.Configuration.NameValueSectionHandler,System, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" />
 6     </sectionGroup>
 7     
 8   </configSections>
 9 
10   <QQSectionGroup>
11     <QzoneSection>
12       <add key="AppKey" value="" />
13       <add key="AppSecret" value="" />
14       <add key="CallBackURI" value="http://www.xxxxxx.com/QQCallBack.html" />
15       <add key="AuthorizeURL" value="https://graph.qq.com/oauth2.0/authorize" />
16     </QzoneSection>
17   </QQSectionGroup>

  3. 我這裏是用 MVC 模式,後臺代碼以下:  

 1         public ActionResult Index()
 2         {
 3             //this.Session[RETURNURL] = returnUrl;
 4             var context = new QzoneContext();
 5             string state = Guid.NewGuid().ToString().Replace("-", "");
 6             Session["requeststate"] = state;
 7             string scope = "get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr";
 8             model.authenticationUrl = context.GetAuthorizationUrl(state, scope); 
 9 
10             return View(model);
11         }        

  前臺頁面以下:

@model dynamic
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <meta property="wb:webmaster" content="9ff88f2c5fc7bf93" />
    <title>Index</title>
</head>
<body>
    <div>
        用戶名:<input type="text" /><br />
        密 碼:<input type="password" /><br />
        <input type="button" value="登陸" />
    </div>
    <div>
        <a href="@Model.authenticationUrl"><img src="~/Images/qq.png" />QQ帳號登陸</a>
    </div>
</body>
</html>

  測試界面以下:點擊後可實現QQ登陸

  這樣雖然實現了QQ 登陸,可是隻能用你本身的開發者的QQ帳號來登陸,若是要使用任意QQ帳號登陸的話,須要應用經過TX審覈。。。

注意:

  若是是本地測試,IIS 發佈的網站端口修改成80 ,修改 C:\Windows\System32\drivers\etc 中的hosts文件,添加IIS中的網站IP和對應域名:

相關文章
相關標籤/搜索