在 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?