Bonsoir à tous,
J'ai une question concernant l'API facebook et notamment la propriété access_token qui a un accès limité dans le temps et qui remplace la permission access_offline (notamment utile pour les cron pour ne pas avoir l'obligation d'être connecté à un compte FB), donc je voudrais renouveller ce access_token. Le but de mon application est de poster des messages sur des pages facebook via un compte, donc sur ce compte j'ai crée une application et voici ce que j'ai trouvé sur le web :
[code]
<?php
public function webcrontask() {
App::import('Vendor', 'facebook', array('file' => 'facebook/src/facebook.php'));
$facebook = new Facebook(array(
'appId' => Configure::read('FB_APP_ID'),
'secret' => Configure::read('FB_APP_SECRET'),
));
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=".Configure::read('FB_APP_ID')."&client_secret=".Configure::read('FB_APP_SECRET')."&grant_type=fb_exchange_token&fb_exchange_token=".$token;
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_URL, $token_url);
$contents = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
$paramsfb = null;
parse_str($contents, $paramsfb);
$access_token = $paramsfb['access_token'];
debug($access_token);
$page_id = 'XXXXXXXXXXXXX';
$args = array(
'access_token' => $access_token,
'message' => 'Mon message de test',
'caption' => 'This is the caption',
'description' => 'This is the description',
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
}
[/code]
Seulement voilà j'ai l'impression que mon token sera quand même non valide dans tous les cas. Pour avoir le token (variable $token ici) je vais sur [url=https://developers.facebook.com/tools/explorer/]https://developers.facebook.com/tools/explorer/[/url] et en haut je choisis mon application ensuite "Obtenir le jeton d'accès" et je choisis les permissions que je veux et je valide ensuite ce qui ouvre une popup ou l'application me demande d'autoriser ces permissions, ensuite je copie le token et c'est celui ci qui a une durée de vie limité et que j'utilise à la place de la variable $token. Et le debug de $access_token me renvoie à chaque fois bien un nouveau token mais lorsque $token ne sera pas utilisé pendant la durée de vie de l'application j'ai l'impression que ça plantera et que le token sera non valide.
C'est bien de cette façon qu'il faut procéder ? Pour ceux ayant déjà fait cette manipulation, serait t-il possible que vous expliquiez la manière dont vous avez procédé ?
PS : J'utilise l'API Facebook depuis aujourd'hui, désolé si je suis pas totalement clair.
Merci d'avance.