2010-10-19 5 views
0

J'utilise AMFPHP, et a écrit une petite fonction en php pour poster sur Facebook chaque fois qu'il est appelé:problème en essayant de poster sur facebook creux AMFPHP

function postear($pregunta,$winoption,$loseoption) { 
    require_once("../../facebook.php"); 
    Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 

    $facebook = new Facebook(array(
     'appId' => 'xxxxxxxxxxxxx', 
     'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
     'cookie' => false 
    )); 

    $session = $facebook->getSession(); 
    $token = $session['access_token']; 

    //echo "Post successful !"; 
    $facebook->api('/me/feed', 'POST', array ('message' => '','link' => 'http://www.facebook.com/apps/myapp','name' => 'dummy name')); 
} 

Je reçois cette erreur:

message = "faultCode: AMFPHP_RUNTIME_ERROR faultString: 'Un jeton d'accès actif doit être utilisé pour interroger les informations sur l'utilisateur actuel.' Je ne suis pas très familier avec l'API graphique de Facebook, et un peu confus parce que parfois je peux poster des correclty en appelant ma fonction, et d'autres fois me donne l'erreur ci-dessus Peut-être que je dois passer le jeton à mon appel Quel est le but de l'argument 'cookie' dans mon appel pour me connecter à Facebook?

De plus, le jeton d'accès est unique?, Ou un autre est généré chaque fois que quelqu'un se connecte à l'application?

Merci pour votre orientation et merci pour toute aide.

Répondre

1

Si vous ne l'avez pas demandé offl Pour accéder à l'application que vous avez créée pour l'utilisateur avec lequel vous essayez d'authentifier, vous devez vous connecter à Facebook avant que l'application ne fonctionne. Cela n'a rien à voir avec AMFPHP.

Je ne sais pas quel type d'environnement vous utilisez mais jetez un oeil à this tutorial. Vous devriez être capable de glaner ce dont vous avez besoin pour faire fonctionner votre application.

if (isset($_POST['tt'])){ 
     try { 
      $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> $_POST['tt'], 'cb' => '')); 
     } catch (FacebookApiException $e) { 
      d($e); 
     } 

Notez que $ _POST ['tt'] est une variable définie par le formulaire dans l'exemple de code. Vous pouvez utiliser ce que vous voulez dans ce cas par exemple.

$statusupdate = $facebook->api('/me/feed', 'post', array('message'=>$myMessage, 'cb'=>''); 

Pay attention à l'étape 3 . Dans cet exemple de code, ils donnent des tags FBML qui prendront soin de mettre un bouton de connexion/déconnexion sur votre page pour gérer la connexion de l'utilisateur. Ensuite, vous n'avez pas à maintenir un autre onglet dans le navigateur avec Facebook connecté sur elle. Bonne chance!

+0

En fait, c'est une petite application Flash sur facebook, qui se trouve dans un petit PHP où l'utilisateur se connecte, et j'utilise la fonction dans AMFPHP uniquement pour poster. Peut-être que si je demande à l'utilisateur des permissions quand il/elle se connecte ... alors l'appel à poster fonctionnera toujours. Comme vous l'avez dit, ce n'est pas un problème avec AMFPHP, ou Flash d'ailleurs, c'est juste lié à Facebook. Je vais lire le tutoriel et essayer plus tard avec votre suggestion, merci !. –

+0

oh une autre chose que j'ai remarquée. Même si l'utilisateur est connecté à Facebook dans un autre onglet, vous devrez peut-être cliquer à nouveau sur le bouton de connexion. Cela fera apparaître la fenêtre appropriée pour accorder les autorisations pour votre application dont vous avez besoin. Les docs d'api de graphe de facebook sont grands pour ceci. http://developers.facebook.com/docs/api –

+0

Le problème persiste! Peut-être que je dois récupérer mon code d'accès lorsque l'utilisateur se connecte et le transmet à mon appel pour le poster ?, quelque chose comme $ facebook-> api ('/ moi/feed? Token = XXXXX' ... ou quelque chose? –

Questions connexes