ios - 如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?

标签 ios objective-c facebook parse-platform

我正在尝试将 Facebook 集成到我的 Parse 项目中,但我在使用新版 SDK 时遇到了问题。

对于旧版本,我只是将相关的头文件导入到我的 AppDelegate 中,粘贴了两个方法并且效果很好。

我是这样做的:

//  AppDelegate.m
#import <Parse/Parse.h>
#import <ParseFacebookUtils/PFFacebookUtils.h>
#import <FacebookSDK/FacebookSDK.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


    [Parse setApplicationId:@"xy"
                  clientKey:@"xy"];
    [PFFacebookUtils initializeFacebook];

    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];

    return YES;
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                        withSession:[PFFacebookUtils session]];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {


    [FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]];


}

但现在 Facebook SDK 包含多个框架,需要或不需要哪个框架不是很清楚。实际上,我正在尝试以下代码,但收到此错误:Use of undeclared identifier 'PFFacebookUtils'

  // AppDelegate.m
#import <Parse/Parse.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


    [Parse setApplicationId:@"xy"
                  clientKey:@"xy"];
    [PFFacebookUtils initializeFacebook];

    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];

    return YES;
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [FBSDKAppEvents activateApp];
}

如果有人可以在 AppDelegate 中使用 Parse 向我展示他自己的 Fb sdk 设置或向我解释我做错了什么,我将不胜感激。

最佳答案

在这里,我分享了我如何使用 Parse 将 FB 集成到我的项目中。

AppDelegate.m

#import <ParseFacebookUtils/PFFacebookUtils.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  ...
  [PFFacebookUtils initializeFacebook]; // don't forget this. it's not mentioned in tutorial
  ...
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                        withSession:[PFFacebookUtils session]];
}

- (void)applicationWillTerminate:(UIApplication *)application {
    [[PFFacebookUtils session] close];
}

希望这对您有所帮助。

关于ios - 如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411484/

相关文章:

ios - 谷歌登录 API

ios - 如何获取 iOS 中 Google 云端硬盘中文件夹的标识符?

ruby-on-rails - 如何使用 Koala 从 Facebook 登录创建 Rails 应用程序用户?

iphone - 如何检查 ios 的互联网连接类型

ios - 如何实现 UICollectionView 中页面之间的间距?

ios - 核心数据 : How to fault freshly created managed objects

ios - 等于 : and isKindOfClass: - Which is faster?

iphone - 在核心数据(Objective-C,iPhone,Xcode)中选择不同的值(2个或更多)

objective-c - 在 Facebook 照片上传中标记 friend

javascript - 使用 jquery css 方法拉伸(stretch)图像以适应 div