我尝试邀请多个用户参加活动。 阅读文档facebook,我发现了这个:
http://developers.facebook.com/docs/reference/api/event/#invited
我编写了以下代码(不起作用):
$facebook = new Facebook(array(
'appId' => '',
'secret' => '',
'cookie' => true,
));
if ($user = $facebook->getUser()) {
$friends = $facebook -> api('/me/friends');
$e_id = ""; //the event id
$friends = $friends['data'];
$e_details = $facebook -> api("/{$e_id}"); //information about the event
for($ids = null,$i = 0,$len = count($friends); $i < $len; $i++) {
$friend = $friends[$i];
$ids .= $friend['id'].',';
}
$data = $facebook -> api("/{$e_id}/invited?users={$ids}", 'POST');
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array('scope' => 'create_event'));
}
我得到了一个错误的错误:
未捕获的OAuthException:(#200)投放的权限错误
他说的是什么许可?根据文档,我只需要一个权限。
有人可以指出我的错误吗?任何帮助表示赞赏。提前谢谢。
答案 0 :(得分:1)
所以首先尝试将id存储在一个数组中,不确定尾随的逗号是否正在弄乱它。如果它在列表中,也要删除你的自己。您还可以在http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fgroups测试来电,看看还有什么可以测试。也许添加一个测试来仔细检查用户是否也具有create_event权限。
if ($user = $facebook->getUser()) {
$friends = $facebook -> api('/me/friends');
$e_id = ""; //the event id
$friends = $friends['data'];
$e_details = $facebook -> api("/{$e_id}"); //information about the event
for($ids = null,$i = 0,$len = count($friends); $i < $len; $i++) {
$friend = $friends[$i];
if($user != $friend['id']){
$ids[] = $friend['id'];
}
}
$data = $facebook -> api("/{$e_id}/invited", 'POST', array("users"=>implode(",", $ids)));
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array('scope' => 'create_event'));
}
答案 1 :(得分:0)
Mauvaise gestion des virgule je pense,là$ ids se termine par une virgule,essayeplutôtcommeça:
for($ids = null,$i = 0,$len = count($friends); $i < $len; $i++) {
$friend = $friends[$i];
if ($ids)$ids.=',';
$ids .= $friend['id'];
}
Et il faut limiter lesinvitationsà100par“boucle”si on croit la FAQ de google sur les nouvelles limits d'invitations