当前位置: 首页>>代码示例>>C#>>正文


C# FacebookClient.Batch方法代码示例

本文整理汇总了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;
            }
        }
开发者ID:Adron,项目名称:Regiztry,代码行数:55,代码来源:BatchRequests.cs

示例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;
            }
        }
开发者ID:Adron,项目名称:Regiztry,代码行数:48,代码来源:BatchRequests.cs

示例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];
                                };
        }
开发者ID:prabirshrestha,项目名称:NancyFacebookSample,代码行数:79,代码来源:CanvasModule.cs

示例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);
            }
        }
开发者ID:Amadoflimd,项目名称:wowsocial-guild-fb,代码行数:45,代码来源:FacebookInfoDialog.cs


注:本文中的Facebook.FacebookClient.Batch方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。