【发布时间】:2012-06-28 12:22:04
【问题描述】:
我想制作一个应用程序,询问是否在 iphone 中安装或未安装 facebook 应用程序时在对话框中对 facebook 登录进行身份验证。如果我注销 facebook,那么它应该从 facebook 注销。我已将 facebook-ios-sdk 用于 facebook api 我的代码如下:
- (void)viewDidLoad
{
_facebook=[[Facebook alloc] initWithAppId:appId andDelegate:self];
self.navigationController.navigationBarHidden = YES;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"])
{
_facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
_facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
[super viewDidLoad];
}
//点击登录按钮
-(IBAction)Login
{
NSLog(@"login called");
if (![self connected])
{
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Connection" message:@"Internet is not Connected" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];[alert release];
}
else
{
if (suggestion==nil)
{
suggestion=[[Suggestions alloc] initWithNibName:@"Suggestions" bundle:nil];
}
[suggestion setReqFlg:YES];
if (![_facebook isSessionValid])
{
NSLog(@"sesssion invalid u have to login...");
[_facebook authorize:nil];
}
else
{
NSLog(@"valid and going on next page called graph API ");
[_facebook requestWithGraphPath:@"me?fields=id,name" andDelegate:self];
suggestion.parentView=self;
[self.navigationController pushViewController:suggestion animated:YES];
}
}
}
- (void)fbDidLogin
{
NSLog(@"facebook did first login..");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[_facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[_facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
NSLog(@"called gtraph from login in facebook ");
[_facebook requestWithGraphPath:@"me?fields=id" andDelegate:self];
if (suggestion==nil)
{
suggestion=[[Suggestions alloc] initWithNibName:@"Suggestions" bundle:nil];
}
suggestion.parentView=self;
[self.navigationController pushViewController:suggestion animated:YES];
}
- (void)fbDidLogout
{
NSLog(@"logout");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"FBAccessTokenKey"];
[defaults removeObjectForKey:@"FBExpirationDateKey"];
[defaults removeObjectForKey:@"FBUserId"];
[defaults synchronize];
}
我是否必须在 facebook.m 文件中进行更改,或者有其他方法可以做到这一点。每次我点击登录按钮时,如果 facebook 已注销,则应显示 facebook 登录对话框;如果 facebook 已登录,则导航到下一个视图。不要打开安装在 iphone 中的 facebook 应用程序以进行登录。
给你的评论或答案我真的需要它。 谢谢你!
【问题讨论】:
-
如果我点击登录按钮,它会转到安装在我 iphone 中的 facebook 应用程序进行身份验证。我想在 facebook 对话框中显示它。
-
我很确定苹果不会让你从自己的应用程序登录 facebook
-
它登录但使用 facebook 应用程序我不想使用它我想使用 facebook 对话框登录而不是 facebook 应用程序
-
我已经用过,这样不行
标签: iphone objective-c ios