2010-10-11 19 views
8

Ho bisogno di sincronizzare eventi dal mio CMS alla pagina specifica di Facebook. Sto provando a creare un evento per la mia pagina creata ma non ho ancora risultati. Posso semplicemente creare eventi, relativi all'utente, ma non alla pagina. Il codice utilizza Facebook PHP-SDK.Creazione evento Facebook per pagina specifica con API grafico FB

$page_id = '31337'; 
$page = $facebook->api("/{$page_id}"); 
$event_data = array(
    'name'   => 'Event: ' . date("H:m:s"), 
    'start_time' => time() + 60*60, 
    'end_time'  => time() + 60*60*2, 
    'owner'   => $page 
); 
$post = $facebook->api("/{$page_id}/events", 'POST', $event_data); 

Dopo l'esecuzione di questo frammento di codice, evento è stato creato, ma come ho detto prima che appartiene all'utente se 'proprietario' in data dati è pagina. La mia app ha autorizzazioni manage_pages, create_event e publish_stream. Cosa mi manca?

Soluzione

A "OLD REST API" documentazione ho trovato che "nuove API Graph" ha ancora bisogno di parametro page_id. Così $ event_data variabile deve essere come di seguito:

$event_data = array(
    'name'   => 'Event: ' . date("H:m:s"), 
    'start_time' => time() + 60*60, 
    'end_time'  => time() + 60*60*2, 
    'page_id'  => $page['id] 
); 
+0

Grazie amico! Mi hai appena aiutato! :) –

risposta

3

«crea un evento sul conto dell'utente se l'applicazione dispone di una chiave di sessione attiva per l'utente; altrimenti crea un evento per conto dell'applicazione. »- Source

Questo risponde alla tua domanda?

+0

Thx per risposta, ma in realtà no. Quando l'utente non ha effettuato l'accesso, l'evento viene creato nella pagina dell'app. Ma non in una pagina specifica, quale id ho. – Pawka

+4

Ma nel tuo link specificato ho trovato la soluzione: "L'argomento page_id può essere usato per generare eventi per gruppi e Pagine.". È strano che la documentazione "nuova grafia API" manchi di informazioni sul parametro page_id che è descritto in "Old REST API". – Pawka

+1

Grande quindi :) La documentazione di Facebook è tutt'altro che decente, come probabilmente saprai ormai ... –

0

Interessante, la mia esperienza è esattamente l'opposto. Ho provato a creare l'evento con il parametro page_id e ho ottenuto un errore di autorizzazione. Rimosso il page_id e ha funzionato bene. Il trucco consisteva nell'usare il token di accesso dell'applicazione piuttosto che quello utente.

+0

Devi impostare l'elenco delle autorizzazioni per la tua applicazione. http://developers.facebook.com/docs/authentication/permissions L'autorizzazione "manage_pages" è in realtà ciò di cui hai bisogno. – Pawka

+0

Non come tale: le mie pagine sono create dalla mia app piuttosto che da un utente, quindi non è prevista l'autorizzazione di manage_pages. Per qualche ragione, specificando page_id ha causato il fallimento della chiamata API, rimuovendola ha funzionato correttamente. – Alastair

1

È necessario passare il token di accesso della pagina gestita, che è possibile ottenere da graph.facebook.com/me/account (ovviamente passando il proprio token di accesso per ottenere l'elenco delle pagine fan gestite). Vedrai lì un elenco di token di accesso per ciascuna delle tue fan page, usali per creare eventi o postare nella tua fanpage.

0

Impostare access_token sulla pagina prima di creare il post. Assicurati che l'app abbia l'autorizzazione "manage_pages" perché funzioni.

Ti piace questa:

$page = $fbApi->api('/'.<page_id>,'GET',array('fields'=> 'access_token')); 
$fbApi->setAccessToken($page['access_token']); 
Problemi correlati