我收到错误: 致命错误:未捕获OAuthException:(#200)
当我尝试通过应用程序邀请人们参加活动时。
我的步骤: 1.获取带有权限的长期令牌:create_event create_note publish_actions publish_stream rsvp_event user_events 2.获取作为朋友但尚未被邀请参加活动的用户。 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');
我已经将Userids分开,以确保以Userid_1,Userid_2,Userid_3格式正确设置它们 我使用图形令牌调试器检查了令牌,并正确设置了所有权限。 有人有想法吗?
答案 0 :(得分:0)
一个可能性是以下代码。但这很有效,因为它会为每个人发送一个查询。 检查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
}
}