【问题标题】:Getting this error after months of no problems - redirect_uri not owned by application在几个月没有问题后出现此错误 - redirect_uri 不属于应用程序
【发布时间】:2013-04-20 16:47:36
【问题描述】:

当我开始我们网站的 Facebook 集成时,我最初遇到了这个问题。经过一番搜索,找到了解决方案并修复了它。

现在,几个月后,它刚刚停止工作。 Facebook 开发者网站上的 JavaScript 代码或应用程序设置均未发生任何更改。我再次开始搜索,发现和以前一样的答案:Site URL must match redirect_uri 等。

我目前有应用程序域:“domain.com”
以及站点 URL:“http://www.domain.com”

给出的错误:

API 错误代码:191
API 错误说明:指定的 URL 是 不属于应用程序
错误消息:redirect_uri 不属于 由应用程序拥有。

我不知道发生了什么。 Facebook 改变了他们的 API 吗? (我确实检查了他们的文档,它仍然是一样的)。

任何帮助将不胜感激。 Javascript 代码如下:

var publish = {
    method: 'feed',
    redirect_uri: 'http://www.domain.com',
    link: 'http://www.domain.com',
    picture: 'http://pathtoimage/logo.png',
    name: 'Name',
    caption: 'Title',
    description: 'Description, blah blah'
};

function fbcallback(response) {
    // do stuff here
}

FB.ui(publish, fbcallback);

谢谢

编辑:
我检查了时间戳,自 3 月 16 日以来没有动过 JS 文件,Facebook 上的应用程序设置也没有,我的同事在一周前测试了这个(当时还在工作)

【问题讨论】:

  • 提示:您不必在 Stackoverflow 上编写 html 标签(<br> 等)。也没有理由用h<span>t</span>tp“伪造”URL。
  • @timss - 抱歉,第一次发帖,链接一直变为可点击,不知道如何阻止
  • @natahn-glenn 当然,没问题。请查看stackoverflow.com/editing-help 了解更多信息。
  • 'http://pathtoimage/logo.png'domain.com 里面吗?尝试评论它,看看它是否改变了任何东西..
  • @asifrc - 不幸的是没有改变任何东西 :( 图像的路径使用 IP 地址 atm,但注释掉它不起作用。我在应用程序设置中使用站点 URL 进行了尝试'domain.com'和'domain.com',确保redirect_uri与此匹配,但均无效。

标签: facebook fb.ui


【解决方案1】:

已解决:

对于遇到同样问题的其他人,这对我有用。

FB 似乎加强了安全性,这就是它最初运作的原因。
我们正在开发一个新版本,并使用 IP 地址而不是域来访问该站点。一条我以前没见过的新消息开始出现在开发控制台中:

When using FB.ui, you should not specify a redirect_uri.

看起来 FB api 现在会根据 Facebook 应用设置中的站点 URL 检查浏览器地址字段中的 URL 域(而不是 redirect_uri)。通过暂时将我们的域指向 IP 地址并通过域加载的站点运行 Facebook api 代码来测试这一点,它可以工作。因此,当我们在发布前进行测试时,我将使用http://localhost:8080 作为站点 URL,然后在它上线时将其更新为站点的域。

感谢帮助我指明正确方向的人们!

【讨论】:

  • 好吧,'redirect_uri' 应该(或必须?)仅在 FB.ui 将使用 'display:popup' 启动时使用,因为 UI 将在另一个窗口中启动,而当您使用标准的“灯箱”用户界面会产生一些问题!
【解决方案2】:

尝试检查您是否在您的应用设置(在 Facebook 开发人员上)中设置了:

  • “应用程序域”与您使用该应用程序的域
  • 选中“使用 Facebook 登录的网站”选项,然后在此处设置域

【讨论】:

  • 感谢 Alberto,我目前将应用程序域设置为“domain.com”,并将站点 URL(在“使用 Facebook 登录的网站”下)设置为“domain.com”(当然是域这个词替换为实际域)。还是没有运气。
  • 您是否还检查了域和redirect_uri 的协议(http / https)是否相同?不确定是不是问题,但有可能
  • 您是指 Facebook 上的 App Domain 设置吗?它不允许任何协议信息。
  • 还尝试添加和删除“www”,以及使用直接 IP 地址。 (App Domain 也不允许 IP)
  • 尝试在您的应用设置(在 FB 开发人员上)中设置网址,无需 www,只需 'domain.com'... 已经完成了吗? p.s.请注意,修改可能需要几分钟才能生效,请尝试等待
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多