【问题标题】:facebook api: count attendees for event (limit problem)facebook api:统计活动的参加者(限制问题)
【发布时间】:2011-03-22 22:08:15
【问题描述】:

好的,通常我对 facebook API 没问题,但我遇到了一个问题,这让我一直想知道。 (我认为这是一个错误(检查票 http://bugs.developers.facebook.net/show_bug.cgi?id=13694),但如果有人有想法,我想把它扔在这里)。

我正在使用 facebook PHP 库来统计特定活动的所有参与者

$attending = $facebook->api('/'.$fbparams['eventId'].'/attending');

这没有问题,它会正确返回一个包含所有参与者的数组...

现在问题来了:

此活动目前约有 18.000 名参与者。 api 调用最多返回 992 名与会者(而不是应有的 18000 名)。

我试过了

$attending = $facebook->api('/'.$fbparams['eventId'].'/attending?limit=20000');

用于测试,但不会改变任何东西。

所以我的实际问题是:

如果我无法通过使用图形 api 使其工作,那么有什么好的选择? (可能解析事件页面的 html?)现在我每隔几个小时手动更改一次值,这既乏味又不必要。

【问题讨论】:

标签: php facebook graph


【解决方案1】:

其实有两个参数,limitoffset。我认为您将不得不同时使用两者并继续拨打电话,直到其中一个返回小于最大值。限制。

类似这样,但采用递归方法(我正在编写伪代码):

offset = 0;
maxLimit = 992;
totalAttendees = count(result)

if (totalAttendees >= maxLimit)
{
  // do your stuff with each attendee
  offset += totalAttendees;
  // make a new call with the updated offset
  // and check again
}

【讨论】:

  • 我会快速尝试一下,我明白你的想法
  • 折腾了一下,但还没弄好,现在在德国凌晨 0 点睡觉,我明天去看看
  • 很遗憾,结果还是一样。
【解决方案2】:

我搜索了很多,这就是我修复它的方法: 请求的 URL 应类似于 this

Here 是您可以测试它的地方,这是我使用的代码:

function events_get_facebook_data($event_id) {
  if (!$event_id) {
    return false;
  }

  $token = klicango_friends_facebook_token();
  if ($token) {
    $parameters['access_token'] = $token;
    $parameters['fields']= 'attending_count,invited_count';
    $graph_url = url('https://graph.facebook.com/v2.2/' . $event_id , array('absolute' => TRUE, 'query' => $parameters));
    $graph_result = drupal_http_request($graph_url, array(), 'GET');
    if(is_object($graph_result) && !empty($graph_result->data)) {
      $data = json_decode($graph_result->data);
      $going = $data->attending_count;
      $invited = $data->invited_count;
      return array('going' => $going, 'invited' => $invited);
    }
    return false;
  }

  return false;
}

【讨论】:

    【解决方案3】:

    试试

    从事件 WHERE eid ="event" 中选择 eid 、参加计数、不确定计数、所有成员计数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      相关资源
      最近更新 更多