【问题标题】:Send private messages to friends给朋友发私信
【发布时间】:2011-02-04 04:33:26
【问题描述】:

我需要通过 Facebook 连接用户的信息并向他的所有朋友发送私信。有可能吗?

【问题讨论】:

标签: facebook facebook-graph-api fb.ui facebook-messages facebook-friends


【解决方案1】:

不,这是不可能的。为了让您向 Facebook 用户发送任何类型的消息,您需要获得该用户的许可。

如果有人使用 Facebook Connect 登录您的网站,则他们明确同意与您的网站共享他们的 Facebook 数据,然后您将能够通过正常渠道向该人发送消息。您还可以获取他们的朋友列表。但是,您不能向朋友发送消息。

【讨论】:

  • 我的 Google-fu 让我失望了。有关于如何执行此操作的链接?
【解决方案2】:

你不能。 Facebook API 有 read_mailbox 但没有 write_mailbox 扩展权限。我猜这是为了防止垃圾邮件应用充斥朋友的收件箱。

【讨论】:

    【解决方案3】:

    现在这是不可能的,但有一种解决方法。您可以在公共领域与用户互动并要求他们向您发送私人消息,但您不能发回私人消息,只能发送公共消息。当然,这一切都取决于用户是否授予您正确的权限。

    如果您已授予访问某人朋友的权限,理论上您可以在该用户墙上发布对每个朋友的引用,要求他们公开与您互动,然后可能私下向您发送消息。

    结交朋友

    #if authenticated
    https://graph.facebook.com/me/friends
    http://developers.facebook.com/docs/reference/api/user/
    

    在公共领域发帖

    http://developers.facebook.com/docs/reference/api/status/
    

    获取发送给该用户的消息(如果获得许可)

    http://developers.facebook.com/docs/reference/api/message/
    

    【讨论】:

    • :现在可以私信了。我已经给出答案了。
    【解决方案4】:

    一种解决方法,虽然不是很好,是使用新的@facebook.com 电子邮件地址。这样做有一些缺点:

    1) 并非所有人(截至本文发布时)都在其帐户中启用了新消息应用程序。

    2) 不是每个人都会在他们的消息应用程序中设置他们的@facebook.com 电子邮件。

    3) 不是每个人都会选择他们的用户名(如果他们甚至有 Facebook 用户名)作为他们的电子邮件地址。

    【讨论】:

      【解决方案5】:

      现在可以通过api发送私信了。

      触发此事件以发送消息(facebook对象的初始化应该在之前完成)。

      to:userfacebook id

      function facebook_send_message(to) {
          FB.ui({
              app_id:'xxxxxxxx',
              method: 'send',
              name: "sdfds jj jjjsdj j j ",
              link: 'https://apps.facebook.com/xxxxxxxaxsa',
              to:to,
              description:'sdf sdf sfddsfdd s d  fsf s '
      
          });
      }
      

      属性

      • app_id
        您的应用程序的标识符。必需,但自动指定 由大多数 SDK 提供。

      • redirect_uri
        用户单击发送或取消后重定向到的 URL 对话框上的按钮。必需,但由大多数人自动指定 SDK。

      • 显示
        呈现对话框的显示模式。这是自动 大多数 SDK 指定。


      • 要将消息发送到的用户 ID 或用户名。一旦对话框 出现时,用户可以指定其他用户、Facebook 组和 要将消息发送到的电子邮件地址。将内容发送到 Facebook 群组会将其发布到群组的墙上。

      • 链接
        (必需)要在消息中发送的链接。

      • 图片
        默认情况下,将从指定的链接获取图片。网址 要包含在消息中的图片。图片将显示 链接旁边。

      • 名称 默认情况下,标题将从指定的链接中获取。的名字 链接,即显示用户将点击的文本。

      • 说明
        默认情况下,将从指定的链接中获取描述。 显示在链接下方的描述性文字。

      查看更多here

      @VishwaKumar:

      要发送带有自定义文本的消息,您必须将“消息”参数添加到FB.ui,但我认为此功能已被弃用。您不能再预先填写消息。虽然尝试一次。

      FB.ui({
        method: 'send',
        to: '1234',
        message: 'A request especially for one person.',
        data: 'tracking information for the user'
      });
      

      查看此链接:http://fbdevwiki.com/wiki/FB.ui

      【讨论】:

      • 这个解决方案已经有一段时间了。它并不能完全解决问题,因为您必须使用 Facebook 的弹出窗口并且只能填充一个人(此时,跟踪错误 here)。一个完整的解决方案允许你使用标准的 API 来发送你想要的消息,尽管 Facebook 似乎已经把它拿走了。
      • @Somnath,感谢您发布解决方案!不知道有没有办法绕过写消息窗口直接发送消息?
      • @Cyber​​Junkie:我认为 facebook 不提供这种绕过功能。用户必须单击发送消息按钮。否则,您的收件箱将充满广告。
      • @Somnath:我尝试了您的解决方案并且它有效,但是有没有办法在弹出窗口中使用自定义消息填充消息?
      • @VishwaKumar:你的意思是当打开消息框时应该填充自定义消息?
      【解决方案6】:

      您可以使用 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
      

      【讨论】:

      • 关于此的博文 - dalibornasevic.com/posts/…
      • 你有php中类似的代码发送私信吗?
      • 自 2015 年 5 月 1 日后的 v2.0 起已弃用此功能
      【解决方案7】:

      对于移动应用程序,我通过在对话框视图中注入 javascript 做了一个解决方案。我的 ios 应用程序中有一个隐藏的网络视图。加载fb消息发送对话框api ..然后我注入一些javascript来设置“to”和“message”字段并提交表单..这样最终用户不需要做任何事情。消息以静默方式发送到 facebook 收件箱...

      【讨论】:

      • 你能详细解释一下吗?
      • @Totty 你能展示你的实现吗?我的 iOS 应用非常需要它。
      【解决方案8】:

      这个没有graph api,你需要用facebook xmpp chat api来发送消息,好消息是:我做了一个php类,太容易使用了,调用一个函数,消息就可以了发送,它的开源,检查一下:facebook message api php 描述说它是一个封闭源,但它后来被开源,见第一条评论,你可以从 github 克隆。它现在是开源的。

      【讨论】:

        【解决方案9】:

        这个帖子说你不能在 facebook 上向一群朋友发送私人消息,但我找到了这个https://developers.facebook.com/docs/sharing/reference/send-dialog

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-16
          • 1970-01-01
          • 2011-08-10
          相关资源
          最近更新 更多