2010-12-06 34 views
1

Peut-être que j'ai cherché complètement dans le mauvais sens, et la documentation de facebook suce à mon avis.Plus de paramètres pour l'API facebook php

Je me demandais, je me connecte à facebook avec les paramètres ci-dessous et cela fonctionne (je suis capable de récupérer les informations de profil de l'utilisateur connecté permet à mon application d'accéder à son profil.) Y at-il d'autres options? peut définir, comme l'URL de rappel et l'expiration (que je veux mettre à jamais, afin que je puisse enregistrer le jeton dans mon DB et le réutiliser)?

Ceci est la configuration maintenant:

$facebook = new Facebook(array(
     'appId' => 'xxxxxxxxxxxx', 
     'secret' => 'xxxxxxxxxxxx', 
     'cookie' => true 
    )); 

Je suis aussi la connexion à Twitter et là, je suis en mesure de ceci:

$this->configTwitter = array(
     'callbackUrl' => 'xxxxxxxxxxxx', 
     'siteUrl' => 'http://twitter.com/oauth', 
     'consumerKey' => 'xxxxxxxxxxxx', 
     'consumerSecret' => 'xxxxxxxxxxxx' 
    ); 

Merci à l'avance!

Facebook devrait jeter un oeil à Twitter

Répondre

2

Après avoir essayé quelques jours, cracher la documentation de la graphique OAuth 2.0 (qui ne fonctionne pas aussi bien que prévu et des recherches sur internet, j'ai trouvé une solution que j'ai utilisé pour créer le script suivant:

// Config 
    $this->redirectUrl = 'http://www.mywebsite.com/facebook' 
    $this->clientId = 'APPLICATION_ID'; 
    $this->permissions = 'publish_stream,offline_access'; 

    // Check if a sessions is present 
    if(!$_GET['session']) 
    { 
     // Authorize application 
     header('Location: http://www.facebook.com/connect/uiserver.php?app_id='.$this->clientId.'&next='.$this->redirectUrl.'&perms='.$this->permissions.'&return_session=1&session_version=3&fbconnect=0&canvas=1&legacy_return=1&method=permissions.request'); 
    } 
    else 
    { 
     $token = json_decode($_GET['session']); 
        echo $token->access_token; // This is the access_token you'll need! 

     // Insert token in the database or whatever you want 
    } 

Ce morceau de code fonctionne très bien et effectue les actions suivantes:

  1. Connectez-vous si l'utilisateur est pas connecté à facebook
  2. demande si l'utilisateur souhaite ajouter l'application et accorde les autorisations demandées (dans mon cas: publish_stream et offline_access) dans un dialogue
  3. retourne à la page que vous avez spécifié sous redirectUrl avec un access_token

(et parce que nous avons demandé un accès hors ligne celui-ci n'expire pas) je puis stocker le jeton dans la base de données, donc je ne vais pas devoir demander à nouveau

maintenant, vous pouvez, si vous le souhaitez utilisez le code facebook, ou votre propre code pour obtenir les données des utilisateurs, ou d'autres informations de facebook (assurez-vous de requeste Ne pas maintenant si c'est le code facebook-valide, mais cela fonctionne très bien et je peux facilement définir la 'config' comme je le voulais ....

0

Il y a beaucoup de paramètres que vous pouvez définir au point de authentifiant. Les autorisations étendues vous permettent de définir offline_access pour que vous puissiez vous authentifier et stocker votre session dans un db. Plus d'informations sur les autorisations étendues sont à developers.facebook.com/docs/authentication/permissions et vous pouvez lire mon article de blog pour plus d'informations sur la façon de les utiliser à http://www.joeyrivera.com/2010/facebook-graph-api-app-easy-w-php-sdk/