2016-07-22 129 views
0

這是我的第一個問題,所以請讓我知道如果我做錯了什麼。我試圖用'messenger-ruby'寶石(https://github.com/netguru/messenger-ruby)構建一個簡單的facebook messenger bot。我成功安裝了gem,但我想我並沒有真正知道如何發送/接收消息。Rails Facebook Messenger Bot

詳細,我也跟着在自述中的所有步驟:

  1. 獲取頁面訪問令牌
  2. 創建messenger.rb在自述
  3. 添加的路線完全按照自述
  4. 概述
  5. 創建messenger_controller.rb在自述
  6. 建立網絡掛接成功地在自述
  7. 訪問/爛攤子enger /訂閱訂閱

這一切工作到目前爲止,在https://developers.facebook.com/apps/.../messenger我看到Webooks下的綠色檢查,並看到我的頁面下訂閱頁面。

我做了不是做了「應用程序審查Messenger」。

現在的問題:我試圖發送一個標準回覆每個傳入的消息。我把代碼自述下#components到messenger_controller.rb:

# YOUR_APP/app/controllers/messenger_controller.rb 
class MessengerController < Messenger::MessengerController 
    def webhook 
    #logic here 
    if fb_params.first_entry.callback.message? 
     Messenger::Client.send(
     Messenger::Request.new(
      Messenger::Elements::Text.new(text: 'some text'), 
      fb_params.first_entry.sender_id 
     ) 
    ) 
    end 
    render nothing: true, status: 200 
    end 
end 

但當頁的管理員之一將消息發送到頁面上,沒有任何反應。我查看了日誌,但沒有看到我期望的POST請求。

當使用瀏覽器訪問HTTPS:/.../信使/網絡掛接,我看到「無效的驗證令牌」,並在其記錄顯示以下內容:

Started GET "/messenger/webhook" for xxx.xxx.xxx.xxx at 2016-07-22 14:39:52 +0000 
Cannot render console from xxx.xxx.xxx.xxx! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 
Processing by Messenger::MessengerController#validate as HTML 
Completed 200 OK in 10ms (Views: 0.3ms | ActiveRecord: 0.0ms) 

我想沒關係,但我不確定。

我敢肯定我可能犯了一個簡單的錯誤,但我整天都在閱讀文檔,找不到解決方案。我甚至不知道是什麼問題,因爲我期望在日誌中找到POST請求...

任何幫助,真的不勝感激。請讓我知道如何改善我的問題。

回答

1

寫完我的問題之後,我在擺弄着https://developers.facebook.com/apps/。我意識到:

  1. 發送消息的用戶只是一個頁面管理員,而不是一個應用程序管理員。
  2. 我的應用程序未公開,我的網頁未公開。

我添加了用戶作爲應用程序管理員,它的工作。上面的代碼和寶石安裝是可以的。因爲這花費了我幾乎整整一天的時間,所以我希望這個答案也能幫助其他人。對不起,如果我回答我自己的問題。