I'm trying to integrate my project with Facebook. I'm taking baby steps 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: http://127.0.0.1:8888/mySite/
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!
I was also facing the same problem when I am using the facebook authentication method. But I rectify that issue with following changes in Facebook api (
Apps >> My App >> Basic
).Then i gave that AppId and App Secret in my webpage.
So by clicking on login button, It ask for access permissions then it redirect it to give url (Website with Facebook Login ).
I fixed this by passing the redirect url to the
FacebookRedirectLoginHelper::getAccessToken()
in my callback function:Changing from
to
I am developing on a vagrant box, and it seems
FacebookRedirectLoginHelper::getCurrentUrl()
had issues generating a valid url.Something I'd like to add, since this is error 191 first question on google:
When redirecting to facebook instead of your own site for a signed request, you might experience this error if the user has secure browsing on and your app does redirect to facebook without SSL.
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
www.mydomain.com/fb/test.html
as your Site URL and havingwww.mydomain.com/fb/secondPage.html
asredirect_uri
this will give you the 191 error.RECOMMENDED: So instead have your Site URL set to a base URL like:
www.mydomain.com/
ORwww.mydomain.com/fb/
.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: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 simplyhttp://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):Results:
Working locally... I couldn't get the feeds api to work, but the share api worked pretty much straight away with no problems.
For me, it was a missing app domain. Go into the app, and make sure that you have the root of your site set up as an app domain. See screenshot.