我正在关注facebook url中提供的信息。如果Facebook应用程序不在设备上,它的运行良好和良好。
考虑Facebook应用程序不在设备上:我正在授权Facebook及其开放的野生动物园。我授权应用程序,回到ios应用程序,它在FBSessionDelegate中调用委托“fbDidLogin”。我正在保存上述URL中提到的访问令牌和到期日期。然后,我可以发布它facebook。这很好。
现在,Facebook应用程序在设备上可用并登录:当我打电话给“授权”时,它打开Facebook应用程序并授权应用程序,然后回到ios应用程序。但它没有调用“fbDidLogin”委托方法。我该如何识别或捕获访问令牌和到期日期?
我正在编写以下代码:
facebook = [[Facebook alloc] initWithAppId:FB_APPID andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"])
{
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
NSArray* permissions = [NSArray arrayWithObjects:@"publish_stream",nil];
if (![facebook isSessionValid])
{
[facebook authorize:permissions];
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults setBool:YES forKey:@"IIRY_FACEBOOK"];
[defaults synchronize];
}
有人可以指出我正在做的错误吗?
答案 0 :(得分:0)
实际上当你点击授权然后它将打开safari并且如果在设备上有facebook应用程序然后它将打开facebook app否则它将在safari中打开facebook。如果您不想打开Safari和facebook应用程序,那么在facebook.m中将此语句更改为调用NO的所有位置。
[self authorizeWithFBAppAuth:NO safariAuth:NO];
答案 1 :(得分:0)
找到解决方案。问题是Facebook应用程序中提到的捆绑ID和我的应用程序的捆绑包ID不同,所以它不起作用。 Look the URL to know more