¿Cómo publico un evento en una página de fans de Facebook usando PHP SDK y Graph API?
Frecuentes
Visto 3,248 veces
5
El siguiente código funciona, pero crea el evento como el administrador de la página actualmente conectado. Lo necesito para publicar el evento en la propia página de fans. FYI: A mi aplicación se le ha otorgado el alcance de los permisos: manage_pages
<?php
// Initialize a Facebook instance from the PHP SDK
$config = array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_APP_SECRET,
'cookie' => false,
'scope' => 'manage_pages,create_event'
);
$facebook = new Facebook($config);
$access_token = $facebook->getAccessToken();
$page_id = 'XXXXXXXXXXXX';
// Now, getting the PAGE Access token, using the user access token
$page_token_url = "https://graph.facebook.com/$page_id?fields=access_token&" . $access_token;
$response = file_get_contents($page_token_url);
// Parse the return value and get the Page access token
$resp_obj = json_decode($response,true);
$page_access_token = $resp_obj['access_token'];
// Declare the variables we'll use to demonstrate
// the new event-management APIs
$event_id = 0;
$event_name = "New Event API Test Event";
$event_start = time() + rand(1, 100) * rand(24, 64) * 3600;
$event_privacy = "SECRET"; // We'll make it secret so we don't annoy folks.
// We'll create an event in this example.
// We'll need create_event permission for this.
$params = array(
'name' => $event_name,
'start_time' => $event_start,
'privacy_type' => $event_privacy,
'access_token' => $page_access_token,
'page_id' => $page_id //where $page_id is the ID of the page you are managing
);
// Create an event
$ret_obj = $facebook->api("/$page_id/events", 'POST', $params);
if(isset($ret_obj['id'])) {
// Success
$event_id = $ret_obj['id'];
printMsg('Event ID: ' . $event_id);
} else {
printMsg("Couldn't create event.");
}
// Convenience method to print simple pre-formatted text.
function printMsg($msg) {
echo "<pre>$msg</pre>";
}
?>
1 Respuestas
1
La respuesta está aquí: API PHP de Facebook, publicar un evento en una página
Copiado a continuación para mayor comodidad:
Creo que necesitas la página access_token y así es como la obtienes:
$page_id = "XXXXXXXXX";
$page_access_token = "";
$result = $facebook->api("/me/accounts");
foreach($result["data"] as $page) {
if($page["id"] == $page_id) {
$page_access_token = $page["access_token"];
break;
}
}
Asegúrese de otorgar el permiso de administración de páginas y agregue el token de acceso a la matriz $event_info.
contestado el 23 de mayo de 17 a las 13:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php facebook-graph-api facebook-php-sdk or haz tu propia pregunta.
Lo descubrí: agregué el parámetro
page_id
a la lista de$params
y le dio el valor$page_id
¡y despegó! Publicaré el código modificado en caso de que ayude a alguien más si puedo recordar dentro de las próximas horas debido a mi baja reputación. ¡Gracias independientemente! - lincolnberryiii¿Es este el código modificado anterior? ¡Realmente me vendría bien un poco de ayuda ahora mismo! :) - Jody Heavener
@JodyHeavener Lo acabo de actualizar para ti. - lincolnberryiii
Error fatal: excepción de OAuth no detectada: token de acceso de OAuth no válido. lanzado en /home/scott/public_html/facebook-php-sdk/src/base_facebook.php en la línea 1340 - Scott Fleming