【问题标题】: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。关于失败的访问,现在由“设置”应用程序控制,因此如果您遇到错误,您需要告诉您的用户他们需要允许从那里访问(我认为!)

标签: ios objective-c facebook


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-09-09
    • 2011-04-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2021-08-26
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多