2011-10-21 59 views
0

我是一個Rails新手,學習如何發送Facebook應用程序請求。我在Rails中沒有找到太多的文檔,所以我想問問我是否正確,或者有更好的方法來做到這一點。現在我正在循環收件人標識符,然後將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中'爆炸'它們。我不清楚這是什麼意思,以及是否有循環通過ajax post函數的缺點。對長期問題抱歉,任何幫助表示讚賞。

回答

0

Koala寶石是我推薦給你的。易於使用Rails或Sinatra應用程序。

+0

謝謝你的建議,我已經安裝了寶石和它得到真正有用的從FB的API拉取數據,發佈到流等,但我沒有」沒有看到討論如何通過考拉創建應用程序請求的文檔中的任何內容。我嘗試了一些與「put_connections()」等相關的代碼,但似乎沒有什麼明顯的。如果考拉爲此工作,任何建議/方向將非常感激。 在此先感謝! – Mike

0

本教程將所有收件人組合在一個字符串中的事實是,能夠保存所有收件人ID(使用您的代碼,您只需保存第一個收件人的ID)! 爆炸用於將每個單個收件人保存在一個表格raw中,通過這種方式,您可以在將false或true設置爲布爾參數之後,監視誰接受了並且誰不會將您的請求刪除而不刪除它們:)

你也可以看看fb_graph gem,他們增加了對app_request的部分支持。

希望這能幫助:) Dinuz