3

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だけ?

4

1 に答える 1

1

基本的にはSDKを使わなくてもFacebookと連携できますが、iOSの設定でユーザーがログイン済みであれば、ログインしていないとエラーになります。

使用するオブジェクトは SLComposer です。(Web 経由で多くの例とチュートリアルを見つけることができます)。

それが満足できるものであれば問題ありませんが、ネイティブの Facebook アプリケーションを使用するために Facebook SDK を使用することをお勧めします。これにより、iOS 設定を介して Facebook アカウントでログインしていないユーザーを失うことはありません。ネイティブ アプリの統合を試して使用することができます。

さらに助けを求めることを躊躇しないでください。

于 2013-12-30T18:43:18.200 に答える