Foros del Web » Programando para Internet » PHP »

Fallo con facebook api crear evento

Estas en el tema de Fallo con facebook api crear evento en el foro de PHP en Foros del Web. Hola, Me he bajado el siguiente código de la página http://www.masteringapi.com/tutorial...-graph-api/49/ y al ejecutarlo me da un error. Del código que copio debabjo sólo he ...
  #1 (permalink)  
Antiguo 13/04/2012, 22:35
 
Fecha de Ingreso: enero-2011
Mensajes: 159
Antigüedad: 13 años, 10 meses
Puntos: 1
Fallo con facebook api crear evento

Hola,

Me he bajado el siguiente código de la página http://www.masteringapi.com/tutorial...-graph-api/49/ y al ejecutarlo me da un error.

Del código que copio debabjo sólo he cambiado los siguientes valores:

$app_id = "xxxxxxxxxxxxxxxxxxxx"; //el de mi app
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //el de mi secret app
$my_url = $_SERVER['PHP_SELF']; // redirecciono a la misma página

Y creo que aquí viene el problema:

$code = $_REQUEST["code"]; //al ejecutar el script está vacío

Espero que me podáis ayudar.

Hasta luego



__________________________________________________ ___
<?php
$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$my_url = "REDIRECT_URL"; // mainly this should be the same URL to THIS page

$code = $_REQUEST["code"];

if(empty($code)) {
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&scope=create_event";
echo("<script>top.location.href='" . $auth_url . "'</script>");
}

$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$access_token = file_get_contents($token_url);

if( !empty($_POST) && (empty($_POST['name']) || empty($_POST['start_time']) || empty($_POST['end_time'])) ) {
$msg = "Please check your inputs!";
} elseif(!empty($_POST)) {
$url = "https://graph.facebook.com/me/events?" . $access_token;
$params = array();
// Prepare Event fields
foreach($_POST as $key=>$value)
if(strlen($value))
$params[$key] = $value;

// Check if we have an image
if( isset($_FILES) && !empty($_FILES['picture']['name']) ) {
$uploaddir = './upload/';
$uploadfile = $uploaddir . basename($_FILES['picture']['name']);
if (move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile)) {
$params['picture'] = "@" . realpath($uploadfile);
}
}

// Start the Graph API call
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
/*
Next option is only used for
user from a local (WAMP)
machine. This should be removed
when used on a live server!

https://github.com/facebook/php-sdk/issues/7

*/
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$result = curl_exec($ch);
$decoded = json_decode($result, true);
curl_close($ch);
if(is_array($decoded) && isset($decoded['id'])) {
// Event created successfully, now we can
// a) save event id to DB AND/OR
// b) show success message AND/OR
// c) optionally, delete image from our server (if any)
$msg = "Event created successfully: {$decoded['id']}";
}
}
?>
<!doctype html>
<html>
<head>
<title>Create An Event</title>
<style>
label {float: left; width: 100px;}
input[type=text],textarea {width: 210px;}
#msg {border: 1px solid #000; padding: 5px; color: red;}
</style>
</head>
<body>
<?php if( isset($msg) ) { ?>
<p id="msg"><?php echo $msg; ?></p>
<?php } ?>
<form enctype="multipart/form-data" action="" method="post">
<p><label for="name">Event Name</label><input type="text" name="name" value="a" /></p>
<p><label for="description">Event Description</label><textarea name="description"></textarea></p>
<p><label for="location">Location</label><input type="text" name="location" value="" /></p>
<p><label for="">Start Time</label><input type="text" name="start_time" value="<?php echo date('Y-m-d H:i:s'); ?>" /></p>
<p><label for="end_time">End Time</label><input type="text" name="end_time" value="<?php echo date('Y-m-d H:i:s', mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); ?>" /></p>
<p><label for="picture">Event Picture</label><input type="file" name="picture" /></p>
<p>
<label for="privacy_type">Privacy</label>
<input type="radio" name="privacy_type" value="OPEN" checked='checked'/>Open&nbsp;&nbsp;&nbsp;
<input type="radio" name="privacy_type" value="CLOSED" />Closed&nbsp;&nbsp;&nbsp;
<input type="radio" name="privacy_type" value="SECRET" />Secret&nbsp;&nbsp;&nbsp;
</p>
<p><input type="submit" value="Create Event" /></p>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 13/04/2012, 23:35
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Fallo con facebook api crear evento

Qué error te da?? Cuál es el resultado esperado? Por qué no consultas la página de dónde copiaste el código?
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 14/04/2012, 07:29
 
Fecha de Ingreso: enero-2011
Mensajes: 159
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Fallo con facebook api crear evento

el problema es que $code = $_REQUEST["code"] se queda vacío. de la página no van a responder. ya he puesto un post pero veo que desde hace meses todas las preguntas están sin responder, así que no tengo mucha esperanza.

espero vuestra respuesta porque no sé qué tiene que ir en code. Igual no basta con ejecutar este script. Lo he buscado en Google sin suerte.
  #4 (permalink)  
Antiguo 14/04/2012, 23:24
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Fallo con facebook api crear evento

$code siempre está vacío porque no hay ninguna clave en REQUEST con ese valor, probablemente el código está incompleto. Consulta directamente la API de Facebook.
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: api, evento, facebook, fallo, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:35.