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
この時点で、アプリケーションにログインして再認証する必要があると想定していますが、これまでに見たチュートリアルには、その方法についての指示はありません。
結局のところ、質問は 2 つあります。実行する必要があるすべてのアクションを実行するために、Facebook の Facebook SDK を使用する必要がありますか? そうでない場合は、どのようにしてアプリを再認証するのですか? SocialKitだけ?