在过去几周的某个地方,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上的应用程序设置中列出的相同。
由于未显示权限页面,新用户无法添加该应用。过去工作的我的应用程序的旧版本也以同样的方式失败。可能是什么问题呢?
答案 0 :(得分:5)
好的,我感觉有点傻。
问题是我在Facebook页面的应用程序设置中打开了沙盒。为什么错误页面如此晦涩难以超越我。
答案 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处理程序链接。