2

私はまだ XCode 4.3.2 と iOS 5.1 ベース SDK を使用しています。私が達成したいのは、Facebook API を iOS 5.0 以降のデバイスに統合することです。代理投稿や基本的なユーザー情報の取得などの基本的な機能のみ。

私は、iOS 5 で動作する Facebook SDK が iOS 6 でも動作すると仮定していますが、それについては確信が持てません。

Facebook インテグレーションの新人として、誰でもこの問題に光を当てることができます。(私はプロジェクトに取り組んでいるので、XCode と iOS SDK のアップグレードはオプションではありません)

  • どの iOS SDK を調べる必要がありますか?
  • 基本 SDK 5.1 と XCode 4.3 で iOS 5 と 6 の両方をサポートできますか?
  • 両方の iOS バージョンをサポートする API はありますか?
  • Facebook との統合に必要なものはありますか?
4

1 に答える 1

2

まず、Facebook 開発者から公開されたこの記事をお読みください。

http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/

ステップ1では、xcode 4.3でも機能します

すべての手順を 1 つずつ注意深く読み、実装します

ステップ6では、Facebook Btnが押された場所に次のようにコードを記述します

 - (IBAction)facebookBtnPressed:(id)sender
{


        // if it is available to us, we will post using the native dialog
        BOOL displayedNativeDialog = [FBNativeDialogs presentShareDialogModallyFrom:self
                                                                        initialText:[NSString stringWithFormat:@"Here U write code which u want to post on facebook"]
                                                                              image:[UIImage imageNamed:@"1.jpg"]
                                                                                url:[NSURL URLWithString:@""]
                                                                            handler:nil];

        if (!displayedNativeDialog)
        {
            NSString *shareStr = [NSString stringWithFormat:@"Here U write code which u want to post on facebook"];
            NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
                                           shareStr,@"description",
                                           @"sharelink", @"link",
                                           @"ImageName", @"picture",
                                           nil];

            [self performPublishAction:^{

                [FBRequestConnection startWithGraphPath:@"me/feed" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

                    if (error)
                    {
                        NSLog(@"error in post");
                    }
                    else
                    {
                        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Post Successfully" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
                        [alert show];
                    }

                }];
            }];
        }
    //}

    //===set delagate in Viewcontroller.h of mySLComposerSheet
    [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
        NSString *output;
        switch (result) {
            case SLComposeViewControllerResultCancelled:
                output = @"Action Cancelled";
                break;
            case SLComposeViewControllerResultDone:
                output = @"Post Successfully";
                break;
            default:
                break;
        } //check if everything worked properly. Give out a message on the state.
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [alert show];
    }];
}

- (void) performPublishAction:(void (^)(void)) action {
    if ([[FBSession activeSession]isOpen]) {
        /*
         * if the current session has no publish permission we need to reauthorize
         */
        if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound) {
            [[FBSession activeSession] reauthorizeWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                                         defaultAudience:FBSessionDefaultAudienceOnlyMe
                                                       completionHandler:^(FBSession *session, NSError *error) {
                                                           action();
                                                       }];
        }else{
            action();
        }
    }else{
        /*
         * open a new session with publish permission
         */
        [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                           defaultAudience:FBSessionDefaultAudienceOnlyMe
                                              allowLoginUI:YES
                                         completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
                                             if (!error && status == FBSessionStateOpen) {
                                                 action();
                                             }else{
                                                 NSLog(@"error");
                                             }
                                         }];
    }
}
于 2013-03-18T07:30:32.883 に答える