【问题标题】:Facebook::Messenger::Bot::RecipientNotFoundFacebook::Messenger::Bot::RecipientNotFound
【发布时间】:2017-05-26 12:53:48
【问题描述】:

我正在尝试使用 Hypersolo 提供的 facebook messenger gem 构建一个 Messenger 机器人:https://github.com/hyperoslo/facebook-messenger

我总是收到以下错误: Facebook::Messenger::Bot::RecipientNotFound(不支持的发布请求。ID 为“me”的对象不存在,由于缺少权限而无法加载,或者不支持此操作。请阅读 https://developers.facebook.com/docs/graph-api 的 Graph API 文档)

我认为错误是由于 access_token 无效或无效,但是我一遍又一遍地请求一个新的,错误仍然存​​在。我检查了我的页面订阅,这似乎很好,并在 webhook 中禁用了 message_echoes。

我使用的代码很简单:

require 'facebook/messenger'
include Facebook::Messenger

Facebook::Messenger::Subscriptions.subscribe(access_token: ENV["ACCESS_TOKEN"])

Bot.on :message do |message|
  message.reply(text: 'Hello, human!')
end

另外;忽略回复并检查消息变量会给我一个有效的消息对象。

#<Facebook::Messenger::Incoming::Message:0x007fdd2d4a40e0 @messaging={"sender"=>{"id"=>"1349987331712XXX"}, "recipient"=>{"id"=>"1683630555268XXX"}, "timestamp"=>1484149162343, "message"=>{"mid"=>"mid.1484149162343:d5a47f1649", "seq"=>121620, "text"=>"Why wont this work?"}}>

【问题讨论】:

  • 你检查了 facebook 应用权限吗?

标签: ruby facebook facebook-graph-api facebook-messenger


【解决方案1】:

我从来没有像你一样使用过 hyperoslo 框架,但我发现了一些可以解释你的问题的东西。

您的消息价值:

#<Facebook::Messenger::Incoming::Message:0x007fdd2d4a40e0 @messaging={"sender"=>{"id"=>"1349987331712XXX"}, "recipient"=>{"id"=>"1683630555268XXX"}, "timestamp"=>1484149162343, "message"=>{"mid"=>"mid.1484149162343:d5a47f1649", "seq"=>121620, "text"=>"Why wont this work?"}}>

也就是说,要获取发件人ID,代码应该是@message['sender']['id'] 但是我在hyperoslo源码(https://github.com/hyperoslo/facebook-messenger/blob/master/lib/facebook/messenger/incoming/common.rb)上发现,好像不一致:

    def sender
      @messaging['sender']
    end

    def recipient
      @messaging['recipient']
    end

    def reply(message)
      payload = {
        recipient: sender,
        message: message
      }

      Facebook::Messenger::Bot.deliver(payload, access_token: access_token)
    end

我认为,应该是@messaging['sender']['id'] 而不是@messaging['sender']

不管怎样,看看这个问题:https://github.com/hyperoslo/facebook-messenger/issues/96

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2017-12-16
    • 2016-09-08
    • 2016-09-20
    相关资源
    最近更新 更多