【问题标题】:facebook upcoming birthday fetching only this yearfacebook 即将到来的生日仅在今年
【发布时间】:2012-10-22 10:51:08
【问题描述】:

我想获取从当前日期到明年当前日期的 Facebook 朋友生日。 todate 是 364 天后到现在的日期,以 m/d 为单位。为此,第一个 fql 用于检索从 1 月到当前日期的数据,第二个用于获取从当前日期到 12 月 31 日的数据。我想在接下来的 11 个月和 29 天为即将到来的生日应用分页。以下查询正在工作并获取数据。谁能告诉我最好的方法。任何建议将不胜感激。

$fromDate = date('m/d');
$past_birthdays = $facebook->api(array(
                'method' => 'fql.query',
                'query' => "SELECT uid, name, birthday, birthday_date,substr(birthday_date,0,3) FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND birthday_date<'$toDate' AND birthday_date>='01/01' order by birthday_date",
                'access_token' => $accessToken
                    ));
if ($toDate > $fromDate) {
            $condition = " AND birthday_date<'$toDate'";
        } else {
            $condition = "";
        }

$upcoming_birthdays = $facebook->api(array(
                'method' => 'fql.query',
                'query' => "SELECT uid, name, birthday, birthday_date,substr(birthday_date,0,3) FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND birthday_date>='$fromDate' $condition order by birthday_date",
                'access_token' => $accessToken
                    ));

【问题讨论】:

    标签: facebook-fql facebook-php-sdk multi-query


    【解决方案1】:

    在您的情况下,如果您在查询中提供限制,那么我在 facebook api explorer 上检查过,然后它的输出不一致,解决您的问题的最佳方法是加载整个生日 在数组中列出并在插槽中显示。

    $fromDate = date('m/d');
            $past_birthdays = "";
            $upcoming_birthdays = $facebook->api(array(
                'method' => 'fql.query',
                'query' => "SELECT uid, name, birthday, birthday_date, substr(birthday_date, 0,3) from user where uid in (select uid2 from friend where uid1=me()) and birthday_date >='$fromDate' order by birthday_date Limit 0,500",
                'access_token' => $accessToken
                    ));
            $no = count($upcoming_birthdays); //exit;
            if ($no < 500) {
                $Limit2 = 500 - $no;
                $past_birthdays = $facebook->api(array(
                    'method' => 'fql.query',
                    'query' => "SELECT uid, name, birthday, birthday_date, substr(birthday_date, 0,3) from user where uid in (select uid2 from friend where uid1=me()) and birthday_date >='01/01' and birthday_date <= '$fromDate' order by birthday_date Limit 0,$Limit2",
                    'access_token' => $accessToken
                        ));
                //echo count($past_birthdays);exit;
                $upcoming_birthdays = array_merge($upcoming_birthdays, $past_birthdays);
    

    不需要todate,因为您要获取全年。此ccode 仅获取500,但运行全年查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      相关资源
      最近更新 更多