ios - 如何使用 FBSDKCoreKit 向 Facebook 用户发布图片

标签 ios facebook swift

所以我完全不知道如何使用 fbsdkcorekit 将图像发布到用户时间线。我希望它与我编码的 Twitter 类似:

如何像在 Twitter 上一样分享图像状态?我不想让用户拥有像 slcomposeviewcontroller 那样的对话框。我只是希望它在后台使用我提供的 uiimage 以及我提供的状态文本进行。

Twitter.sharedInstance().logInWithCompletion {
let strUploadUrl = "https://upload.twitter.com/1.1/media/upload.json"
        let strStatusUrl = "https://api.twitter.com/1.1/statuses/update.json"
        UIApplication.sharedApplication().networkActivityIndicatorVisible = true
        var twAPIClient = Twitter.sharedInstance().APIClient
        var error: NSError?
        var parameters:Dictionary = Dictionary<String, String>()
        var imageData : NSData = UIImageJPEGRepresentation(self.image!, 0.5)
        parameters["media"] = imageData.base64EncodedStringWithOptions(nil)
        var twUploadRequest = twAPIClient.URLRequestWithMethod("POST", URL: strUploadUrl, parameters: parameters, error: &error)
        if true {
            println("before sendTwitterRequest")
            twAPIClient.sendTwitterRequest(twUploadRequest) {
                (uploadResponse, uploadResultData, uploadConnectionError) -> Void in
                println("inside sendTwitterRequest")
                if (uploadConnectionError == nil) {
                    // using SwiftyJSON to parse result
                    let json = JSON(data: uploadResultData!)
                    // check for media id in result
                    if (json["media_id_string"].string != nil) {
                        println("result = \(json)")
                        // post a status with link to media
                        parameters = Dictionary<String, String>()
                        parameters["status"] = ""
                        parameters["media_ids"] = json["media_id_string"].string!
                        var twStatusRequest = twAPIClient.URLRequestWithMethod("POST", URL: strStatusUrl, parameters: parameters, error: &error)
                        if true //(twStatusRequest != nil)
                        {
                            twAPIClient.sendTwitterRequest(twStatusRequest) { (statusResponse, statusData, statusConnectionError) -> Void in
                                if (statusConnectionError != nil) {
                                    println("Error posting status \(statusConnectionError)")
                                }
                            } // completion
                        } else {
                            println("Error creating status request \(error)")
                        }
                    } else {
                        println("Media_id not found in result = \(json)")
                    }
                } else {
                    println("Error uploading image \(uploadConnectionError)")
                }
            } // completion
        } else {
            println("Error creating upload request \(error)")
        }

}

最佳答案

这在文档的“Sharing on iOS ”部分中有详细记录。

假设您已经完成 the basic setup安装 SDK 和配置 Xcode 项目时,您应该实现 Facebook Login首先并请求 publish_actions 权限(注意:此权限需要 Facebook 事先审核,然后才能供非应用管理员/开发人员/测试人员使用)。

实现后,您可以引用前面提到的“Sharing on iOS ”指南,并使用 [FBSDKShareAPI shareWithContent:content delegate:nil]; 直接使用 API 发布内容而不是对话框。

关于ios - 如何使用 FBSDKCoreKit 向 Facebook 用户发布图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30927383/

相关文章:

iphone - 如何安全地内存管理要从 UI 中删除的按钮?

ios - 如何在 objective-c 中保存 cookie?

iphone - 如何更改 Facebook 登录页面的语言?

ios - iOS 推送通知的 MQTT 服务

javascript - Facebook 评论加载速度很慢

facebook - 获得 Facebook 应用页面的总点赞数

ios - 将 UITableViewController 更改为 UITableView 会使应用程序崩溃

swift - String 到 Date 的时间转换 : 12 is becoming 00 swift

ios - NSLayoutConstraints 未设置(swift 3)

ios - MKMapView display showsScale distance in km (not mi)