首先, 要init 一個facebook oauthclient 的object 來
var oauthClient = new FacebookOAuthClient { AppId = FacebookApp.AppId };
appid 需要在
facebook developer apps中create 的,在這的FacebookApp是一個為了方便自己而設的一個global variables class
因為這個facebook 的login 是經由server side來處理的,所以需要用上一個webbrowser object,加上這個oauthclient object後就可以用來為自己的apps生產對應的login網址了
// 為apps 生產對應的login網址
Uri loginUrl = oauthClient.GetLoginUrl(loginParameters);
// 令用webbrowser object 來進行Login 的動作
this.webBrowser1.Navigate(loginUrl.AbsoluteUri);
設定不同的loginParameters
IDictionary loginParameters = new Dictionary();
// reponse_type 可以為an access token (token), an authorization code (code), or both (code token)
loginParameters["response_type"] = "token";
// display 的方法也有幾種page/popup/iframe
loginParameters["display"] = "popup";
if (!string.IsNullOrEmpty(FacebookApp.ExtendedPermissions))
{
loginParameters["scope"] = FacebookApp.ExtendedPermissions;
}
完整的code
var oauthClient = new FacebookOAuthClient { AppId = FacebookApp.AppId };
IDictionary<string object=""> loginParameters = new Dictionary<string object="">();
loginParameters["response_type"] = "token";
loginParameters["display"] = "popup";
// add the 'scope' parameter only if we have extendedPermissions.
if (!string.IsNullOrEmpty(FacebookApp.ExtendedPermissions))
loginParameters["scope"] = FacebookApp.ExtendedPermissions;
}
Uri loginUrl = oauthClient.GetLoginUrl(loginParameters);
this.webBrowser1.Navigate(loginUrl.AbsoluteUri);
this.tabControl1.SelectedIndex = 1;
用以上的code就可以輕鬆地寫出一個連接上facebook 的login呢 :)