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 应用程序集成

如何在 Facebook 上分享帖子时解决登录问题

ios5 facebook 应用程序 - 我真的需要 github 吗?

facebook整合问题IOS

当iPhone锁定在iOS5上时,如何防止应用程序被发送终止信号?

装有 iOS 5 和 iOS 6 的 Facebook