无法通过权限验证

4
我遇到的问题是,在登陆后,点击safari中的“确定”按钮之后,无法继续进行!Safari 无法打开。https://m.facebook.com/dialog/permissions.request(在 .plist 文件中,我已经添加了正确的 URL 类型 (fb[yourappid]host))。
facebook = [[Facebook alloc] initWithAppId:@"myappId" 
                           urlSchemeSuffix:@"host" 
                               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 alloc] initWithObjects:
                        @"user_likes", 
                        @"read_stream",
                        nil];

if (![facebook isSessionValid]) {
    [facebook authorize:permissions];
    [permissions release];
}

登录后的登录屏幕图片:

http://tinyurl.com/chc5urf

2个回答

0

直接在您的应用程序目标下的“信息”选项卡中检查URL类型部分,确保如果您有facebookID = 1234,则URLSchemes为fb1234。

根据Xcode版本,它将是自定义iOS目标属性中的另一个字段,或者它将位于底部名为URL类型的不同部分中。


0

请仔细阅读并确保以正确的格式编写urlSchemeSuffix

urlSchemeSuffix是一个小写字母字符串,附加到用于SSO的基本URL方案。例如,如果您的Facebook ID是“350685531728”,并且您将urlSchemeSuffix设置为“abcd”,则Facebook应用程序将期望您的应用程序绑定到以下URL方案:“fb350685531728abcd”。如果您有多个iOS应用程序共享单个Facebook应用程序ID(例如,如果您在同一应用程序上有免费和付费版本),并且您想要在两个应用程序中使用SSO,则给两个应用程序不同的urlSchemeSuffix值将允许Facebook应用程序消除它们的URL方案,并始终将用户重定向回正确的应用程序,即使免费和应用程序都安装在设备上。urlSchemeSuffix支持Facebook应用程序3.4.1及以上版本。如果用户安装了旧版本的Facebook应用程序,并且您的应用程序使用urlSchemeSuffix参数,则SDK将继续进行,就好像Facebook应用程序未安装在设备上,并将用户重定向到Safari。


已经阅读并将其添加到Facebook应用程序页面中。对于我来说,我正在使用fb230940023940host(示例appkey)。 - Miko
@Miko,你把appid中的方括号删除了吗?请检查plist文件并确保已将它们删除。 - Malek_Jundi
尝试移除您的应用程序,清理并重新构建.. 我非常确定问题出在urlScheme上。 - Malek_Jundi
已经尝试过这些操作:执行了该操作,删除了文件,清理了并重新构建了项目,但问题仍然存在。 - Miko
请打开您的info.plist源代码,并向我展示保存urlScheme的部分。当然,您会放置一个虚拟密钥 :) - Malek_Jundi
搞定了,看起来我忘记添加底层的urlScheme并且把密钥添加在了url类型下面!感谢你的帮助。 - Miko

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