【问题标题】:normalizing results from the graph or fql.query标准化图表或 fql.query 的结果
【发布时间】:2011-12-22 19:11:57
【问题描述】:

我正在运行一个应用程序,它同时调用图形和 fql.query 以获取洞察信息。 (它恰好模拟了几十个应用程序并提取统计数据)我在查询时得到了几种不同的格式,我想知道是否有更好的方法来“标准化”结果?

如果在 SDK 中有这样的东西会很好,因为 Facebook 格式/数据一直在变化。我在哪里提出 SDK 请求?

获取键值的代码--- [代码]

public function saveResults($application = null, $result = array()) 
{
// graph insights are under a data key 
if(isset($result['data'])) {
    $this->saveResults($application, $result['data']);
}
// graph insights are under a values array  
elseif(isset($result['values'])) { 
    foreach($result['values'] as $k => $v) {
        $this->saveResult($application, $result['name'], $v['value'], $result['period'], $v['end_time']); 
    }
}
// fql.query results have a metric and value
elseif(isset($result['metric'])) {
    $this->saveResult($application, $result['metric'], $result['value'], $result['period'], $result['end_time']); 
}
// otherwise save key values 
elseif(is_array($result)) { 
    foreach($result as $key => $val) {
        if(is_numeric($key) && is_array($val)) {
            $this->saveResults($application, $val);
        }
        else {
            $this->saveResult($application, $key, $val); 
        }
    }
}
}

[/代码]

来自 fql 的结果 --

=> Array
        (
            [0] => Array
                (
                    [app_id] => 1248...
                    [api_key] => 1248...
                    [canvas_name] => ABC123
                    [display_name] => ABC123
                    [company_name] => 
                    [developers] => Array
                        (
                        )

                    [restriction_info] => Array
                        (
                        )

                    [daily_active_users] => 0
                    [weekly_active_users] => 0
                    [monthly_active_users] => 8
                )

        )
=> Array
        (
            [0] => Array
                (
                    [metric] => application_canvas_views
                    [value] => 0
                    [period] => 86400
                    [end_time] => 1317538800
                )

        )

图表结果--

 => Array
        (
            [id] => 1248...
            [name] => ABC123
            [picture] => https://fbcdn-profile...
            [link] => http://www.facebook.com/ABC123
            [likes] => 58450
            [category] => Product/service
            [website] => http://www.ABC123..

 => Array
        (
            [data] => Array
                (
                    [0] => Array
                        (
                            [id] => ABC123.../insights/page_like_adds/day
                            [name] => page_like_adds
                            [period] => day
                            [values] => Array
                                (
                                    [0] => Array
                                        (
                                            [value] => 60
                                            [end_time] => 2011-01-01T08:00:00+0000
                                        )

                                    [1] => Array
                                        (
                                            [value] => 15
                                            [end_time] => 2011-01-02T08:00:00+0000
                                        )

                                    [2] => Array
                                        (
                                            [value] => 2

【问题讨论】:

    标签: facebook-graph-api multidimensional-array facebook-fql facebook-php-sdk


    【解决方案1】:

    根据我的经验,从 FQL 表返回的“对象属性”与新图形 API 对象的“对象属性”之间没有 1:1 的相关性。 FQL 表上的属性比我所看到的图表中的属性要多得多。试图把它们绑在一起就像给猫洗澡一样。可以,但是会很痛!!

    我的建议是根据项目要求确定您要完成的任务,然后确定 FQL 或 Graph API 是您达到每个要求的最佳途径。使用图表可能更容易完成一项要求,而使用 FQL 可能更容易完成另一项要求。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-21
      • 2012-07-02
      • 1970-01-01
      • 2011-08-26
      • 2016-04-30
      • 2019-08-02
      • 2014-03-10
      • 2023-04-09
      相关资源
      最近更新 更多