2011-10-21 5 views
0

저는 페이스 북 애플리케이션 요청을 보내는 법을 배우는 레일즈 초보자입니다. Rails에서이 작업을 수행하는 데 너무 많은 문서를 찾지 못했기 때문에 올바른 방향에 있는지 또는 더 나은 방법이 있는지 묻고 싶었습니다. 지금은받는 사람 ID를 반복 한 다음 sender_id, recipient_id 및 request_id를 데이터베이스에 저장합니다. 여기에 나는이 시점에서이 무엇 :Facebook AppRequests, Rails, Jquery, Ajax

$(document).ready(function() {   

$('#button').click(sendRequest); 
    function sendRequest() { 
     FB.ui({ 
      method: 'apprequests', 
      message: 'Check out this application!', 
      title: 'Send your friends an application request', 
     }, 
function (response) { 
     if (response.request && response.to) { 
      var request_ids = []; 
      for(i=0; i<response.to.length; i++) 
      { 
      var temp = response.to[i]; 
      var temptwo= response.request; 
      $.ajax({ 
       type: 'POST', 
       url: "http://localhost:3000/fbusers", 
        data: {request : { 
              recipient_id : temp, 
              sender_id: <%[email protected]_uid%>, 
              request_id: temptwo}}, 
       dataType: 'json', 
        success: function(data) { 
         var obj= "hello there"  
         alert(obj);   
          },  
       }); 
      } 
     } else { 
      alert('canceled'); 
      } 
     }); 
     return false; 
     } 

컨트롤러는 바로이있다 :이 시점에서

def create 
    User.create(params[:request]) 
end 

을, 나의 주요 관심사는 (1)이 방법이 '좋은 습관'고려 여부, (2) 실행 시간면에서 더 빠른가, 이것을 작성하는 더 효율적인 방법이 있는지 여부. 나는 주로 PHP를 위해 작성되었습니다 (몇 가지 변화)이 튜토리얼, 다음 :

http://www.masteringapi.com/tutorials/how-to-send-an-application-request-using-the-facebook-graph-api/44/

이 작업을 수행 할 수있는 더 좋은 방법이 있다면 알려 주시기, 또는하세요 나는 곧 정상 궤도에있어 경우 . 또한이 튜토리얼에서는 모든 수신자를 한 문자열로 결합한 다음 mysql에서 '분해'했다. 나는 이것이 무엇을 가리키고 있는지, 그리고 아약스 포스트 기능을 통해 반복 할 수있는 단점이 있는지는 분명하지 않았다. 긴 질문에 대한 사과, 어떤 도움을 주시면 감사하겠습니다.

답변

0

Koala 보석은 내가 당신에게 권장하는 것입니다. Rails 또는 Sinatra 기반 응용 프로그램과 함께 사용하기 쉽습니다.

+0

이 추천 해 주셔서 감사합니다 :) Dinuz을 도울 수

희망, 나는 이미 보석을 설치 한과 등, 스트림에, FB의 API에서 출판 데이터를 당기는 정말 유용하지만 'didn를 코알라를 통해 앱 요청을 작성하는 방법을 설명하는 문서의 내용을 참조하십시오. "put_connections()"등과 관련된 코드를 시도했지만 아무 것도 명확하지 않은 것 같습니다. 코알라가이를 위해 일한다면 어떤 조언이나 지시 사항도 매우 감사 할 것입니다. 미리 감사드립니다. – Mike

0

튜토리얼이 모든 수신자를 한 문자열로 결합한다는 사실은 모든 수신자 ID를 저장할 수 있다는 것입니다 (코드로 첫 번째 수신자의 ID 만 저장하면됩니다). 폭발은 하나의 테이블에있는 각 단일 수신자를 원시로 저장하는 데 사용됩니다. 이렇게하면 부울 매개 변수에 false 또는 true를 입력 한 다음 누가 삭제했는지 누가 허용했는지 모니터링 할 수 있습니다.

fb_graph gem을 보면 app_request에 대한 부분적인 지원이 추가되었습니다. 이