iOS 7 是不是需要 Facebook SDK?

Posted

技术标签:

【中文标题】iOS 7 是不是需要 Facebook SDK?【英文标题】:Is the Facebook SDK Required with iOS 7?iOS 7 是否需要 Facebook SDK? 【发布时间】:2013-11-02 15:54:28 【问题描述】:

ios 上使用 Facebook 时,我不是新手,但我的第一次尝试是使用 iOS 5 和 iPhone 3GS。使用 Facebook 的 Facebook SDK (https://developers.facebook.com/docs/ios/) 是唯一的方法。

快进到 iOS 7(实际上是 iOS 6),Apple 提供了 SocialKit、Account SDK 等,网上有很多教程可以做这样的事情:

if ([self userHasAccessToFacebook]) 

    ACAccountStore* accountStore = [[ACAccountStore alloc]init];

    ACAccountType*  facebookAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];

    NSDictionary* options = @ACFacebookAppIdKey:        FACEBOOK_APP_KEY,
                              ACFacebookPermissionsKey:  @[@"publish_stream"],
                              ACFacebookAudienceKey:     ACFacebookAudienceEveryone;

    [accountStore
     requestAccessToAccountsWithType:facebookAccountType
     options:options
     completion:^(BOOL granted, NSError *error) 
       if (granted) 

如果我已经在其他地方授权了我的 Facebook 应用程序(在这种情况下,我已经通过 android 设备上的登录对话框),这可行,但在撤销访问权限后(当然是为了测试),我得到了

message = "验证访问令牌时出错:会话不匹配 当前存储的会话。这可能是因为用户更改了 自会话创建或 Facebook 拥有的密码 出于安全原因更改了会话。";

当我尝试分享到 Facebook 时。这甚至是requestAccessToAccountsWithType 表示已授予访问权限之后。

我假设此时我需要登录并重新授权我的应用程序,但到目前为止我所看到的教程都没有提供任何关于如何执行此操作的指示。

归根结底,问题有两个:我是否需要使用 Facebook 的 Facebook SDK 来执行我需要执行的所有操作,如果不需要,如何获得仅使用 SocialKit 重新授权的应用?

【问题讨论】:

如果您只想发布到用户时间线,并且不需要支持iOS6以下,那么您不需要SDK。关于失败的访问,现在由“设置”应用程序控制,因此如果您遇到错误,您需要告诉您的用户他们需要允许从那里访问(我认为!) 【参考方案1】:

基本上不用sdk就可以和Facebook集成,只要用户已经在iOS的设置中登录即可, 否则你会得到一个错误结果

您应该使用的对象是 SLComposer。 (您可以通过网络找到许多示例和教程)。

如果它让你满意,那没关系,但我建议使用 Facebook sdk,用于使用原生 Facebook 应用程序,这样你就不会失去那些没有通过 iOS 设置使用 Facebook 帐户登录的人。 您将能够尝试并使用本机应用程序集成。

不要犹豫,寻求进一步的帮助。

【讨论】:

以上是关于iOS 7 是不是需要 Facebook SDK?的主要内容,如果未能解决你的问题,请参考以下文章

facebook-ios-sdk 是不是使用 iOS 6 Facebook 集成来支持登录而不打开本机 Facebook 应用程序?

ios 应用程序的用户是不是可以使用 facebook-sdk 在 facebook 上喜欢 URL?

Facebook 使用 Parse SDK 登录(iOS 9、Xcode 7.1、Swift 2.1)

Facebook iOS SDK:使用 Facebook 登录失败

使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册

在 Facebook iOS SDK 中检查 Facebook 对话帖子是不是成功