有没有办法从 Ruby on Rails 发布 Facebook 应用程序邀请,例如通过部署 Koala?
乍一看似乎是不可能的。除了简单地张贴到墙上之外,还有什么解决方法吗?
有没有办法从 Ruby on Rails 发布 Facebook 应用程序邀请,例如通过部署 Koala?
乍一看似乎是不可能的。除了简单地张贴到墙上之外,还有什么解决方法吗?
实际上mikeonrails
给出了一个正确的链接 - 请求对话框是邀请朋友到您的应用程序并向他们发送其他类型的请求的方式。但是,对于发送给未安装应用程序的用户的请求,它确实需要用户交互(正如视频所示)。
现在了解详细信息。您可以发送两种类型的请求:
用户生成请求的代码如下(使用 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 次)。
如果您想阅读更多内容:
您可以使用 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 已被弃用,因此无法再使用此解决方案。