Iphone 为什么fbdidlogin没有';你不打电话吗?
这是我调用facebook对话框的方法。但每次我点击为发布评分时;首先是权限框,然后是发布对话框,我需要授予权限,我想授予权限并保存;保存后,我不想再看到权限框了。我该怎么做?我的代码怎么了 编辑:Iphone 为什么fbdidlogin没有';你不打电话吗?,iphone,objective-c,facebook,permissions,fbdialogs,Iphone,Objective C,Facebook,Permissions,Fbdialogs,这是我调用facebook对话框的方法。但每次我点击为发布评分时;首先是权限框,然后是发布对话框,我需要授予权限,我想授予权限并保存;保存后,我不想再看到权限框了。我该怎么做?我的代码怎么了 编辑: 我的访问令牌和过期日期为空,我想这就是原因。你需要实现Facebook的单点登录功能 此链接提供了实施SSO的分步指南,如果您仔细遵守,您的应用程序将请求一次权限,然后它将不再请求权限(直到用户删除您的应用程序) 请注意,您需要访问www.facebook.com并使用“开发者工具”创建一个新的f
我的访问令牌和过期日期为空,我想这就是原因。你需要实现Facebook的单点登录功能 此链接提供了实施SSO的分步指南,如果您仔细遵守,您的应用程序将请求一次权限,然后它将不再请求权限(直到用户删除您的应用程序)
请注意,您需要访问www.facebook.com并使用“开发者工具”创建一个新的facebook应用程序,您将是该应用程序的管理员,并且您将拥有您的AppID,您也需要它。需要检查的几件事是,您将方法登录处理方法称为“fbdidLogin”,而不是fbdidLogin。这是区分大小写的
确保在视图控制器头文件中添加了FBSessionDelegate作为支持的协议之一。这可能是不调用fbDidLogin的原因。您可以随时添加NSLog以验证是否达到fbDidLogin方法。是的,我查看了此页面以制作我的应用程序,但我正在从另一个viewcontroller(不在ApplicationLegate页面)调用facebook。我再次检查了它,但找不到我丢失的原因?还要帮忙吗?plsi使用nslog检查fbDidlogin,我检查FBSession委托是否包含在内。如果需要,我也可以发布头文件。当然,继续发布头文件并重新发布最新的实现文件。我处理我删除了所有内容并再次写入,旧文件中可能缺少某些内容
- (id)init {
if (self == [super init]) {
facebook = [[Facebook alloc] initWithAppId:kAppId];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
permissions = [[NSArray arrayWithObjects:
@"read_stream", @"user_birthday",
@"publish_stream", nil] retain];
[facebook authorize:permissions delegate:self];
}
[self login];
}
return self;
}
- (void)login {
if (![_session isConnected]) {
[self postToWall];
}
if (![facebook isSessionValid]) {
[facebook authorize:permissions delegate:self];
}
}
- (void)fbdidLogin {
[[NSUserDefaults standardUserDefaults] setObject:self.facebook.accessToken forKey:@"FBAccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:self.facebook.expirationDate forKey:@"FBExpirationDate"];
// User has logged in to Facebook, now get their userId from Facebook
[facebook requestWithGraphPath:@"me" andDelegate:self];
}
-(void)postToWall
{
SBJSON *jsonWriter = [[SBJSON new] autorelease];
NSDictionary *actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:
@"Always Running",@"text",@"http://itsti.me/",@"href", nil], nil];
NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
NSDictionary *attachment = [NSDictionary dictionaryWithObjectsAndKeys:
@"Your Happiness!", @"name",
@"asda", @"caption",
@"asdf", @"description",
nil];
NSString *attachmentStr = [jsonWriter stringWithObject:attachment];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Share on Facebook", @"user_message_prompt",
actionLinksStr, @"action_links",
attachmentStr, @"attachment",
nil];
[facebook dialog:@"stream.publish" andParams:params andDelegate:self];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [facebook handleOpenURL:url];
}