ios - 在 iOS 5 和 6 中使用 Facebook 实现登录

标签 ios facebook

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

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

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

Login With Facebook

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

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

谢谢.......

最佳答案

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

  • here 下载适用于 iOS 的 Facebook SDK
  • 在您的 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;
    
  • 在您的 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
    

    并发布facebookdealloc
  • 在你想用 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");
        }       
    }
    
  • 登录后,会自动调用 Facebook SDK 委托(delegate)方法。在委托(delegate)方法中做你的事情。
    - (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
    {
    
    }
    
  • 关于ios - 在 iOS 5 和 6 中使用 Facebook 实现登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271792/

    相关文章:

    ios - 在 linux 上为 theos 安装 ldid

    ios - 在 Objective C 中对宏值进行字符串化?

    Android 发布到 Facebook 墙,stream.publish 几天后就坏了

    iPhone Facebook 登录屏幕问题

    ios - 将数据传递给 AppDelegate 中的变量

    ios - Objective-C 如何编写 Wifi 断开连接弹出通知?

    ios - flutter_blue^0.6.3 文件未找到 #import "google/protobuf/Any.pbobjc.h"Flutter

    javascript - Facebook 评论镜像不起作用

    Facebook Like 按钮在我的网站上喜欢 Facebook 页面,而不是我的网站

    ios - AeroGear for iOS Facebook 配置