facebook desktop Apps 筆記 - 1

之前為了方便大量upload相上facebook 而寫了自己的第一個facebook apps,現在為了方便之後可能再寫facebook desktop apps時可以快一點上手(有時真係自己睇番d code 都要諗一陣先會記得點解d code 會係咁),所有就借這記下一些筆記重點,等自己將來可以快一點回憶起為何要這樣做 :)

首先, 要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;
}

login的scope, 其實就是至你想apps所需要的permission設定,詳情都係要睇返facebook 的api

完整的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呢 :)

0 回應:

Post a Comment