ejemplos - facebook sdk php
FACEBOOK GRAPH/api de descanso: cómo INICIAR SESIÓN mi PROPIO USUARIO para actualizar mi ESTADO con PHP (3)
Quiero actualizar el estado de una FAN-PAGE por PHP con la ayuda de la API de Facebook. google dice: no funciona.
Ahora quiero actualizar mi propio estado de usuario por PHP. Mi principal problema es cómo iniciar sesión con mi propio usuario en la API gráfica (con PHP), sin usar un navegador y sin soluciones PHP divertidas.
mi principal problema es cómo iniciar sesión mi propio usuario en la API de gráfico (con php), sin usar un navegador y sin soluciones de PHP divertidas.
No hay forma de que actúe en nombre de un usuario (incluso su propio usuario) sin interactuar con él a través de un navegador al menos una vez para obtener el offline_access
.
En esta respuesta se explica cómo obtener el permiso offline_access
y cómo usarlo desde allí en adelante.
EDITAR:
Por favor, lea los comentarios! gracias @zerkms!
Necesita varias cosas para actualizar su perfil de Facebook o el feed de una página: una aplicación de Facebook ( client_id , client_secret ), profile_id y access_token (publish_stream, manage_pages, offline_access permisos)
Necesita offline_access porque, de lo contrario, el token de acceso caducará. Si ha leído que no necesita offline_access si ya tiene publish_stream especificado, simplemente significa que no lo necesita siempre.
Publicar una publicación es fácil:
$data = array(
''access_token'' => $access_token,
''message'' => ''status message'',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/{$profile_id}/feed");
Ahora, cómo obtener profile_id y access_token , puedes usar mi aplicación post panda o crear tu propia secuencia de comandos. Lo incluiré aquí:
# arvin castro
# http://codecri.me/
# January 16, 2011
$client_id = ''''; # application id
$client_secret = ''''; # application secret
$callbackURL = ''http://''; # the URL of this script
$extendedPermissions = ''publish_stream,manage_pages,offline_access'';
session_name(''facebookoauth'');
session_start();
if(isset($_GET[''logout'']) and $_SESSION[''loggedin'']) {
$_SESSION = array();
session_destroy();
}
if(isset($_GET[''signin''])) {
# STEP 1: Redirect user to Facebook, to grant permission for our application
$url = ''https://graph.facebook.com/oauth/authorize?'' . xhttp::toQueryString(array(
''client_id'' => $client_id,
''redirect_uri'' => $callbackURL,
''scope'' => $extendedPermissions,
));
header("Location: $url", 303);
die();
}
if(isset($_GET[''code''])) {
# STEP 2: Exchange the code that we have for an access token
$data = array();
$data[''get''] = array(
''client_id'' => $client_id,
''client_secret'' => $client_secret,
''code'' => $_GET[''code''],
''redirect_uri'' => $callbackURL,
);
$response = xhttp::fetch(''https://graph.facebook.com/oauth/access_token'', $data);
if($response[''successful'']) {
$var = xhttp::toQueryArray($response[''body'']);
$_SESSION[''access_token''] = $var[''access_token''];
$_SESSION[''loggedin''] = true;
} else {
print_r($response[''body'']);
}
}
if($_SESSION[''loggedin'']) {
// Get Profile ID
$data = array();
$data[''get''] = array(
''access_token'' => $_SESSION[''access_token''],
''fields'' => ''id,name,accounts'',
);
$response = xhttp::fetch(''https://graph.facebook.com/me'', $data);
echo ''<pre>'';
print_r(json_decode($response[''body''], true));
echo ''</pre>'';
} else {
echo ''<a href="?signin">Sign in with Facebook</a>'';
}
?>
Estoy usando mi clase de contenedor cURL, xhttp
En ambos casos, debe obtener el permiso publish_stream
http://developers.facebook.com/docs/authentication/permissions
Esto se puede hacer con FB.login ()
Más información: http://developers.facebook.com/docs/authentication
Después de eso, puede actualizar el estado con la publicación de api de gráficos: http://developers.facebook.com/docs/reference/api/post