Facebook API错误191

mus*_*c80 76 facebook facebook-javascript-sdk

我正在尝试将我的项目与Facebook整合.我一开始就采取了婴儿步骤,只是尝试登录,获得Facebook会话,并获得一些用户数据.我正在本地开发它,所以我的Facebook应用程序设置是:

site URL: http://127.0.0.1:8888/mySite/
Run Code Online (Sandbox Code Playgroud)

画布URL与上面相同.我没有指定网站域名.

但是,当我点击登录按钮时,我收到一个错误:

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application.
Run Code Online (Sandbox Code Playgroud)

目前我还没有编写任何服务器端代码来处理重定向等.我所做的就是根据Facebook网站上的教程添加JavaScript SDK .

我做错了什么?这显然与我的Facebook应用程序设置有关,但我看不到什么!

ifa*_*our 88

更新:
要回答这个API错误代码:191
redirect_uri应该是平等的(或相对)的网站URL.
在此输入图像描述

提示: 使用基本URL而不是指向特定页面的完整URL.

不推荐:例如,如果您使用www.mydomain.com/fb/test.html您的站点URL并且www.mydomain.com/fb/secondPage.html因为redirect_uri这将给您191错误.

建议:请将您的站点URL设置为基本URL,如:www.mydomain.com/OR www.mydomain.com/fb/.


我今天浏览了一下Facebook Python示例应用程序,我很震惊它清楚地说明如果你在本地开发你可以http://localhost:8080/用作站点URL:

配置站点URL,并将其指向Web服务器.如果您在本地开发,可以使用 http:// localhost:8080 /

虽然我肯定你不能做到这一点,根据我自己的经验(很老的测试虽然)看来你确实CAN本地测试Facebook应用程序!

所以我选择了我的旧应用程序并编辑了它的名称,站点URL和Canvas URL:站点URL: http://localhost:80/fblocal/

我下载了最新的Facebook PHP-SDK并将其丢入我的xampp/htdocs/fblocal/文件夹中.

但是我得到了和你一样的错误!我注意到XAMPP正在进行自动重定向,http://localhost/fblocal/所以我将设置更改为简单http://localhost/fblocal/,错误已经消失但是我必须删除应用程序(来自隐私设置)并重新安装我的应用程序,结果如下:
替代文字

之后,请求publish_stream权限,我能够发布到我的个人资料(使用PHP-SDK):

$user = $facebook->getUser();
if ($user) {
    try {
        $post = $facebook->api('/me/feed', 'post', array('message'=>'Hello World, from localhost!'));
    } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果: 替代文字

  • 到现在为止还挺好!我已经登录对话框并要求权限!我还没有机会测试获取一些实际数据,但期待在我这样做时接受答案!哇噢! (2认同)

Mik*_*e_K 11

对我来说,这是一个缺少应用程序域.进入应用程序,确保将您网站的根目录设置为应用程序域.见截图.

应用领域位于您应用的基本设置中

  • 提问者的问题已经解决了.这个答案旨在对有类似问题的人有用,他们认为这个问题将基于大胆的标题帮助他们.现在它可以. (4认同)

dev*_*lip 8

这只是因为URL错误.

无论指定什么网站URL都应该是正确的.

我提到网站URL http://localhost:3000/ 和域名为localhost,但在我的浏览器中我运行http://0.0.0.0:3000/.

当我运行服务器,因为localhost:3000它解决了问题.

正如我所提到的,作为localhost Facebook的站点URL将重定向到相同的,如果我们正在运行 0.0.0.0:3000,它将会出现"应用程序配置不允许给定URL"的错误.