What oauthRedirectURL in openFB should look like, using a cordova app?

764 views Asked by At

I came across this openFB plugin to make facebook requests without the sdk, that can be used in cordova,

I got it to log in the user in facebook, the thing is as oauthRedirectURL I end up in a white page, that says Success and I'm not sure how to get the user back to the app,

if (runningInCordova) {
oauthRedirectURL = "https://www.facebook.com/connect/login_success.html";
}

Question is,

What url can i use to point my app ?

User ends up in this screen after the login

enter image description here

-edit-

I found solutions like http://localhost.com/oauthcallback.html but I don't have a apache2 in the cordova environament..

-2nd edit-

This is my current code,

openFB.init({appId: 'xxxxxxxxyyyyyyyy'});
openFB.login( function(response) {
     if(response.status === 'connected') {
         alert('Facebook login succeeded, got access token: ' + response.authResponse.token);
     } else {
         alert('Facebook login failed: ' + response.error);
     }
 }, {scope: 'email'});

This the line of the lib that fills this value

if (runningInCordova) {
    oauthRedirectURL = "https://www.facebook.com/connect/login_success.html";
}
1

There are 1 answers

6
Javier de la Cueva On BEST ANSWER

I haven't used openFB before but I'm pretty sure it's based on the following docs: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3

If you go to the section "logging people in" you'll see the following message:

redirect_uri. The URL that you want to redirect the person logging in back to. This URL will capture the response from the Login Dialog. If you are using this in a webview within a desktop app, this must be set to https://www.facebook.com/connect/login_success.html.

When a FB user grants permissions to your App, it will be redirected to the url https://www.facebook.com/connect/login_success.html?access_token=new_token&...

What you have to do now is monitor this url and get the access token provided, which you should store with the fb user id in order to perform any API call.

Googling how to do this with openFB I found a thread at the openFB github repo that should help: https://github.com/ccoenraets/OpenFB/issues/20#issuecomment-49249483 (is not totally related but it provides some code you can use)

This should be the code that will allow you to monitor the URL (extracted from the code provided on the thread):

if (runningInCordova) {
    loginWindow.addEventListener('loadstart', function (event) {
        var url = event.url;
        if (url.indexOf("access_token=") > 0) {
            // Get the token
        }
    });
}

Once you have obtained the access token and stored in your database, you should redirect to any other place of your App.

I hope it helps.

Javier.