Facebook SDK 3.1对iOS 6本地支持的问题

3

我曾在我的一个应用程序中使用Facebook SDK 3.0,一切正常。如果安装了Facebook应用程序,则它会将用户重定向到Facebook应用程序,否则重定向到移动网站。

上周,我集成了新的SDK 3.1,以实现与Facebook账户的本地集成。为此,我从以下内容进行了更改:

[FBSession openActiveSessionWithPermissions:permissions                               allowLoginUI:YES                          completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {    /* My code here */}];

现在已经废弃,可以使用新的方法:

[FBSession openActiveSessionWithPublishPermissions:permissions
                                   defaultAudience:FBSessionDefaultAudienceFriends
                                      allowLoginUI:YES
                                 completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
    /* My code here */

}];

在iOS 5上,没有任何变化,完美。 在iOS 6上,它在我的设备上运行正常,但我有一些用户报告说系统要求他们授权,但他们无法连接。实际上,我有一个视频,即使在系统要求Facebook权限时单击“确定”,应用程序也无法访问帐户,甚至未在“系统偏好设置”中注册。这是视频:http://www.youtube.com/watch?v=JUHF9KNNg6M如果我从系统中删除该帐户,则所有内容均如Facebook SDK 3.0先前预期的那样工作。 是否还有人遇到过此问题?或者您有任何想法如何解决这个问题?

@Ludovic 我无法在 .m 文件中写入 FBSession。我需要导入哪个框架? - Hitarth
3个回答

2
你把你的权限请求分开了吗?
iOS 6内置的身份验证对话框为开发人员提供了一种使用Facebook登录在他们的应用程序中的本地方法,而无需进行快速应用程序切换。请注意,要使用iOS 6本机身份验证,应用程序需要更改它们向用户请求权限的方式 - 应用程序必须将它们的读取和写入权限请求分开。iOS的Facebook SDK支持这些功能,并帮助开发人员使用它们构建适用于多个iOS版本和设备配置的应用程序。

https://developers.facebook.com/docs/howtos/ios-6/


好的,所以我们需要使用openActiveSessionWithReadPermissions: allowLoginUI:completionHandler:来登录,并在第二次需要时请求其他权限,例如write publish_stream。 - Ludovic Landry

1

0

我想你的问题可能是你在 Facebook 上没有指定你的包标识符。 我也遇到过这个问题,一旦我在 developers.facebook.com 中指定了包标识符,一切都开始正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接