1

我收到错误:致命错误:未捕获的 OAuthException:(#200)

当我尝试通过应用程序邀请人们参加活动时。

我的步骤: 1. 获得具有权限的长期令牌:create_event create_note publish_actions publish_stream rsvp_event user_events 2. 获取尚未被邀请参加活动的朋友的用户 ID。3. 每个邀请分成 50 人并发送。

邀请码:

$friends = $facebook->api(array(
     'method' => 'fql.query',
     'query' => "SELECT uid,name FROM user WHERE uid IN 
(SELECT uid1 FROM friend WHERE uid2=me()) AND NOT 
(uid IN (SELECT uid FROM event_member where eid = '$eventid'))"));

foreach ($friends as $value) 
{
    if (!isset($allids))
    {
        $allids = $value['uid'];
    }
    else
    {
        $allids .= ',' . $value['uid'];
    }
    $count++;
    $invitedusers++;
    if ($count > 49) 
    {
    //$splitinvite = $facebook->api($eventid . '/invited?users=' . $allids, 'POST');
    unset($allids);
    $count = 0;
    }
}

$facebook->api($eventid . '/invited?users=' . $allids, 'POST');

我已经分离了用户 ID,以确保它们以 Userid_1、Userid_2、Userid_3 格式正确设置我使用图形令牌调试器检查了令牌,并且所有权限都设置正确。任何人的想法?

4

1 回答 1

0

一种可能性是以下代码。但这工作起来很慢,因为它会为每个人发送一个查询。检查 37 个人需要 30 秒。如上图一次查询 50 人,30 秒内邀请超过 1000 人。

如果有人可以尝试找到更好的方法,我会appearacheate它!!!
最好的方法是过滤 FQL 查询(如果可能的话)。

工作缓慢的代码:

    foreach ($friends as $value) 
    {       
        try
        {
        $splitinvite = $facebook->api($eventid . '/invited?user=' . $value['uid'],'POST'); 
        $count++;
        }
        catch (Exception $e) 
        {
// Users privacy setting blocked inviting him, has blocked you or has blocked you from inviting 
        }
}
于 2013-04-21T09:59:09.647 回答