【问题标题】:How to setup Facebook iOS SDK properly with Parse in AppDelegate?如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?
【发布时间】:2015-07-14 15:51:21
【问题描述】:

我正在尝试将 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 设置,或者向我解释我做错了什么,我将不胜感激。

【问题讨论】:

    标签: ios objective-c facebook parse-platform


    【解决方案1】:

    在这里我分享我如何使用 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];
    }
    

    希望这会有所帮助。

    【讨论】:

    • 我认为它适用于较旧的 sdk 版本。你现在用的是哪个版本?
    • 我想我关注了Parse's tutorial on how to integrate FB。我暂时采用这种方式,因为它对我有用。
    • 是的,由于 ParseFacebookUtilsV4 使用 FB 4+,因此已弃用此功能
    猜你喜欢
    • 2012-07-17
    • 2021-01-25
    • 2011-07-21
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多