【问题标题】:Facebook app invite from Ruby on Rails来自 Ruby on Rails 的 Facebook 应用邀请
【发布时间】:2026-01-09 17:20:03
【问题描述】:

有没有办法从 Ruby on Rails 发布 Facebook 应用程序邀请,例如通过部署考拉?

乍一看似乎是不可能的。除了简单地张贴到墙上还有其他解决方法吗?

【问题讨论】:

  • 你试过这样的事情吗? blog.otherscreen.com/2011/06/…
  • 如果这是可能的,那将是一个主要的垃圾邮件生成器......想象一下,如果(没有用户交互)应用程序可以决定向所有用户朋友发送应用程序邀请......垃圾邮件-如果你问我... TBH - 我真的希望这是不可能的...
  • 为悲观的情绪道歉:P
  • @Lix 确实同意,据我所知,情况似乎如此。
  • @mikeonrails 链接不起作用

标签: ruby-on-rails facebook facebook-graph-api koala


【解决方案1】:

实际上mikeonrails 提供了一个正确的链接 - 请求对话框是邀请朋友加入您的应用并向他们发送其他类型请求的方式。对于发送给未安装应用程序的用户的请求,它确实需要用户交互(正如视频所示)。

现在了解详细信息。您可以发送两种类型的请求:

  • 用户生成的请求:这些请求可以发送给未安装应用程序的用户(即应用程序邀请)。它们只能使用 Javascript SDK(或 iOS 或 Android SDK,但我认为您不感兴趣)发送,并且它们确实需要用户交互。它将由一个弹出窗口组成,该弹出窗口将显示他的朋友的选择(由您选择)或朋友选择器和一个发送按钮,用于向他们发送您的消息。
  • 应用程序生成的请求:这些请求只能发送给已安装应用程序的用户,但无需用户交互即可发送。

用户生成请求的代码如下(使用 Javascript SDK):

// this will show the pop-up dialog with a friend selector
// add a `to: 'friend_id1,friend_id2` to skip the friend selector
FB.ui({
    method: 'apprequests',
    message: 'My Great Request'
}, requestCallback);

对于应用程序生成的请求,您可以像这样使用 Koala:

user = Koala::Facebook::API.new(user_token)
user.put_object("user_with_app_installed_id", "apprequests", {:message => "Would you like to be friends?")

因此,结论是您不能在未经用户批准的情况下邀请用户的朋友加入您的应用程序,但您可以让他非常简单地做到这一点(点击 2 次)。

如果您想了解更多:

【讨论】:

    【解决方案2】:

    您可以使用 Facebook 聊天 API 发送私人消息,这里是 Ruby 中使用 xmpp4r_facebook gem 的示例:

    sender_chat_id = "-#{sender_uid}@chat.facebook.com"
    receiver_chat_id = "-#{receiver_uid}@chat.facebook.com"
    message_body = "message body"
    message_subject = "message subject"
    
    jabber_message = Jabber::Message.new(receiver_chat_id, message_body)
    jabber_message.subject = message_subject
    
    client = Jabber::Client.new(Jabber::JID.new(sender_chat_id))
    client.connect
    client.auth_sasl(Jabber::SASL::XFacebookPlatform.new(client,
       ENV.fetch('FACEBOOK_APP_ID'), facebook_auth.token,
       ENV.fetch('FACEBOOK_APP_SECRET')), nil)
    client.send(jabber_message)
    client.close
    

    更新:Facebook 聊天 API 已被弃用,因此无法再使用此解决方案。

    【讨论】:

      最近更新 更多