2010-10-15 2 views
1

Je veux afficher la case "Demande d'autorisation" directement lorsque l'utilisateur entre http://apps.facebook.com/myfancyapp. La documentation Facebook Authentication est assez clair sur la façon dont l'URL doivent ressembler àComment utiliser l'authentification Facebook OAuth 2.0 comme Zynga et d'autres l'utilisent?

https://graph.facebook.com/oauth/authorize?client_id=[APPID]&redirect_uri=http://www.myfancyapp.com/&scope=user_photos,user_videos,publish_stream 

cette URL directement coller dans le navigateur fonctionne comme il se doit. Ce que je veux est de rediriger l'utilisateur via JavaScript (ou autre) de l'URL de l'application

http://apps.facebook.com/myfancyapp 

à l'URL de la boîte d'authentification ci-dessus.

Je pensais que quelque chose comme ça fonctionnerait:

<script type="text/javascript"> 
    <!-- 
     window.location = "https://graph.facebook.com/oauth/authorize?client_id=[APPID]&redirect_uri=http://www.myfancyapp.com/&scope=user_photos,user_videos,publish_stream" 
    //--> 
    </script> 

Cela me redirige vers une page avec un corps qui ressemble à ceci

Facebook

En cliquant sur l'image/test réoriente alors la boîte d'authentification.

Comment puis-je directement rediriger vers la zone "Demande d'autorisation". Je sais que cela fonctionne d'une manière ou d'une autre (par exemple Zynga).

+0

Serait-ce une application de toile ou un site Web autonome qui implémente facebook connect? Quel langage de script? PHP/Javascript? – Claudiu

+0

C'est une application de toile et j'utilise PHP et JavaScript. Lorsque j'utilise la redirection depuis l'extérieur de Facebook cela fonctionne bien. Je suppose que le window.location est le problème? –

Répondre

3

que je fais la même chose que le Asker, seulement au lieu de window.location, l'utilisation top.location. href = "https: // graphique ....."

Comme:

<script type="text/javascript"> 
top.location.href = "https://graph.facebook.com/oauth/authorize?client_id=[APPID]&scope=email&redirect_uri=http://apps.facebook.com/myfancyapp/"; 
</script> 

Invite la connexion si nécessaire, puis les autorisations. Puis redirige vers l'application.

+0

je reçois cette erreur lorsque je tente ceci: { "erreur": { "message": "redirect_uri non valide: URL donnée n'est pas autorisé par la configuration de l'application.", "type": "OAuthException" } } – ria

+0

@ria Si cela se produit lorsque vous exécutez l'application localement, cela signifie simplement que vous devez créer une nouvelle application sur facebook qui pointe vers votre hôte local. – rapcal

1

Faire cela avec PHP est un jeu d'enfant.

Sur le backend

Et puis, sur le frontend

<script type="text/javascript"> 
    top.location.href = '<?php echo $url; ?>'; 
</script> 
<p> 
Not being redirected? <a href="<?php echo $url; ?>" target="_top">Click Here.</a> 
</p> 
Questions connexes