ios - 未配置应用程序时在 Facebook 上分享

标签 ios swift slcomposeviewcontroller sfsafariviewcontroller

我想在 Facebook 上发帖。为此,我使用了 SLComposeViewController。我只是想问一下,如果用户没有在手机中配置其应用程序,我该如何分享。 有什么方法可以让我在浏览器中打开它然后发布任何内容。 假设我想发布任何字符串 say "hello there"。所以我保留这个字符串,打开 safari 并在那里登录。在我登录后,字符串会自动发布

if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook) {
            let fbShare:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
            fbShare.completionHandler = {
                result in
                switch result {
                case SLComposeViewControllerResult.Cancelled:
                    //Code to deal with it being cancelled
                    break

                case SLComposeViewControllerResult.Done:
                    //Code here to deal with it being completed
                    break
                }
            }
        refrenceViewController.presentViewController(fbShare, animated: true, completion: nil)

    } else {
        //open safari and post it there
    }

最佳答案

我使用以下代码将视频发布到 facebook。您可以使用类似的方法发布您的文本。

NSData *data = [NSData dataWithContentsOfURL:outputFileURL];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                               data, @"video.mp4",
                                               @"video/mp4", @"contentType",
                                               caption, @"description",
                                               nil];
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                                              initWithGraphPath:@"/me/videos"
                                              parameters:params
                                              HTTPMethod:@"POST"];

[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                                      id result,
                                                      NSError *error) {
       if(!error) {
              DDLogDebug(@"result %@",result);
       } else {
              DDLogError(@"error description : %@",error.description);
              [Helper showToast:[NSString stringWithFormat:@"Unable to share to Facebook : Error: %@",[error localizedDescription]] withDuration:1];
       }
 }];

当然,在此之前您需要确保您已经获得了 FBSDKAccess token 。您可以从 facebook sdk 查看完整文档 https://developers.facebook.com/docs/ios/graph

关于ios - 未配置应用程序时在 Facebook 上分享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37068096/

相关文章:

ios - 快速更改设备方向时不显示 float 操作按钮的 View

ios - 从另一个以前的 View Controller 获取的变量,但我无法达到该值(无错误)?

ios - ImageView 未显示,但选择确实有效

django - 从swift上传照片到django api

快速正则表达式。特定数字格式的模板

iOS - 使用 SLComposeViewController 的 Twitter 帖子回调

swift - 如何使用 SLComposeViewController swift 在 facebook、twitter 和 instagram 上分享内容

iphone - 奇怪的错误 : wait_fences: failed to receive reply: 10004003

swift - 从 Parse 下载后无法流式传输视频

ios - 如何将我的应用程序中的帖子分享到 Twitter iOS