Facebook SDK PHP - Comment obtenir le jeton d'accès?
Je suis en train de poster sur Facebook mur de mon application. L'utilisateur les autorisations de l'application de post sur son mur, et j'ai userid en db. J'ai besoin d'envoyer le post automatiquement, sans que l'utilisateur de vous connecter à nouveau.
Mon code est:
try{
require_once(dirname(__FILE__) . '\lib\facebook-php\src\facebook.php' );
}
catch(Exception $o){
print_r($o);
}
$config = array(
'appId' => '123456',
'secret' => '454544',
'allowSignedRequest' => false //optional but should be set to false for non-canvas apps
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
$user_id = '123456';
if($user_id) {
//We have a user ID, so probably a logged in user.
//If not, we'll get an exception, which we handle below.
try {
$ret_obj = $facebook->api('/me/feed', 'POST',
array(
'access_token' => $facebook->getAccessToken(),
'link' => 'www.example.com',
'message' => 'Posting with the PHP SDK!'
));
echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>';
//Give the user a logout link
echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
} catch(FacebookApiException $e) {
//If the user is logged out, you can have a
//user ID even though the access token is invalid.
//In this case, we'll get an exception, so we'll
//just ask the user to login again here.
var_dump($e);
$login_url = $facebook->getLoginUrl( array(
'scope' => 'publish_stream'
));
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
//No user, so print a link for the user to login
//To post to a user's wall, we need publish_stream permission
//We'll use the current URL as the redirect_uri, so we don't
//need to specify it here.
$login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
echo 'Please <a href="' . $login_url . '">login.</a>';
}
Ce lève An active access token must be used to query information about the current user.
d'erreur et vous demande de connexion. Après je clique sur connexion, le poste est sucesfully posté.
Comment puis-je obtenir le jeton d'accès avec identifiant, sans que l'utilisateur connecter?
Version remarque: le code ci-dessus a été remplacé par le SDK V4.
OriginalL'auteur user1049961 | 2014-02-19
Vous devez vous connecter pour publier un commentaire.
Ce qui se passe lorsque l'actif jeton d'accès n'est pas disponible, tout en appelant l'API point de fin
/me
Il y a deux solutions pour obtenir de l'habillage de cette
utiliser le nom d'utilisateur au lieu de /me
définir l'accès à jeton avant l'envoi de l'appel d'api
Pour la première, vous pouvez faire appel
Vous n'avez pas besoin d'envoyer
'access_token' => $facebook->getAccessToken(),
La Deuxième option est de faire comme
REMARQUE:
publish_stream
champ d'application doit être envoyé lors de la connexionAutodérision Avis :
publish_stream
a été remplacé parpublish_actions
, vérifier le facebook doc pour l'autorisationOriginalL'auteur Abhik Chakraborty
vous devez obtenir la permission .
Check it out ici
https://developers.facebook.com/docs/reference/login/
dans votre URL de connexion, vous devez passer les autorisations dans PORTÉE vérifier ce code de mon URL de connexion.
$login_url = $facebook->getLoginUrl(array('scope' => 'photo_upload,read_mailbox'));
peut-être que vous aurez besoin pour accéder à publish_actions autorisations dans votre application. ainsi, il sera comme
$login_url = $facebook->getLoginUrl(array('scope' => 'public_actions'));
OriginalL'auteur Nishant Solanki