Avoiding error 100: invalid parameter (requires valid redirect URI) in application requests dialog

Michal Pokorný picture Michal Pokorný · Sep 24, 2011 · Viewed 19k times · Source

I'm developing a game for Facebook. I need a way for users to invite others to the game. For that, I use the apprequests dialog. I redirect the user to the dialog URL, which I glue together like this:

$url = "http://www.facebook.com/dialog/apprequests?app_id=".$id."&message=".urlencode("foobar")."&redirect=".urlencode("http://some.arbitrary.url.com");

(Of course, with not-so-arbitrary arguments, but they still look sane to me.) Upon navigating there, the user is scolded by "API Error Code: 100, API Error Description: Invalid Parameter, Error Message: Requires valid redirect URI.". I googled around for a solution, but it seems that all the people receiving this error were forgetting to escape their URLs / messages. I also tried some URLs that should be accepted without remarks, like the application canvas URL.

Does anyone know what mistakes am I making?

Answer

Michal Pokorný picture Michal Pokorný · Sep 27, 2011

So, turns out the solution is to use redirect_uri and not to escape the URL to redirect to, so the code I wrote before should read:

$url = "http://www.facebook.com/dialog/apprequests?app_id=".$id."&message=".urlencode("foobar")."&redirect_uri="."http://some.arbitrary.url.com";