Ok, me llevó aproximadamente una semana de investigación, pero esta es mi solución. en el https://developers.facebook.com/tools/explorer/, asegúrese de tener manage_page como parte de su access_token.después de que el uso de este código con su ID de aplicación, en secreto, y redirigir:
<?php
app_id = "APP_ID";
$app_secret = "APP_SECERET";
$post_login_url = "REDIRECT_URL";
$code = $_REQUEST['code'];
//Obtain the access_token with publish_stream permission
if(empty($code)){
$dialog_url= "http://www.facebook.com/dialog/oauth?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode($post_login_url)
. "&COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES";
echo("<script>top.location.href='" . $dialog_url
. "'</script>");
}
else {
$token_url="https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id
. "&redirect_uri=". urlencode($post_login_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
echo 'access token: ' . $access_token.'<br>';
if($access_token){
$token_url="https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id
. "&redirect_uri=". urlencode($post_login_url)
. "&client_secret=" . $app_secret
.'&grant_type=fb_exchange_token'
. "&fb_exchange_token=" . $access_token;
$response = file_get_contents($token_url);
$access_token = $params['access_token'];
echo 'new access token: '.$access_token;
}
}*/
?>
Después de que copia el 'nuevo token de acceso' y volver a https://developers.facebook.com/tools/explorer/ Al llegar allí pasado en su nuevo token de acceso en el acceso campo de token A continuación, haz clic en enviar. Después de eso en el nodo verá + _ ___ haga clic en esto y desplácese hacia abajo a las cuentas y haga clic en eso. busque la página para la que necesita el token de acceso y cópiela y péguelo en el campo clave de acceso. haga clic en depuración y verá que nunca caducará. guarda ese token, seguirá siendo válido siempre y cuando no restablezcas el secreto de tus aplicaciones.
gracias a Pete, pero cuando hago esa llamada i tener esta respuesta de error { "error": { "mensaje": "Error desconocido producido. ", " tipo ":" OAuthException ", " código ": 1 } } –
EXISTING_ACCESS_TOKEN es el token de la aplicación o el token de la página? tal vez echo de menos algo :( –
@Pete: ¿Estás seguro de que el depurador muestra 'Expira: Nunca' porque para mí muestra' Expira: 1354445684 (en aproximadamente 2 meses) ' – RanRag