因此网上有很多信息,但其中大部分内容似乎已被弃用。
在我的应用内部,我试图让用户使用FacebookSDK
登录。
我想打开FBSession
,向用户显示Facebook登录屏幕,然后获取他们的登录令牌。
我有一个App Id和一个App Secret,在项目信息中我填充了FacebookAppID(info.plist)。
我不知道该怎么做秘密身份证。我看到旧的引用:
session = [FBSession sessionForApplication:@"=asdfasdfasdf" secret:@"asdfasdfasdf" delegate:self];
但这似乎已被弃用。我的方法的简单版本是这样的:
-(IBAction)fbLogin:(id)sender
{
NSString *fbAccessToken;
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
//If the user has a facebook session already open
if (appDelegate.session.isOpen)
{
fbAccessToken = [appDelegate.session accessTokenData].accessToken;
#ifdef DEBUG
NSLog(@"%@\nFacebook Token = %@", NSStringFromSelector(_cmd), fbAccessToken);
#endif
}
else // there is no facebook session
{
appDelegate.session = [[FBSession alloc] init];
[appDelegate.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
[self fbLogin:self];
}];
}
}
我是Objective-C和Xcode的新手。所以我想我做错了不止一两件事。
这家伙似乎有一些可靠的信息:https://developers.facebook.com/docs/facebook-login/ios/v2.0
但我真的无法从我的Facebook开发者页面找到我需要如何使用我的'App Secret'。
由于
答案 0 :(得分:0)
据我所知,您不需要在应用中使用应用秘密。我已经按照您在问题中添加的相同链接,但由于我更喜欢拥有自己的登录用户界面,因此我遵循了this particular section from the tutorial。将应用ID添加到我的应用plist
文件后,这就是我让用户从我的应用登录Facebook的方式:
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
// Retrieve the app delegate
AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
// Call the app delegate's sessionStateChanged:state:error method to handle session state changes
[appDelegate sessionStateChanged:session state:state error:error];
if(!error && state == FBSessionStateOpen) {
// Do something else
}
}];
希望这有帮助。