0

在文档、教程和这个论坛的帮助下,我设法在他的个人资料或页面上为登录用户创建了一个事件,正如他选择的那样。我还想,要邀请朋友,我必须使用 events.invite。

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

我用于 events.invite 调用的那些。我得到 bool 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"
)); 
}

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

4

2 回答 2

1

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

受邀

创造

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

于 2011-12-05T15:37:42.990 回答
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

于 2011-08-04T04:50:56.027 回答