2011-08-03 25 views
0

在文档,教程和本论坛的帮助下,我设法为他的个人档案或页面上的登录用户创建了一个事件,如他所选。 我也想到,为了邀请朋友,我不得不使用events.invite。邀请所选用户参加Facebook-Event(通过Graph API)

由于我不想邀请所有用户的朋友,但几个,我实现了一个请求,作为结果返回选定的朋友的ID。

那些我正在使用的events.invite调用。我得到布尔1作为结果(这意味着,邀请已成功发送),但没有邀请在朋友书签或活动页面中看到。

除邀请函之外的所有内容都正在工作。

3个问题上来:

1)events.invite是否需要除 'create_event' 其他权限? 我单独尝试了events.invite,但无法获得结果...

2)在发送邀请之前是否有更好的方法来选择好友?我不希望应用程序请求在每次创建事件时发出。

3)如果2是否定的,应用程序请求(和书签)如何被压制或从朋友的个人资料中删除?通过API删除请求显然不会删除应用程序请求中的消息。

*在主脚本:[JavaScript的]

function sendRequest() { 
FB.ui({ 
     method: 'apprequests', 
     message: 'Test', 
     title: 'event invitation for up to 20 friends', 
     max_recipients: 20, 
     }, 
    function (response) { 
    if (response && response.request_ids) { 
     var requests = response.request_ids.join(','); 
     var invite_ids = new Ajax.Request('/facebook/handle_invitation.php', { 
      onSuccess: function(test) { alert('Done!'); }, 
      method: 'post', 
      parameters: {tid: '<?php echo $target_id; ?>', 
          request_ids: requests, 
          eid:'<?php echo $event_id; ?>', 
          token: '<?php echo $access_token; ?>'} 
      }); 
    } else { 
     alert('canceled'); 
    } 

    }); 
     return false; 
    } 

*和在 'handle_invitation.php'(从请求响应调用):

if(isset($_POST['request_ids']) && isset($_POST['uid'])) { 
    $target_id = $_POST['tid']; 
    $event_id = $_POST['eid']; 
    $access_token = $_POST['token']; 
    $requests = explode(',',$_POST['request_ids']); 


foreach($requests as $request_id) { 
    $request_data = $fb->api("/$request_id?$access_token"); 
    $invite_id[] = $request_data['to']['id']; 

    $fb->api("/$request_id?$access_token", "DELETE"); 
    } 


//invite friends to my event 
$return = $fb->api(array(
    'method' => 'events.invite', 
    'eid' => $event_id, 
    'uids' => $invite_id, 
    'personal_message' =>"Einladung zu meinem Event" 
)); 
} 

希望这不是太详细。我很感激任何帮助,因为经过几天的阅读和试​​验,我终于停留在这一点上。谢谢!

回答

0

我不认为“发送事件邀请”是在GRAPH API中。它在REST API中可用,但它不像我们预期的那样工作。 我发现一些已知的问题和facebook事件的限制。请参阅facebook上官方文档中的链接

可邀请参加活动的人数限制。 http://www.facebook.com/help/?faq=12576#!/help/?faq=202545109787461

活动成员没有收到我发送的消息。 http://www.facebook.com/help/?page=786#!/help/?faq=188295427885002

+0

你说得对。还没有Graph API事件邀请。因此我依赖于旧的REST API的events.invite。据我以前阅读,它限制为最多50个被邀请者。我将最大值设置为20.不幸的是,我无法打开,也找不到您链接的第二个常见问题解答。 – multikulinaria

1

图api现在允许您通过user_id邀请用户。见http://developers.facebook.com/docs/reference/api/event/

邀请

创建

您可以通过发出HTTP POST到/ EVENT_ID /邀请/ USER_ID邀请用户的事件。您可以通过向/ EVENT_ID/invite?users = USER_ID1,USER_ID2,USER_ID3发出HTTP POST来邀请多个用户。这两个都需要create_event权限,如果邀请成功,则返回true。

+0

您不再能够邀请使用Graph API的人员。 'invite'现在只能读取。 https://developers.facebook.com/docs/graph-api/reference/v2.3/event/invited – kim3er

+0

不支持事件管理API –

相关问题