如何打开 Facebook Messenger 并直接发送给某人?

Posted

技术标签:

【中文标题】如何打开 Facebook Messenger 并直接发送给某人?【英文标题】:How to open Facebook Messenger and direct to someone? 【发布时间】:2016-05-31 10:04:25 【问题描述】:

我已经有 FBSDK 并且可以使用 FBSDKShareKit 在 Messenger 上发送一些东西。 我只想在 Facebook Messenger 中与某人聊天。像这样:

    在我的应用程序中单击一个按钮(示例:Facebook 应用程序): http://i.imgur.com/j60P3Ng.png

    转到 Facebook Messenger 并打开与此人的聊天: http://i.imgur.com/yU0EXKF.png

我该怎么做?

【问题讨论】:

【参考方案1】:

斯威夫特 4

用户界面

在我的应用中,我将用户的 Facebook ID 显示为按钮:

代码

@IBAction func messengerButton(_ sender: UIButton) 
    if let id = sender.titleLabel?.text 
        if let url = URL(string: "fb-messenger://user-thread/\(id)") 

            // Attempt to open in Messenger App first
            UIApplication.shared.open(url, options: [:], completionHandler: 
                (success) in

                if success == false 
                    // Messenger is not installed. Open in browser instead.
                    let url = URL(string: "https://m.me/\(id)")
                    if UIApplication.shared.canOpenURL(url!) 
                        UIApplication.shared.open(url!)
                    
                
            )
        
    

用户的 Facebook ID

用户可以通过在 Facebook 上查找其他人的 Facebook ID,然后观察 URL:

【讨论】:

【参考方案2】:

我找到了一个使用 URL Scheme 的解决方案:

let userID = 4
let urlStr = String(format: "fb-messenger://user-thread/%d", userID)
let theUrl = NSURL(string: urlStr)
[UIApplication.sharedApplication() .openURL(theUrl!)]

此代码将打开 Message 应用程序并与 Mark 交谈。

【讨论】:

【参考方案3】:

在 swift 5.1 中,使用

     guard let messenger = URL(string: "fb-messenger://user-thread/your_id") else  return 
 UIApplication.shared.open(messenger)

【讨论】:

以上是关于如何打开 Facebook Messenger 并直接发送给某人?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Facebook Messenger,打开并完成任务后自动关闭链接

如何从 Facebook Messenger 打开我的 iOS 应用程序?

如何在桌面网络浏览器上的 facebook messenger 中打开 webview

如何在按钮单击时将用户发送到 Facebook 页面(Facebook Messenger)

如何制作在 Safari for iOS Facebook Messenger 应用程序而不是应用程序内 Web 浏览器中打开的 URL

Facebook Messenger Bot:会话变量