2011-09-30 5 views
0

Je n'arrive pas à créer une boîte de dialogue pour demander à un utilisateur de se connecter à mon onglet facebook pour participer à un concours.Facebook FB.ui erreur de dialogue oauth

Nous essayons d'utiliser la boîte de dialogue FB.ui oauth avec le code suivant.

FB.ui({ 
     client_id: '12345', 
     method: 'oauth', 
     scope: 'email,user_birthday', 
     response_type: 'token', 
     redirect_uri: "https://mydomain.com/test.php" // Change this to proper address 
     }); 

Lorsque nous incluons la redirect_uri nous obtenons le message suivant

API Error Code: 100 API 
Error Description: Invalid parameter 
Error Message: The "redirect_uri" parameter cannot be used in conjunction 
    with the "next" parameter, which is deprecated. 

Nous n'utilisons le paramètre suivant partout, donc ne sais pas pourquoi il dit que.

Lorsque nous supprimons le redirect_uri, nous obtenons le message suivant.

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. 

Répondre

2

Je voudrais utiliser la méthode FB.login par opposition à ce étant donné que vous travaillez dans une application de tabulation.

Au sein de votre FB.init:

window.fbAsyncInit = function(){ 
     FB.init({ 
      appId: 'your_app_id', 
      status: true, 
      cookie: true, 
      xfbml: true, 
      oauth: true 
     }); 
     FB.Canvas.setAutoGrow(true); 
    }; 

FB.getLoginStatus(function(response){ 
     if(response.status == 'connected'){ 
      callyourfunctiontoentercompetition(); 
     }else{ 
      FB.login(function(response){ 
       if(response.status == 'connected'){ 
        callyourfunctiontoentercompetition(); 
       }else{ 
        handlethecancelpermissions(); 
       } 
      }); 
     } 
    }); 
0

assurez-vous que la demande ur prise vient du même domaine que celui que vous avez enregistré dans facebook api

0

Dans un onglet vous n'avez pas besoin de passer un paramètre autre que la méthode et perms (ou étendue lorsque Facebook le change)

FB.getLoginStatus(function(response){ 
     if(response.status == 'connected'){ 
alert("User connected"); 
     }else{ 
FB.ui({ 
     method: 'oauth', 
     perms: 'email,user_birthday' //change perms to scope when Facebook supports it 
     }, function(response){ 
if(response.session){ 
alert("User connected"); 
}else if(response.installed != '1'){ 
alert("User canceled"); 
} 
}); 
} 
} 
) 
1

Active qu'il y avait quelques mauvaises choses, dans mes paramètres de l'application que je devais sélectionner « site Web » et p Dans l'URL de mon site, cela m'a permis d'ajouter le "domaine de l'application" et de l'enregistrer. Ceci a éclairci l'erreur 191. Avoir un site Web non coché de votre domaine d'application ne sauvera pas. Après, c'était plutôt simple.

Voici le code que j'ai utilisé.

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
    appId : 'YOUR_ID', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true, // parse XFBML 
    channelURL : 'http://www.your_domain.ca/channel.html', // channel.html file 
    oauth : true // enable OAuth 2.0 
    }); 
    // This should be fired on a user initiated action 

    FB.ui({ method: 'oauth', perms: 'email' }, function() { callback() }); 
    }; 
    (function(d){ 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
    }(document)); 

    function callback() { 

    FB.getLoginStatus(function(response) { 
    if (response.authResponse) { 
    FB.api('/me', function(response) { 
     //Get user information from here 
    }); 
    } 
    }); 
    } 


</script> 
Questions connexes