Facebook授权w /权限请求产生“找不到页面”

时间:2011-09-26 09:23:48

标签: ios facebook permissions single-sign-on authorize

在过去几周的某个地方,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及范围= USER_LOCATION%2Cuser_relationships%2Cemail% 2Cpublish_stream%2Coffline_access&安培; CLIENT_ID = [APP_ID]

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

http://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id= [APPID]&安培; REDIRECT_URI = FB [APPID]%3A%3F%3Fauthorize&安培; SDK = 2及显示=触摸和键入= USER_AGENT&安培; fbconnect = 1&安培;烫发= USER_LOCATION%2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&安培; SSO = iphone-狩猎&安培; from_login = 1

我已经检查过Xcode中列出的Bundle ID与我在Facebook上的应用程序设置中列出的相同。

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

3 个答案:

答案 0 :(得分:5)

好的,我感觉有点傻。

问题是我在Facebook页面的应用程序设置中打开了沙盒。为什么错误页面如此晦涩难以超越我。

  1. 在Facebook开发者设置中:https://developers.facebook.com,修改您的应用设置。
  2. 选择左侧“设置”下的“高级”标签。
  3. 确保未启用“沙盒模式”。

答案 1 :(得分: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)

xxx隐藏了最后3个数字。

答案 2 :(得分: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及显示=触摸和键入= USER_AGENT&安培;的 fbocnnect = 1&安培;烫发= USER_LOCATION%2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&安培; SSO = iphone-狩猎&安培; from_login = 1

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