2010-10-20 8 views
0

Nous utilisons la bibliothèque java-facebook depuis un certain temps (quelques années), bien qu'il semble que l'une des raisons pour lesquelles nous ne recevons pas de nouveaux utilisateurs via FB, est que les nouveaux utilisateurs voient une erreur, que je comprends, est due à la nouvelle sécurité de FB (en juin).Facebook Canvas Redirect URL

Actuellement, nous avons une application Canvas FB "simple", en utilisant FBML, que les utilisateurs peuvent accéder via:

http://apps.facebook.com/$MYAPP 

L'URL Canvas est de retour:

http://www.facebook.com/connect/uiserver.php?app_id=$APPID&next=http%3A%2F%2Fapps.facebook.com%2F$MYAPP&display=page&locale=en_US&return_session=0&fbconnect=0&canvas=1&legacy_return=1&method=permissions.request 

Cette URL, pour une nouvelle utilisateurs (qui n'ont pas déjà autorisé notre application) revient avec:

API Error Code: 100 
API Error Description: Invalid parameter 
Error Message: next is not owned by the application. 

Utilisateurs existants (qui avait activé l'application avant juin) sont en mesure d'y accéder sans aucun problème.

Notre URL du site est spécifié comme:

http://apps.facebook.com/$MYAPP 

Cette erreur semble impliquer que l'URL du site et l'URL suivante doivent être sur le même domaine, et non sur facebook.

Je suis en mesure de changer l'URL du site pour être:

http://www.OURREALAPP.com/ 

Et, le domaine à:

OURREALAPP.com 

Et puis, a pu changer l'URL toile pour revenir :

https://graph.facebook.com/oauth/authorize?client_id=$CLIENT_ID&redirect_uri=http%3A%2F%2Fwww.OURREALAPP.com%2F$URL%2F 

Cela fonctionne très bien, la première fois. Il demande la permission et affiche les données correctes. Cependant, si nous y accédons une seconde fois, il ne l'affiche pas dans un "cadre Facebook", c'est-à-dire qu'il envoie l'utilisateur directement à l'application.

J'ai également essayé de modifier le redirect_uri pour aller à apps.facebook.com/$MYAPP ... mais cela nous donne une erreur de ne pas posséder l'URL.

Que devons-nous faire? Des idées?

Merci!

Répondre

0

C'est assez sans valeur un an plus tard, mais ici va (pour une application toile iFrame):

Pour auth nouveaux utilisateurs (en utilisant les kits de développement côté client), vous pouvez faire une des deux choses:

Dirigez-les vers une URL qui les redirigera ensuite vers l'URL de votre choix.
  1. Incitez avec une boîte de dialogue pop-up à l'aide du SDK JS (mais seulement après avoir cliqué sur quelque chose)

Les utilisateurs qui ont déjà authed votre application, probablement ne pas besoin de faire non plus.

Voici les dernières docs authentification: https://developers.facebook.com/docs/beta/authentication/

Voici un code qui n'utilise le JS SDK et le transfert pour gérer les autorisations:

<script> 

    var fb_perms = "email,publish_actions" 
    var fb_url = "http://apps.facebook.com/awesome/" 

    FB.init({ 
     appId  : app_id, // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     oauth  : true, // enable OAuth 2.0 
     xfbml  : true // parse XFBML 
    }); 

    // login to facebook 
    FB.getLoginStatus(function(response) { 
     if (response.authResponse) return alert("user is logged in!") 
     var url = "https://www.facebook.com/dialog/oauth?" + 
      "client_id=" + app_id + "&" + 
      "redirect_uri=" + fb_url + "&" + 
      "scope=" + fb_perms + "&" + 
      "response_type=token" 
     top.location.href = url    
    }) 
</script> 

Best,