如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?
Posted
技术标签:
【中文标题】如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?【英文标题】:How to setup Facebook iOS SDK properly with Parse in AppDelegate? 【发布时间】: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 设置,或者向我解释我做错了什么,我将不胜感激。
【问题讨论】:
【参考方案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+,因此已弃用此功能以上是关于如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?的主要内容,如果未能解决你的问题,请参考以下文章
Parse 和 Facebook 的问题 - 无法识别应用程序