2011-08-03 5 views
0

docs, tutorials 및이 포럼의 도움으로 나는 자신이 선택한 프로필이나 페이지에서 로그인 한 사용자에 대한 이벤트를 생성 할 수있었습니다. 친구를 초대 할 때 events.invite를 사용해야한다는 것도 알았습니다.선택한 사용자를 Graphs API를 통해 Facebook-Event에 초대합니다.

사용자의 모든 친구를 초대하고 싶지 않지만 몇 가지를 초대하고 싶기 때문에 결과적으로 선택한 친구의 ID를 반환하는 요청을 구현했습니다.

events.invite 호출에 사용하고있는 사용자. 나는 bool 1을 결과 (즉, 초대장이 성공적으로 전송되었음을 의미 함)로 보내지 만, 친구 북마크 또는 이벤트 페이지에는 초대장이 표시되지 않습니다.

초대장 이외의 모든 것이 작동합니다.

3 질문 올 :

1) events.invite는 'create_event'외에 추가 권한이 필요합니까? events.invite를 독자적으로 tryed하거나 결과를 얻을 수 없습니다 ...

2) 초대장을 보내기 전에 친구를 선택하는 더 좋은 방법이 있습니까? 이벤트가 생성 될 때마다 앱 요청이 발송되는 것을 원하지 않습니다.

3) 2가 음수이면 앱이 친구의 프로필에서 어떻게 요청 (및 북마크)을 억제하거나 제거 할 수 있습니까? API를 통해 요청을 삭제해도 응용 프로그램 요청의 메시지는 분명히 제거되지 않습니다. 주요 스크립트

* : (요청 응답에서 호출) [자바 스크립트]

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 이벤트에 대한 몇 가지 알려진 문제점과 제한 사항을 발견했습니다. 페이스 북의 공식 문서에서 아래의 링크를 참조하십시오.

이벤트에 초대 할 수있는 사람 수에 대한 제한. http://www.facebook.com/help/?faq=12576#!/help/?faq=202545109787461

이벤트 멤버가 보낸 메시지가 수신되지 않습니다. http://www.facebook.com/help/?page=786#!/help/?faq=188295427885002

+0

당신 말이 맞습니다. 아직 그래프 API 이벤트가 초대되지 않았습니다. 따라서 이전 REST API의 events.invite에 의존했습니다. 내가 이전에 읽은 한 최대 50 명으로 제한됩니다. 최대 20 개를 설정했습니다. 불행히도 내가 연계 된 2 번째 FAQ를 열거 나 찾을 수 없습니다. – multikulinaria

1

이제 그래프 API를 통해 user_id로 사용자를 초대 할 수 있습니다.

http://developers.facebook.com/docs/reference/api/event/

당신은/EVENT_ID/초대/USER_ID에 HTTP POST를 실행하여 이벤트에 사용자를 초대 할 수 있습니다

만들기를 초대 참조하십시오./EVENT_ID/invited? users = USER_ID1, USER_ID2, USER_ID3에 HTTP POST를 실행하여 여러 사용자를 초대 할 수 있습니다. 이 두 가지 모두 create_event 권한이 필요하며 초대가 성공적이면 true를 반환합니다.

+0

그래프 API를 사용하여 더 이상 사용자를 초대 할 수 없습니다. '초대 됨 '은 이제 읽기 전용입니다. https://developers.facebook.com/docs/graph-api/reference/v2.3/event/invited – kim3er

+0

버전에 대한 이벤트 관리 API 사용이 중단되었습니다. –