facebook desktop Apps 筆記 - 3

經過一番努力後,重温, 終於拿到facebook 的access token, 之後就可以利用到這個token 建立一個facebook client 的object 來進行我們需要的行動了...

首先我地需要用到這個access token 建立一個facebookclient的object
var fb = new FacebookClient(this.FacebookOAResult.AccessToken);

之後我們就可以使用api 所提供的不同function 來作出update/提取facebook 上的資料了, 下面的簡單的sample, 可以很容易地就能夠把你facebook 上的名字拿出來用
dynamic result = fb.Get("me");
this.lbl_welcome.Text = "Welcome!" + result.name + ",";

這個result 入面當然不止名字那麼少的資訊了, 它入面也會包含著很多不同有用的東西, 但就要慢慢地去找, 我自己就喜歡用debugger, set 定個break point 之後就可以慢慢咁睇下有乜可以用了...

當然除了這一種liner 的方法外(用get 佢一定會等你個request 返來先會繼續下一步), 仲可以用到batchasync的, 這種做法你是不用等個request個回來, 就得進行下一步動作的...
fb.BatchAsync(new[]{
new FacebookBatchParameter(HttpMethod.Get, "/me/albums")
});

上面的code 是會把你的photo album 拿來

當然由於是async 的方式,我們是需要加上一些action 才可以接回個result 的
fb.PostCompleted += (o, e) =>
{
if (e.Cancelled)
{
  var cancellationError = e.Error;
}
else if (e.Error != null)
{
  // error occurred
  this.BeginInvoke(new MethodInvoker(
 () =>         {
   MessageBox.Show(e.Error.Message);
 }));
  }
  else
  {
 // the request was completed successfully
 dynamic result = e.GetResultData();

 this.BeginInvoke(new MethodInvoker(
   () =>             {
    // always remember to check individual errors for the batch requests.
    if (result[0] is Exception)
   MessageBox.Show(((Exception)result[0]).Message);
    dynamic first = result[0];
  ...
   }));
 }
  };

用上以上兩種方法,就可以很容易地拿到你所需要的東西...

0 回應:

Post a Comment