1

这个问题看起来是重复的,它是 50% 重复的,因为我在任何地方都找不到好的答案。

让我把我的问题分成三个部分。

当前情况: 我已经使用电子邮件、出生日期、性别和邮政编码实现了注册屏幕。
这很好用。我还在 iOS 5 和 6 的 facebook 和 twitter 中实现了共享功能,
但现在我想用 facebook 和 twitter 实现它,如
下面的示例屏幕所示:

使用 Facebook 登录

问题是什么: 我想知道如何在 iOS 5 中使用 facebook 实现登录。twitter 与 ios 5 和 6 集成,Facebook 与 iOS 6 集成,所以这没什么大不了的(现在我认为是这样)。我已经为 iOS 5 和 6 实现了 twitter 和 facebook 的共享功能。所以我还需要做些什么来实现登录。

我得到的回应: 正如我所说,我在注册时需要电子邮件、出生日期、性别和邮政编码。如果我使用 facebook 和 twitter 登录,如何获取此信息。如果用户没有给出或屏蔽这个社交网站的这些信息,我该怎么办。

谢谢.......

4

2 回答 2

5

以下是我在我的应用程序中实现此功能的方式:

  1. 从此处下载适用于 iOS 的 Facebook SDK

  2. 在您AppDelegate.h创建 Facebook 对象的属性。

    #import <UIKit/UIKit.h>
    #import "Facebook.h"
    
    @interface OutpearAppDelegate : NSObject <UIApplicationDelegate> {
        UIWindow *window;
        IBOutlet UINavigationController *navigationController;        
    }
    
    @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
    @property (nonatomic, retain) IBOutlet UIWindow *window;
    @property (nonatomic, retain) Facebook *facebook;
    +(DemoAppDelegate*)getAppDelegate;
    
  3. 在你AppDelegate.m写这个:

    synthesize facebook;
    

    并在您的applicationDidFinishLaunching方法中写下:

    // Initialize Facebook with app ID
    facebook=[[Facebook alloc]initWithAppId:FB_APP_KEY andDelegate:nil];
    //here FB_AP_Key is your Facebook application key
    

    facebook并释放dealloc

  4. 在你想用 Facebook 登录的地方写下这个函数:

    - (void)loginWithFacbookIdClicked
    {
        [DemoAppDelegate getAppDelegate].facebook.sessionDelegate=self;
    
        if(isInternetAvailable)
        {
            if([[DemoAppDelegate getAppDelegate].facebook isSessionValid])
            {
                //[facebookIntegration getUserFacebookPersonalInfo];
                 NSLog("User already logined with facebook");
            }
            else
            {
                [[DemoAppDelegate getAppDelegate].facebook authorize:[NSArray arrayWithObjects:@"read_stream",
                                     @"publish_stream",
                                     @"email",
                                     @"user_birthday",
                                     @"friends_about_me",
                                     @"friends_activities",
                                     @"friends_likes",
                                     nil]];
            }
        }
        else
        {
           NSLog("No Internet Connection");
        }       
    }
    
  5. 登录后,会自动调用 Facebook SDK 委托方法。在委托方法中做你的事情。

    - (void)fbDidLogin
    {
       NSLog("Logged into Facebook");
       // Your logic goes here.   
    }
    
    -(void)fbDidNotLogin:(BOOL)cancelled
    {
        DLog(@"Login Cancelled");
    }
    
    -(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt
    {
    
    }
    
    -(void)fbSessionInvalidated
    {
    
    }
    
    -(void)fbDidLogout
    {
    
    }
    
于 2013-01-11T07:40:40.013 回答
2

最简单的方法是从 github拉这个链接。它包含一些示例代码。这将帮助您立即启动并运行。另请查看此 Facebook教程

于 2013-01-11T06:26:23.020 回答