我开始研究如何以编程方式使用Facebook。
我在我的应用中设置了URL方案,以便我可以使用“myappopenup://”从浏览器中打开它。
然后我在Facebook上创建了一个应用程序。复制了一个AppId并尝试这样做:
let url = NSURL(string: "https://www.facebook.com/dialog/oauth?client_id={MY_APP_ID_WAS_HERE}&redirect_uri=myappopenup://fbcallback")
UIApplication.sharedApplication().openURL(url!)
运行此代码后,模拟器打开了safari(我先尝试过SFSafariViewController)。但我看到的一切都是:
所以,我想知道:是否可以从Facebook oauth重定向到我的应用程序?
答案 0 :(得分:8)
是的,这是可能的。这是必要的 redirect_uri :
https://graph.facebook.com/oauth/authorize
?response_type=token
&client_id='+'1247676148624015
&redirect_uri=fb1247676148624015://authorize
确保您的Facebook应用已设置:
并确保设置了自定义网址方案:
令人失望的评论 - 很可能误导了很多人。但是,这些东西根本没有充分记录。
答案 1 :(得分:1)
我设法让Alex Paterson解决方案在这里工作。我也必须在Facebook登录设置上添加redirect_uri URL。在有效的OAuth重定向URI 部分,我添加了这样的回调网址:
https://graph.facebook.com/oauth/authorize?
response_type=token&
client_id=12345678910&
redirect_uri=fb12345678910://authorize
答案 2 :(得分:1)
我联系了Facebook支持,他们确认不支持:
感谢您的联系。我们将使消息传递更加清晰,但我们不支持自定义URI方案作为有效的重定向URI。要在不打开浏览器的情况下在原生应用中执行登录,请使用官方SDK(https://github.com/xamarin/FacebookComponents您正在寻找的内容?)。
他们在不到12小时的时间内做出了回应,至少令人印象深刻。
答案 3 :(得分:0)
作为其他一些答案&评论表明,我不认为你想要做的事情是由Facebook支持的 - 我的印象是他们真的希望你使用FBSDK完成身份验证并从Facebook接收令牌。
我觉得我已尝试使用someapp://authorize
策略在阳光下进行所有可能的配置,但看起来他们只是希望您为网络应用程序执行此操作。
我正在使用react native(所以这可能不会直接应用。我确定obj-C在实践中有点类似),所以我使用的react-native-fbsdk
库暴露{{1 }}和LoginButton
组件,你可以这样使用它们:
AccessToken