2010-01-15 5 views
5

Ich versuche, Facebook-Events über Cron-Job zu erstellen. Die Events sollten im Auftrag von Nutzern meiner facebook-connect-Seite erstellt werden, die einen Offline-Zugang gewährt haben. Ich habe session_keys, die nicht ablaufen, aber nicht funktionieren können! Erstellen von Veranstaltungen im Namen meiner App funktioniert wie ein Zauber, ist einfach nicht, was ich will ...Erstellen von Facebook-Events über 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)); 

?> 

Ergebnisse in: „Ausnahme‚FacebookRestClientException‘mit der Meldung‚ungültiger Parameter‘“

Ist jemand Kann ich meinen Tag retten?

+0

Nicht sicher, dass Sie sollten sich auf einen Sitzungsschlüssel sein Posting. Ich könnte das verwenden, um Zugang zu Ihren Veranstaltungen zu erhalten. –

+0

Nein, das konnte man nicht. Ich tippte etwas ein, das wie ein session_key aussieht ;-) – Sebastian

+0

Könnten Sie die Struktur von '$ event' posten? Es sieht so aus, als hättest du schlechte Daten drin. – mattbasta

Antwort

1

Angenommen, Sie haben die erweiterte Berechtigung create_events angefordert, sollten Sie dies mit dem neuen Open Graph API und dem aktuellen PHP SDK tun können. Der Code würde wie folgt (nicht getestet) sein:

$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); 
    } 
} 

Aus als Cron-Aufgabe ausgeführt werden sollte auch, ich weiß nicht, warum es nicht würde.

1

Sind Sie sicher, dass Sie den Sitzungsschlüssel verwenden müssen? Ich habe access_token verwendet, das bereitgestellt wird, wenn der Zugriff für das Posten von Elementen an der Wand und den Offlinezugriff auf Benutzerinformationen gewährt wird.

edit: Codebeispiel, das für die Buchung Elemente Benutzer Wand (Ereignisse arbeiten gleichermaßen) für mich perfekt funktioniert:

<?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;