如何在不使用原生 ios 应用程序中的 FBSDKShareDialog 的情况下在 Facebook 墙上分享照片或链接

Posted

技术标签:

【中文标题】如何在不使用原生 ios 应用程序中的 FBSDKShareDialog 的情况下在 Facebook 墙上分享照片或链接【英文标题】:how to share a Photo Or link on facebook wall without using FBSDKShareDialog from native ios app 【发布时间】:2015-08-27 01:52:33 【问题描述】:

我想在不使用 FBSDKShareDialog 的情况下在用户 Facebook 墙上发布一些照片或链接。我已经使用来自 facebook 的 FBSDKSharePhoto 和 FBSDKShareDialog 默认对话框发布。为此,我执行以下代码

FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = self.imgView.image;
photo.userGenerated = YES;
FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[photo];
[FBSDKShareDialog showFromViewController:self
                             withContent:content
                                delegate:(id)self];

但是,此代码会打开默认 FB 对话框。那么,我怎样才能将链接和照片直接发布到用户的墙上。

【问题讨论】:

【参考方案1】:

你可以使用默认ios Social Framework的SLComposeViewController

#import <Social/Social.h>

- (IBAction)postToFacebook:(id)sender 
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) 

        SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

        [controller setInitialText:@"Post from my iPhone app"];
        [controller addURL:[NSURL URLWithString:@"http://www.yourlink.com"]];
        [controller addImage:[UIImage imageNamed:@"facebook-image.jpg"]];
        [controller setCompletionHandler:^(SLComposeViewControllerResult result) 

        switch (result) 
             case SLComposeViewControllerResultCancelled:
                 NSLog(@"Post Canceled");
                 break;
             case SLComposeViewControllerResultDone:
                 NSLog(@"Post Sucessful");
                 break;

             default:
                 break;
         
        ];
        [self presentViewController:controller animated:YES completion:Nil];

    

Facebook 分享的文档。 :https://developers.facebook.com/docs/sharing/ios

通过 Graph API:

1) Post image on facebook wall using graph api iphone sdk

2)Photo Upload to own wall via iOS Graph API with user's location

3)http://www.raywenderlich.com/1488/facebook-tutorial-for-ios-how-to-use-facebook-new-graph-api-from-your-iphone-app

【讨论】:

这与 FBSDKSharedialog 相同。但为此,我们必须有登录系统 facebook 帐户。没有登录系统帐户,这是行不通的, @Hirenkanetiya 是的,您必须从设置中使用 facebook 帐户登录 是他们使用 FBSDK Graph API 发布的任何方式吗?在最新的 FacebookSDK 中,请建议。 如果我能找到,我会告诉你的。你说没有 FBShareDialog。 是的,没有 FBShareDialog ,我想使用 FBSDKOpenGraph Api 来分享照片和链接...因为这样我们不需要每次都登录系统帐户。

以上是关于如何在不使用原生 ios 应用程序中的 FBSDKShareDialog 的情况下在 Facebook 墙上分享照片或链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在 fbsdk 登录 React Native 中更改名称应用程序('项目想要使用 facebook.com')iOS

如何在 iPhone 的 Swift iOS 中使用 FBSDK 获取用户电子邮件地址?

FBSDK 登录 - SFSafariViewController 已禁用?

如何使用 FBSDK for iOS 获取 Facebook 好友列表?

新FBSDK 4.0+,使用访问令牌登录或分享

反应原生 fbsdk 设置构建错误