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/appreq开发者_JAVA技巧uests?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?
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";
Try replacing the redirect
parameters with redirect_uri
From my experience with this error; facebook gives you same error whatever the parameter which caused the error.
my problem that I didn't use encodeURIComponent(contentParam);
for all the parameters so any special character in any parameters gave me the above error.
精彩评论