我们正在编写一个与Facebook集成的原生iOS应用程序。几个月前,我们通过developers.facebook.com建立了一个占位符FB应用程序,并通过它进行了所有测试。现在我们已经接近发布了,我想我已经设置了一个新的,干净的,“正确的”FB应用程序,包含所有正确的应用程序描述/ URL字段/等。
作为第一步,我将新应用程序设置为尽可能与旧应用程序类似,并成为新的测试用户。旧的应用程序工作正常,所以我有理由相信我们的iOS代码是正确的(是的,我已经在XCode项目中切换了应用程序ID等等),但是当我们运行新的应用程序时,我们得到了这种行为尝试与用户授权应用程序时:
如果已安装iOS Facebook应用并且测试用户已登录:
如果我从设备上卸载Facebook应用程序,从而强制请求屏幕显示在Safari中,我们会得到相同的行为,除了上面的第(3)点替换为:
3)设备警报说“Safari无法打开页面,因为地址无效”。这是它尝试打开的地址:https://m.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=< * our_app_id *>& redirect_uri = fb< * our_app_id *>%3A%2F%2Fauthorize& sdk = ios& display = touch& type = user_agent& ;烫发=电子邮件&安培; fbconnect = 1&安培; SSO = iphone-狩猎&安培; from_login = 1&安培; CLIENT_ID = LT; * our_app_id * GT;&安培; REFID = 9
我发现在iOS 5.1和6.0硬件设备和6.0模拟器上这种行为是相同的。使用旧的FB应用程序,授权正确返回。我确信在应用程序管理页面中我没有正确设置一个神奇的,几乎没有记录的选项复选框,但我真的不知道如何找出问题所在。
感谢您的任何建议!
答案 0 :(得分:1)
由于它没有返回到您的应用,您可能忘记将URL方案添加到Info.plist中。你应该有一个新的条目,这里是它的XML表示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbYOUR_APP_ID</string>
</array>
</dict>
</array>
</plist>