【问题标题】:FB.ui is giving me Error Message: redirect_uri is not owned by the applicationFB.ui 给我错误消息:redirect_uri 不属于应用程序
【发布时间】:2011-10-07 21:59:06
【问题描述】:

请帮忙!我正在 Facebook 上为比赛创建一个 Facebook 选项卡/应用程序,比赛的一部分是让用户可以选择在他们的墙上分享比赛。这是我收到的错误 -

API 错误代码:191 API 错误描述:指定的 URL 不属于应用程序 错误消息:redirect_uri 不属于应用程序。

这是我的 facebook 验证码:

<div id='fb-root'></div>
<script>
      FB.init( {
    appId  : 219691398094935,
            status : true, 
            cookie : true, 
            xfbml  : true
        }
        );
        window.fbAsyncInit = function() {
            FB.Canvas.setAutoResize();
        }
        </script>
<script src='http://connect.facebook.net/en_US/all.js'></script>

这是我的 FB.ui 代码:

 <script>
                function showStreamPublish() {
                FB.ui(
                   {
                     method: 'feed',
                     name: 'I signed up to win an iPad 2 from Upillar.com',
                     link: 'http://www.facebook.com/pages/udev/121216321302968?sk=app_219691398094935',
                     picture: 'http://static.upillar.com/fb/images/logo.png',
                     description: 'I entered the iPad 2 Sweepstakes from Upillar.com which only requires you to create a listing to enter! Enter the contest now by by clicking this link.',
                     app_id: '219691398094935'
                   },
                   function(response) {
                         if (response && response.post_id) {
                             $('#main-screen').css('display','none');
                             $('#step2').css('display','block');
                         }else{
                            $('#main-screen').css('display','none');
                            $('#step2').css('display','block');
                         } 
                    });}
                    </script>

这是我的应用程序中的信息:
站点/应用程序域:upillar.com
网站网址:http://fb.upillar.com/contest.php
页面标签 URL:http://fb.upillar.com/contest.php
安全标签 URL:https://fb.upillar.com/contest.php




请告诉我我错过了什么!非常感谢。

【问题讨论】:

  • 尝试在您的网址末尾使用 /
  • Usman,感谢您的回复,我用fb.upillar.comupillar.com 两种形式都试过了,但我仍然收到错误。
  • 抱歉耽搁了,我认为您必须将 redirect_uri 设置为 apps.facebook.com/yourapp 。我不知道如何使用 JS SDK 来做到这一点。在 PHP SDK 中,我使用 getLoginUrl 设置。

标签: facebook


【解决方案1】:

遇到了同样的问题 - 解决方案很简单,但 Facebook Dev DOCS 甚至没有提到。看看这个:

FB.ui(
    {
        method: 'feed',
        redirect_uri: 'http://www.yourdomain.com', // that caused the problem
        message: 'getting educated about Facebook Connect',
        name: 'Connect',
        caption: 'The Facebook Connect JavaScript SDK',
        description: (
            'A small JavaScript library that allows you to harness ' +
            'the power of Facebook, bringing the user\'s identity, ' +
            'social graph and distribution power to your site.'
        ),
        link: 'http://www.yourdomain.com',
        picture: 'http://www.yourdomain.com/f8.jpg',
        actions: [{
            name: 'yourdomain',
            link: 'http://www.yourdomain.com'
        }],
        user_message_prompt: 'Share your thoughts about RELL'
    },
    function (response) {
        if (response && response.post_id) {
            alert('Post was published.');
        } else {
            alert('Post was not published.');
        }
    }
);

【讨论】:

  • 你能解释一下你的答案吗?我遇到了同样的问题,它显然与 redirect_uri 参数有关,但我不清楚你的代码是对还是错。换句话说,当您的代码显示//that caused the problem 时,这是什么意思?
  • FB 文档中没有任何内容甚至提到“redirect_uri”参数,但在某些情况下必须包含它。此参数必须与 Facebook 应用程序配置中的相同。
  • 确实如此。 FB 文档很烂!我学到的(通过反复试验)是在这种情况下可以完全省略参数。这就是错误消息极具误导性的原因。包含该参数时,会导致对话框无法正常关闭。呃。
【解决方案2】:

站点 URL 不应是文件,请尝试将其设置为仅您的域,而不是 match.php

如果这不起作用,请将画布 URL 设置为您的域,并以“/”结尾。

【讨论】:

  • 我尝试使用 fb.upillar.com 作为我的站点 URL,然后使用 upillar.com 作为我的站点 URL,但什么也没得到。除了这些尝试之外,我还将相同的 URL 添加到我的 Canvas URL。例如,站点 URL:fb.upillar.com 画布 URL:fb.upillar.com 我仍然收到错误消息。
  • 我尝试了同样的方法,缩短了站点 URL,但对我也没有帮助。 :(
【解决方案3】:

抱歉打了一个旧帖子,首先我应该说我对 facebook 开发相对较新,但我遇到了同样的问题,基本上看起来 facebook 做了一些相当漂亮的检测,以符合重定向的条件当您登陆您的页面时。

例如,我正在检测它是否是一个新用户,然后显示一个颜色框,其 onclick 事件重定向到一个新用户创建表单。这给了我错误 191 redirect_uri notowned。似乎是因为 javascript 位于 &lt;HEAD&gt; 元素中,因此它被认为是重定向。

我只是更改了登录过程以完全呈现​​主页并显示一个普通的 div 告诉他们单击此处登录。

【讨论】:

    【解决方案4】:

    对不起挖坟! 我只是遇到了同样的问题并找到了解决方案。您无需更改任何来源。

    前往http://developers.facebook.com 打开您的应用并导航至“设置”和“基本”。

    有一个显示“应用程序域”的文本字段 - 输入当前托管应用程序的域名,保存设置,您就完成了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2015-11-06
      • 2015-08-14
      相关资源
      最近更新 更多