7

在过去几周的某个地方,iOS 中的授权 Facebook 调用失败并显示“未找到页面”。对于尚未安装应用程序的任何用户或应用程序的权限已更改且用户必须批准附加权限的用户都会发生这种情况。无论 Facebook 应用程序处理用户身份验证、Safari 还是弹出对话框,都会发生这种情况。全部重定向到“未找到页面”页面。

通过调试器挖掘,我发现登录屏幕的初始 URL 请求是(app id 替换“[app_id]”):

https://m.facebook.com/dialog/oauth?type=user_agent&display=touch&redirect_uri=fb[app_id]%3A%2F%2Fauthorize&sdk=2&scope=user_location%2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&client_id=[app_id]

登录尝试正在寻找以下 URL(我假设用户没有足够的权限):

http://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=[appid]&redirect_uri=fb[appid]%3A%3F%3Fauthorize&sdk=2&display=touch&type=user_agent&fbconnect=1&perms=user_location%2Cuser_relationships% 2Cemail%2Cpublish_stream%2Coffline_access&sso=iphone-safari&from_login=1

我检查了 Xcode 中列出的 Bundle ID 是否与 Facebook 中我的应用程序设置列出的相同。

由于权限页面未显示,新用户无法添加应用程序。以前可以运行的旧版本的应用程序也以同样的方式失败。可能是什么问题呢?

4

3 回答 3

5

好吧,我觉得有点傻。

问题是我在 Facebook 页面的应用程序设置中打开了沙盒。为什么错误页面如此迟钝是我无法理解的。

  1. 在 Facebook 开发者设置:https ://developers.facebook.com中,编辑您的应用设置。
  2. 选择左侧“设置”下的“高级”选项卡。
  3. 确保未启用“沙盒模式”。
于 2011-09-27T05:44:16.567 回答
3

当我的 App ID 在 Info Plist 中不正确时,我遇到了同样的问题。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb305639062848xxx</string>
        </array>
    </dict>
</array>

我发现,不是必须放 Apple App ID,而是 Facebook App ID。(一般在你的 Facebook 开发者网页的应用设置中,在 App Name 下有 App ID 和 App Secret)

最后 3 个数字被 xxx 隐藏。

于 2012-05-17T14:04:00.610 回答
0

如果您发布的链接正是您的应用程序中的链接,则“redirect_uri”参数缺少字母“e”。“fbconnect”也是如此。

http://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=[appid]& redirct_uri =fb[appid]%3A%3F%3Fauthorize&sdk=2&display=touch&type=user_agent& fbocnnect =1&perms=user_location% 2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&sso=iphone-safari&from_login=1

此外,您应该确保您[appid]是正确的,并且fb[appid]%3A%3F%3Fauthorize是您的应用程序的正确 FB 处理程序链接。

于 2011-09-26T10:24:20.383 回答