renovar page obtener espaƱol crear app php facebook api access-token

php - page - Facebook Uncaught OAuthException: se debe usar un token de acceso activo para consultar informaciĆ³n sobre el usuario actual.



page access token facebook (7)

Utilizar:

$facebook->api(''/''.$facebook_uid)

en lugar de

$facebook->api(''/me'')

funciona.

He estado luchando por descubrir qué está pasando con esto. Mis scripts funcionaban bien por un tiempo y de repente se detenían a medias.

Estoy accediendo a la API y estoy obteniendo un token de acceso. Con el token de acceso, puedo acceder a la información pública de los usuarios sin problemas. Sin embargo, cuando trato de publicar información en su cuenta de FB obtengo este error.

Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user.

¿Alguna idea de lo que está pasando aquí? También estoy usando sesiones en mi sitio para realizar un seguimiento de los ID de usuario internos. No estoy seguro si mis sesiones podrían estar causando un problema.

Esta es mi secuencia de comandos de carga donde recibo un error.

require ''facebook/src/facebook.php''; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( ''appId'' => ''12345678'', ''secret'' => ''REMOVED'', ''fileUpload'' => true, ''cookie'' => true, )); $facebook->setFileUploadSupport(true); $me = null; // Session based API call. if ($session) { try { $uid = $facebook->getUser(); $me = $facebook->api(''/me''); } catch (FacebookApiException $e) { error_log($e); } } // login or logout url will be needed depending on current user state. if ($me) { $logoutUrl = $facebook->getLogoutUrl(); } else { $loginUrl = $facebook->getLoginUrl(); } $photo_details = array(''message'' => ''my place''); $file=''photos/my.jpg''; //Example image file $photo_details[''image''] = ''@'' . realpath($file); $upload_photo = $facebook->api(''/me/photos'', ''post'', $photo_details);



Entonces tuve el mismo problema, pero fue porque estaba guardando el token de acceso pero no lo estaba usando. Podría ser porque estoy súper dormido debido a las fechas de vencimiento, ¡o quizás simplemente no pensé en eso! Pero en caso de que alguien más esté en la misma situación:

Cuando inicio sesión en el usuario guardo el token de acceso:

$facebook = new Facebook(array( ''appId'' => <insert the app id you get from facebook here>, ''secret'' => <insert the app secret you get from facebook here> )); $accessToken = $facebook->getAccessToken(); //save the access token for later

Ahora cuando hago solicitudes a Facebook, solo hago algo como esto:

$facebook = new Facebook(array( ''appId'' => <insert the app id you get from facebook here>, ''secret'' => <insert the app secret you get from facebook here> )); $facebook->setAccessToken($accessToken); $facebook->api(... insert own code here ...)


Simplemente verifique el ID de usuario de Facebook actual $user y si devuelve null, entonces necesita volver a autorizar al usuario (o use el $_SESSION usuario $_SESSION personalizado, no recomendado)

require ''facebook/src/facebook.php''; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( ''appId'' => ''APP_ID'', ''secret'' => ''APP_SECRET'', )); $user = $facebook->getUser(); $photo_details = array(''message'' => ''my place''); $file=''photos/my.jpg''; //Example image file $photo_details[''image''] = ''@'' . realpath($file); if ($user) { try { // We have a valid FB session, so we can use ''me'' $upload_photo = $facebook->api(''/me/photos'', ''post'', $photo_details); } catch (FacebookApiException $e) { error_log($e); } } // login or logout url will be needed depending on current user state. if ($user) { $logoutUrl = $facebook->getLogoutUrl(); } else { // redirect to Facebook login to get a fresh user access_token $loginUrl = $facebook->getLoginUrl(); header(''Location: '' . $loginUrl); }

He escrito un tutorial sobre cómo subir una imagen al muro del usuario.


Tengo el mismo problema cuando trato de obtener información de los usuarios sin autenticación.

Compruebe si tiene loggen antes de cualquier solicitud.

$uid = $facebook->getUser(); if ($uid){ $me = $facebook->api(''/me''); }

El código anterior debería resolver su problema.


Tuve el mismo problema, pero puedo resolver este problema limpiando las cookies y el caché de mi navegador (ctrl+shift+R) . Además, debe asegurarse de que su token de acceso esté activo.

Espero que esto te ayude a resolver tu problema.


Tuvo el mismo problema y la solución fue reautorizar al usuario. Verifíquelo aquí:

<?php require_once("src/facebook.php"); $config = array( ''appId'' => ''1424980371051918'', ''secret'' => ''2ed5c1260daa4c44673ba6fbc348c67d'', ''fileUpload'' => false // optional ); $facebook = new Facebook($config); //Authorizing app: ?> <a href="<?php echo $facebook->getLoginUrl(); ?>">Login con fb</a>

Proyecto guardado y abierto en mi entorno de prueba y funcionó de nuevo. Como lo hice, puedes comentar tu código anterior e intentarlo.