facebook redirect_uri设置为ios URL Scheme

时间:2016-07-08 07:26:23

标签: ios facebook facebook-graph-api

我开始研究如何以编程方式使用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)。但我看到的一切都是:

enter image description here

所以,我想知道:是否可以从Facebook oauth重定向到我的应用程序?

4 个答案:

答案 0 :(得分:8)

是的,这是可能的。这是必要的 redirect_uri

  https://graph.facebook.com/oauth/authorize
  ?response_type=token
  &client_id='+'1247676148624015
  &redirect_uri=fb1247676148624015://authorize

确保您的Facebook应用已设置:

Facebook App Setup

并确保设置了自定义网址方案:

enter image description here

令人失望的评论 - 很可能误导了很多人。但是,这些东西根本没有充分记录。

答案 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