My app sits outside facebook canvas.
The facebook request dialog 2.0 only redirects to canvas url
eg. apps.ibibo.com/YOURAPP
.
How can I make it open a custom url ?
This was possible in legacy FBML form with fb:request-form
and setting req-url
.
Are requests 2.0 restricted only to inside facebook URLS ?
My requirement is to send game requests,but my game sits outside facebook.
i.e. on clicking "ACCEPT" the url to open should be
"http://www.mydomain.com/mygame" and not
"http://apps.facebook.com/mygame" .
These methods do not seem to fit my requirement :
http://developers.facebook.com/docs/reference/dialogs/requests/ ( only canvas url redirection )
I thought of one workaround as :
The user clicks on "ACCEPT" and comes to the canvas url, and from the canvas url, I redirect him to my url outside facebook. But I am not sure if that is compliant with facebook policy ? ( mentioned here in point#4 of first paragraph : http://developers.facebook.com/blog/ )
Unfortunately the accept button right now will always take you to the application page as you are seeing and there is no way right now to have it go elsewhere. You would have to redirect them from the canvas page. However, I don't see this as being against the Facebook policy though as Facebook requests can be originally sent from outside of Facebook using the iframe plugin. If you wanted to be able to put in an outside url for the accept button, I would log a feature request with Facebook.
Need a jquery script to override the default function of facebook. However this works only when the person goes to "http://apps.facebook.com/mygame" and click on 'add app'.
Simpler to just have a welcome page, users click on "PLAY" and it opens a new window into your page.
Read more: http://developers.facebook.com/blog/post/525/ - good luck coding!
Put <button id="fb-auth">Login</button>
somewhere on mygame page and add this javascript code:
function updateButton(response) {
//Log.info('Updating Button', response);
var button = document.getElementById('fb-auth');
if (response.status === 'connected') {
//button.innerHTML = 'Logout';
button.onclick = function() {
FB.logout(function(response) {
//Log.info('FB.logout callback', response);
});
};
} else {
//button.innerHTML = 'Login';
button.onclick = function() {
FB.login(function(response) {
//Log.info('FB.login callback', response);
if (response.status === 'connected') {
//Log.info('User is logged in');
window.open("http://xxxxxxxxxxxxxxxx/some.html");
} else {
//Log.info('User is logged out');
}
});
};
}
};
// run it once with the current status and also whenever the status changes
FB.getLoginStatus(updateButton);
FB.Event.subscribe('auth.statusChange', updateButton);