本文整理汇总了C#中Facebook.FacebookClient.Batch方法的典型用法代码示例。如果您正苦于以下问题:C# FacebookClient.Batch方法的具体用法?C# FacebookClient.Batch怎么用?C# FacebookClient.Batch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Facebook.FacebookClient
的用法示例。
在下文中一共展示了FacebookClient.Batch方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BatchRequest
public static void BatchRequest(string accessToken)
{
try
{
var fb = new FacebookClient(accessToken);
var result = (IList<object>)fb.Batch(
new FacebookBatchParameter("me"),
new FacebookBatchParameter(HttpMethod.Get, "me/friends", new { limit = 10 }));
var result0 = result[0];
var result1 = result[1];
// Note: Always check first if each result set is an exeption.
if (result0 is Exception)
{
var ex = (Exception)result0;
// Note: make sure to handle this exception.
throw ex;
}
else
{
var me = (IDictionary<string, object>)result0;
var name = (string)me["name"];
Console.WriteLine("Hi {0}", name);
}
Console.WriteLine();
if (result1 is Exception)
{
var ex = (Exception)result1;
// Note: make sure to handle this exception.
throw ex;
}
else
{
var friends = (IList<object>)((IDictionary<string, object>)result1)["data"];
Console.WriteLine("Some of your friends: ");
foreach (IDictionary<string, object> friend in friends)
{
Console.WriteLine(friend["name"]);
}
}
}
catch (FacebookApiException ex)
{
// Note: make sure to handle this exception.
throw;
}
}
示例2: BatchRequestWithFql
public static void BatchRequestWithFql(string accessToken)
{
try
{
var fb = new FacebookClient(accessToken);
var result = (IList<object>)fb.Batch(
new FacebookBatchParameter("/4"),
new FacebookBatchParameter().Query("SELECT name FROM user WHERE uid=me()"));
var result0 = result[0];
var result1 = result[1];
// Note: Always check first if each result set is an exeption.
if (result0 is Exception)
{
var ex = (Exception)result0;
// Note: make sure to handle this exception.
throw ex;
}
else
{
Console.WriteLine("Batch Result 0: {0}", result0);
}
Console.WriteLine();
if (result1 is Exception)
{
var ex = (Exception)result1;
// Note: make sure to handle this exception.
throw ex;
}
else
{
var fqlResult = (IList<object>)result1;
var fqlResult1 = (IDictionary<string, object>) fqlResult[0];
Console.WriteLine("Hi {0}", fqlResult1["name"]);
}
}
catch (FacebookApiException ex)
{
// Note: make sure to handle this exception.
throw;
}
}
示例3: CanvasModule
public CanvasModule(IFacebookApplication fbApp, FacebookClient fb)
{
this.HandleFacebookOAuthDialogError(fbApp.AppId, scope: "user_about_me,read_stream");
this.DropFacebookQueryStrings();
Post["/"] = _ =>
{
var canvasPageUrl = Context.FacebookCanvasPageUrl(fbApp.CanvasPage);
return View["index", canvasPageUrl];
};
Post["/feed"] = _ =>
{
var perms = Context.FacebooPermissions();
if (!perms.Intersect(new[] { "user_about_me", "read_stream" }).Any())
return Response.AsFacebookLogin(fbApp.AppId, scope: "user_about_me,read_stream");
dynamic model = new JsonObject();
model.canvasPageUrl = Context.FacebookCanvasPageUrl(fbApp.CanvasPage);
model.facebookLoginUrl = Context.FacebookLoginUrl(fbApp.AppId, scope: "user_about_me,read_stream");
if (perms.Contains("user_about_me"))
{
dynamic result = fb.Get("me?fields=picture,name");
model.name = result.name;
model.picture = result.picture;
}
if (perms.Contains("read_stream"))
{
dynamic result = fb.Get("me/feed");
model.feeds = result;
}
return View["Feed", model];
};
Post["/feed/batch"] = _ =>
{
var perms = Context.FacebooPermissions();
if (!perms.Intersect(new[] { "user_about_me", "read_stream" }).Any())
return Response.AsFacebookLogin(fbApp.AppId, scope: "user_about_me,read_stream");
dynamic model = new JsonObject();
model.canvasPageUrl = Context.FacebookCanvasPageUrl(fbApp.CanvasPage);
model.facebookLoginUrl = Context.FacebookLoginUrl(fbApp.AppId, scope: "user_about_me,read_stream");
var bp = new Dictionary<string, Tuple<int, FacebookBatchParameter>>();
int bpi = 0;
if (perms.Contains("user_about_me"))
bp.Add("me", new Tuple<int, FacebookBatchParameter>(bpi++, new FacebookBatchParameter("me?fields=picture,name")));
if (perms.Contains("read_stream"))
bp.Add("feeds", new Tuple<int, FacebookBatchParameter>(bpi++, new FacebookBatchParameter("me/feed")));
dynamic result = fb.Batch(bp.Values.Select(t => t.Item2).ToArray());
if (bp.ContainsKey("me"))
{
dynamic me = result[bp["me"].Item1];
if (!(me is Exception))
{
model.name = me.name;
model.picture = me.picture;
}
}
if (bp.ContainsKey("feeds"))
{
dynamic feeds = result[bp["feeds"].Item1];
if (!(feeds is Exception))
model.feeds = feeds;
}
return View["Feed", model];
};
}
示例4: BatchRequestExample
private void BatchRequestExample()
{
try
{
var fb = new FacebookClient(_accessToken);
dynamic result = fb.Batch(
new FacebookBatchParameter { HttpMethod = HttpMethod.Get, Path = "/4" },
new FacebookBatchParameter(HttpMethod.Get, "/me/friend", new Dictionary<string, object> { { "limit", 10 } }), // this should throw error
new FacebookBatchParameter("/me/friends", new { limit = 1 }) { Data = new { name = "one-friend", omit_response_on_success = false } }, // use Data to add additional parameters that doesn't exist
new FacebookBatchParameter { Parameters = new { ids = "{result=one-friend:$.data.0.id}" } },
new FacebookBatchParameter("{result=one-friend:$.data.0.id}/feed", new { limit = 5 }),
new FacebookBatchParameter().Query("SELECT name FROM user WHERE uid="), // fql
new FacebookBatchParameter().Query("SELECT first_name FROM user WHERE uid=me()", "SELECT last_name FROM user WHERE uid=me()") // fql multi-query
//,new FacebookBatchParameter(HttpMethod.Post, "/me/feed", new { message = "test status update" })
);
// 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];
string name = first.name;
// note: incase the omit_response_on_success = true, result[x] == null
// for this example, just comment it out.
//if (result[1] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
//if (result[2] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
//if (result[3] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
//if (result[4] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
//if (result[5] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
//if (result[6] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
//if (result[7] is Exception)
// MessageBox.Show(((Exception)result[1]).Message);
}
catch (FacebookApiException ex)
{
//MessageBox.Show(ex.Message);
}
}