1

エラーが発生しています: Fatal error: Uncaught 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');

Userid_1、Userid_2、Userid_3 の形式で正しく設定されていることを確認するために、既に Userid を分離しました。グラフ トークン デバッガーでトークンを確認したところ、すべての権限が正しく設定されていました。誰でもアイデアはありますか?

4

1 に答える 1

0

1 つの可能性は、次のコードです。しかし、これは各人にクエリを送信するため、非常に遅くなります。37 人をチェックするのに 30 秒かかります。上記のように一度に 50 人をクエリすると、30 秒で 1000 人以上が招待されます。

誰かがより良い方法を見つけようとすることができれば、私はそれに近づきます!!!
最善の方法は、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 に答える