【问题标题】:Facebook C# sdk batch request method return empty data arrayFacebook C# sdk 批量请求方法返回空数据数组
【发布时间】:2012-03-26 06:22:49
【问题描述】:

我正在创建 Facebook 应用程序,该应用程序可以为用户页面获取多个指标的见解。前任。用于“page_active_users”和“page_active_users”的批量请求。 我正在使用 Facebook C# SDK。但无法从 Facebook 洞察 (GraphAPI) 中获取数据。

我使用了 5 种不同的方式来获取数据,但没有成功。通过在浏览器中使用 Graph API 方法显示页面的数据,但在批量请求中它返回空数据数组。

//type1

var para1 = new FacebookBatchParameter(HttpMethod.Get, "MyPageId/insights/") 
{ 
  Data = new { access_token = aToken, since = "2012-01-01", metric = "page_active_users" } 
};

//类型2

    var para2 = new FacebookBatchParameter(HttpMethod.Get, "fql/", new
    {
      q = new[]{

"SELECT value,end_time FROM insights WHERE object_id=MyPageId AND metric='page_active_users' AND end_time=end_time_date('2012-01-01') AND period=86400"
           }
    }) { Data = new { access_token = aToken } };

//类型3

 var para3 = new FacebookBatchParameter().Query(
                    "SELECT value,end_time FROM insights WHERE object_id=MyPageId AND metric='page_active_users' AND end_time=end_time_date('2012-01-01') AND period=86400");

//类型4

var para4 = new FacebookBatchParameter
            {
                Path = "MyPageId/insights/",
                //Parameters = new {since = "2012-01-01"},
                Data = new { access_token = aToken, since = "2012-01-01", metric = "page_active_users" },
                HttpMethod = HttpMethod.Get
            };

//类型5

var para5 = new FacebookBatchParameter
            {
                Path = "MyPageId/insights/page_active_users?since=2012-01-01",
                //Parameters = new {since = "2012-01-01"},
                Data = new { access_token = aToken },
                HttpMethod = HttpMethod.Get
            };

//Executed all above type by passing it to below method one by one.But always return empty data array while data is exists on Facebook which I tested using Grap API tool.

var result = client.Batch(para1-5);

任何帮助表示赞赏。 先谢谢了。 达门德拉迷雾

【问题讨论】:

    标签: facebook facebook-graph-api facebook-c#-sdk


    【解决方案1】:

    我自己找到了解决方案。希望这会对某人有所帮助。这是解决方案。

    ///I created an enum for list of metrics that facebook is providing
    public enum FacebookMatricType
    {
            page_active_users,
            page_active_users_locale
    }
    
    //Created a list of Facebook batch request for each metric using LINQ to Object and //concatenate string using string.format method.
    
    var batchParameters = (from FacebookMatricType matricType in Enum.GetValues(typeof (FacebookMatricType))
                                       select new object[]
                                                  {
                                                     pPageAccessToken,"insights",matricType.ToString(),pFromDate.Date.ToString("yyyy-MM-dd"),pPageId
                                                  }
                                       into objectParamter
                                       select new FacebookBatchParameter
                                                  {
                                                      HttpMethod = HttpMethod.Get,
                                                      Path =
                                                          string.Format(
                                                              "https://graph.facebook.com/{0}/{1}/{2}?since={3}&access_token={4}",
                                                              objectParamter)
                                                  }).ToList();
    
    //Once I get the list of request I execute it using facebook web client using C# SDK.
    
    var facebookClient = new FacebookClient(pProfileAccessToken);
    var results = facebookClient.Batch(batchParameters.ToArray()); 
    //Results are ready to deserialize.
    

    谢谢。 ;) 达门德拉迷雾

    【讨论】:

    • 你知道 batchParameters 的最大长度吗?我的意思是我们可以在一个 batchParameters 中插入多少 FacebookBatchParameter?
    • 不确定,但我认为它限制为 50。你尝试了多少?
    • 我正在尝试 20 并且效果很好。但我不会找到一些关于限制的文档。
    • @Oleh 这是官方批量请求文档,其中提到了速率限制FB Batch Request
    • 感谢@AshwiniGupta,但 6 年前他们还没有这样的信息)
    猜你喜欢
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多