ios5 - 当 facebook 应用程序已经在设备上时发布到 facebook
Posted
技术标签:
【中文标题】ios5 - 当 facebook 应用程序已经在设备上时发布到 facebook【英文标题】:ios5 - posting to facebook when facebook app is already on device 【发布时间】:2012-01-23 07:48:26 【问题描述】:我正在关注facebook url 中提供的信息。如果设备上没有 facebook 应用程序,它运行良好且良好。 考虑 facebook 应用程序不在设备上:我正在授权 facebook 及其开放 safari。我授权该应用程序,返回到 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];
有人可以指出我正在做的错误吗?
【问题讨论】:
【参考方案1】:实际上,当您点击授权时,它将打开 safari,如果设备上有 facebook 应用程序,那么它将打开 facebook 应用程序,否则它将在 safari 中打开 facebook。如果您不想打开 safari 和 facebook 应用程序,那么在 facebook.m 中将这个声明更改为 NO。
[self authorizeWithFBAppAuth:NO safariAuth:NO];
【讨论】:
但我仍然想在不更改 facebook 代码的情况下使用默认功能。但根据 facebook 文档,他们没有提及如何处理这种情况。很糟糕。【参考方案2】:找到了解决方案。问题是 facebook 应用程序中提到的包 ID 和我的应用程序的包 ID 不同,因此它不起作用。 Look the URL to know more
【讨论】:
以上是关于ios5 - 当 facebook 应用程序已经在设备上时发布到 facebook的主要内容,如果未能解决你的问题,请参考以下文章
ios - 将 facebook 与 ios5 应用程序集成
ios5 facebook 应用程序 - 我真的需要 github 吗?