如何使用 WebView 中的 JS API 登录 facebook

问题描述 投票:0回答:3

我想从移动设备(

FaceBook
)使用
WebView
登录。 我正在尝试使用本教程中的示例登录https://developers.facebook.com/docs/facebook-login/login-flow-for-web

但是我收到以下错误

应用程序配置不允许给定 URL。: 一个或 应用程序的设置不允许更多给定的 URL。它必须 匹配网站 URL 或画布 URL,或者域必须是子域 应用程序域之一的。

根据这个手册,我必须使用伪造的

redirect_uri
来让oauth服务从
WebView

登录

https://www.facebook.com/connect/login_success.html

现在,连接字符串看起来像这样

https://www.facebook.com/connect/ping?client_id=188978851312862&domain=&origin=1&redirect_uri=http://static.ak.facebook.com/connect/xd_arbiter.php?version=29#cb=fc2b211fc&domain= &origin=file%3A%2F%2F%2Ff3b6d7ef1c&relation=parent&response_type=token,signed_request,code&sdk=joey

如果您访问此链接,您将收到错误消息。但如果我把

redirect_uri
改成这个

https://www.facebook.com/connect/ping?client_id=188978851312862&domain=&origin=1&redirect_uri=https://www.facebook.com/connect/login_success.html&domain=&origin=file%3A%2F%2F% 2Ff3b6d7ef1c&relation=parent&response_type=token,signed_request,code&sdk=joey

一定会成功的。

是否可以设置伪造的重定向uri并使用标准JS API

UPD: 实际上授权完成得很好,但是API的事件(auth.authResponseChange)没有触发。当我从移动设备的 WebView 登录时,

origin
中的
redirect_uri
参数设置为
file://
中的问题。

javascript facebook qt webview
3个回答
0
投票

据我所知,如果您在 WebView 中,建议“重定向到 https://www.facebook.com/connect/login_success.html”,这样它将重定向到那里,并使用一些身份验证密钥“也在 url 中”,然后您可以解析它们并关闭您的 WebView,所以基本上是一次性标注,FWIW。我的另一个猜测是,起源就在那里,但他们没有实际检查或使用[?]

就“使用标准 JS API”而言,我认为你可以,但它不简单,请参见此处


0
投票

同样的问题,我也想从桌面应用程序 WebView 登录 Facebook)。我正在尝试使用本教程中的示例登录https://developers.facebook.com/docs/facebook-login/login-flow-for-web

但出现此错误

应用程序配置不允许给定 URL。:应用程序设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者该域必须是应用程序域之一的子域。

根据手动重定向网址应该是 https://www.facebook.com/connect/login_success.html 并且我也设置了此网址(在应用程序仪表板左侧导航菜单中的产品下,单击 Facebook 登录,然后单击“设置”。如上所述,验证“客户端 OAuth 设置”部分中的有效 OAuth 重定向 URI,但这里它给了我一个警告,因为“这不能是 facebook url”。


-1
投票

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.0你在使用这个吗?如果您需要更多帮助,请给我留言,只需制作其中一个

© www.soinside.com 2019 - 2024. All rights reserved.