首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从iOS应用程序通过Facebook SDK向朋友发送消息

从iOS应用程序通过Facebook SDK向朋友发送消息
EN

Stack Overflow用户
提问于 2016-02-09 07:40:45
回答 1查看 933关注 0票数 0

我听说Facebook的聊天API在几年前就被弃用了,但我想知道通过使用新的messenger API,是否可以通过Facebook向朋友发送消息。用户使用登录按钮登录,并通过图形请求获取他们的信息,现在我想发送一条测试消息。

这是登录的代码(works)

代码语言:javascript
复制
class ViewController: UIViewController, FBSDKLoginButtonDelegate {

var currentUserIDString : String?

override func viewDidLoad() {
    super.viewDidLoad()

    let facebookLoginButton = FBSDKLoginButton()
    facebookLoginButton.delegate = self
    facebookLoginButton.center = self.view.center
    self.view.addSubview(facebookLoginButton)

    let button : UIButton = FBSDKMessengerShareButton.circularButtonWithStyle(FBSDKMessengerShareButtonStyle.Blue, width: 80)
    button.addTarget(self, action: "shareTest", forControlEvents: UIControlEvents.TouchUpInside)
    button.frame = CGRectMake(self.view.frame.size.width/2 - 40, 390, 80, 80)
    self.view.addSubview(button)

}

// other methods

}

登录代理,获取用户信息(也适用)

代码语言:javascript
复制
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {


    let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, gender, email"])

    graphRequest.startWithCompletionHandler { (connection, result, error) -> Void in

        if error != nil {
            print(error.localizedDescription)
        }

        else if let result = result {

            self.currentUserIDString = result["id"] as? String
            print(self.currentUserIDString)

        }
    }

}

Share方法,在这里有一些麻烦...参数字典和字段中的代码可能不正确,但Facebook文档非常糟糕,因此很难找到好的示例。

代码语言:javascript
复制
func shareTestGraphRequest() {

    if FBSDKAccessToken.currentAccessToken() != nil {

        if FBSDKAccessToken.currentAccessToken().hasGranted("read_page_mailbox") {

            //establish param dictionary here
            let parameterDictionary = NSMutableDictionary()
            parameterDictionary.setObject("This is a test message, I'm building an app!", forKey: "message")
            parameterDictionary.setObject(self.currentUserIDString!, forKey: "from")
            parameterDictionary.setObject([], forKey: "to")

            let graphRequest = FBSDKGraphRequest.init(graphPath: "/{message-id}", parameters: parameterDictionary as [NSObject : AnyObject], HTTPMethod: "POST")

            graphRequest.startWithCompletionHandler { (connection, result, error) -> Void in


            }

        }
    }

    else {

        let loginManager = FBSDKLoginManager()
        loginManager.logInWithPublishPermissions(["read_page_mailbox"], fromViewController: self, handler: { (result, error) -> Void in

            if error != nil {
                print(error)
            }

            else if let result = result {
                print(result)

            }
        })
    }
}

谢谢你的帮助!

EN

Stack Overflow用户

发布于 2016-02-17 20:02:25

使用Facebook messenger SDK集成,您可以向您的朋友发送消息。但这只允许发送媒体,如图像,GIF,视频,你不能通过这个SDK发送纯文本。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35281426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档