Facebook app oauth对话框错误

时间:2011-07-22 04:03:53

标签: facebook oauth

我几天来一直在寻找答案而且我没有成功,所以我最后发帖询问。

我正在开发一个本地的Facebook应用程序(它说我可以在指南中本地开发)并在尝试授权应用程序时遇到问题。

以下是我指向http://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=https://apps.facebook.com/MY_APP_NAME

时收到的错误信息
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Error
An error occurred with Footmarker. Please try again later.

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Canvas URL&网站网址:http://localhost:8888/app/

我正在使用EasyPHP端口8888.我尝试将端口号更改为80(默认值),8080(Facebook指南中使用的端口号)并且没有成功。

我不知道EasyPHP是导致问题还是我做错了。

这件事让我发疯。非常感谢。感谢。

3 个答案:

答案 0 :(得分:2)

在此网址中:http://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=https://apps.facebook.com/MY_APP_NAME

您必须设置redirect_uri=http://localhost:8888/app并在Facebook应用的设置中(App domains字段中)授权localhost域。

网站网址&出于安全原因,Canvas URL用于检查redirect_uri是否未设置为其他URL,但标准指定了redirect_uri,因此他们已使用此参数。

这是我构建的OAuth.io这种错误。我们不希望像你这样的更多开发人员使用OAuth头疼。

使用它非常简单:

OAuth.popup('facebook', function(err, res) {
    // here, you can use res.access_token to make your API Call
    // or...
    res.get('/me')
       .done(function(data) {
        alert('Hello ' + data.name)
    })
})

有了这个,你就不能再犯错了URL:)

答案 1 :(得分:0)

此处的问题是您的网址不在互联网上。它只能从您的计算机访问。您需要一个公共网址。

也许您可以使用dynDNS free在家中使用您的应用程序上网。

或者,让网络服务器连接到网络以托管您的应用程序。

祝你好运!

答案 2 :(得分:0)

这只是因为URL错误

指定网站的网址应该是正确的。

我提到网站网址为http://localhost:3000/,域名为localhost

但在我的浏览器中我运行http://0.0.0.0:3000/这是实际问题所以我运行服务器localhost:3000现在它工作正常。因为我们提到了站点url,因为localhost fb会重定向到同一个,如果我们运行0.0.0.0:3000,它将会出现错误,即应用程序配置不允许给定URL。

因此,您在Facebook应用中指定了您的网站网址。 你在本地运行的url应匹配

谢谢