Sunday, June 3, 2012

Facebook API error 191

I'm trying to integrate my project with Facebook. I'm taking babysteps at first and just trying to login, get a Facebook session and get some user data. I'm developing it locally so my Facebook application settings are:

site URL:

The canvas URL is the same as above. I haven't specified a site domain.

However, when I click on the login button, I get an error:

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.

At the moment I haven't written any server-side code to deal with redirects, etc. All I've done is add the JavaScript SDK based on the tutorial in Facebook for Websites .

What have I done wrong? It's obviously something to do with my Facebook application settings, but I can't see what!

Source: Tips4all


  1. UPDATE:
    To answer the API Error Code: 191
    The redirect_uri should be equal (or relative) to the Site URL.

    Tip: Use base URLs instead of full URLs pointing to specific pages.

    NOT RECOMMENDED: For example, if you use as your Site URL and having as redirect_uri this will give you the 191 error.

    RECOMMENDED: So instead have your Site URL set to a base URL like: OR

    I went through the Facebook Python sample application today, and I was shocked it was stating clearly that you can use http://localhost:8080/ as Site URL if you are developing locally:

    Configure the Site URL, and point it
    to your Web Server. If you're
    developing locally, you can use

    While I was sure you can't do that, based on my own experience (very old test though) it seems that you actually CAN test your Facebook application locally!

    So I picked up an old application of mine and edited its name, Site URL and Canvas URL:
    Site URL: http://localhost:80/fblocal/

    I downloaded the latest Facebook PHP-SDK and threw it in my xampp/htdocs/fblocal/ folder.

    But I got the same error as yours! I noticed that XAMPP is doing an automatic redirection to http://localhost/fblocal/ so I changed the setting to simply http://localhost/fblocal/ and the error was gone BUT I had to remove the application (from privacy settings) and re-install my application and here are the results:

    After that, asked for the publish_stream permission, and I was able to publish to my profile (using the PHP-SDK):

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


  2. this just because of URL mistake

    whatever website url is specified should be correct.

    i mentioned website url as http://localhost:3000/
    and domain as localhost

    but in my browser i was running
    that was the actual problem so i ran server as localhost:3000
    now its working fine.
    Because we mentioned site url as localhost fb will redirect to same, if we r running it will rise error that Given URL is not allowed by the Application configuration.

    thank you