2010-01-15 4 views
5

J'essaie de créer des événements facebook via cron-job. Les événements doivent être créés au nom des utilisateurs de mon site facebook-connect, qui ont accordé un accès hors connexion. J'ai session_keys qui n'expire pas, mais ne peut pas le faire fonctionner! Créer des événements au nom de mon application fonctionne comme un charme, est tout simplement pas ce que je veux ...Créer des événements facebook via cron-job

var_dump($event) with some randomly generated data: 
'name' => string 'Try a athirst these and' (length=23) 
'tagline' => string 'as it that he down the almost the' (length=33) 
'description' => string 'that deeper but is sea whenever lead all a stream knowing robust bakehouses attending have am it pent for own quick' (length=115) 
'category' => int 5 
'subcategory' => int 52 
'location' => string 'same as more the' (length=16) 
'start_time' => int 1263630600 
'end_time' => int 1263654000 
'street' => string 'This Was Ships My 807' (length=21) 
'phone' => string '49 692 324' (length=10) 
'email' => string '[email protected]' (length=15) 
'privacy_type' => string 'OPEN' (length=4) 

<?php 

$facebook = new Fb(FACEBOOK_API_KEY, FACEBOOK_API_SECRET); 
// Set session key (that has been returned after offline-access has been granted) 
$facebook->api_client->session_key = '5de03e54cb359f9asf3435365e-4588985454'; 
$eid = $facebook->api_client->events_create(json_encode($event)); 

?> 

Résultats dans: « exception « FacebookRestClientException » avec le message" Paramètre non valide »

Est-ce quelqu'un là-bas en mesure de sauver ma journée?

+0

Vous ne savez pas que vous devriez afficherons une clé de session sur le SO. Je pourrais l'utiliser pour avoir accès à vos événements. –

+0

Non, vous ne pourriez pas. Je viens de taper quelque chose qui ressemble à une session_key ;-) – Sebastian

+0

Pourriez-vous poster la structure de '$ event'? On dirait que vous avez de mauvaises données là-dedans. – mattbasta

Répondre

1

En supposant que vous avez demandé l'autorisation étendue create_events, vous devriez être en mesure de le faire avec le nouveau Open Graph API et le PHP SDK mis à jour. Le code serait quelque chose comme ça (non testé):

$facebook = new Facebook(array(
    'appId' => 'application ID', 
    'secret' => 'application secret', 
    'cookie' => true, 
)); 
if ($session = $facebook->getSession()) { 
    try { 
    $event = $facebook->api("/me/events","post",array(
     'title'=>'My Event Name', 
     'start_time'=>1263630600, 
     'end_time'=>1263654000, 
     // etc add your other event info here 
    )); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 

Il devrait fonctionner à partir comme une tâche CRON aussi bien, je ne sais pas pourquoi il ne serait pas.

1

Etes-vous sûr de devoir utiliser une clé de session? J'utilise access_token qui est fourni lorsque l'accès est autorisé pour l'affichage d'éléments sur le mur et l'accès aux informations utilisateur hors ligne.

modifier: exemple de code qui fonctionne pour moi parfaitement pour les articles Affectations à mur de l'utilisateur (fonctionne aussi bien des événements):

<?php 
$ch = curl_init ('https://graph.facebook.com/me/feed'); 
curl_setopt ($ch, CURLOPT_POST, true); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, array('access_token' => $user_access_token, 'message' => $message, 'link' => $link)); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
$ret = curl_exec ($ch); 
$ret = json_decode($ret); 
if (!empty($ret->id)) { 
    return true; 
} 
return false; 
Questions connexes