如何打开 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 并直接发送给某人?的主要内容,如果未能解决你的问题,请参考以下文章