Facebook Graph API – cancella come

Sto sviluppando un'applicazione per Facebook in PHP, una parte della quale elenca i "mi piace" dell'utente. Vorrei aggiungere un collegamento accanto a ciascuno in modo che l'utente possa gestirne i propri eliminandoli where preferiscono.

Facebook menziona questo nel loro grafico api doc:

Puoi eliminare un like inviando una richiesta DELETE a / POST_ID / likes (poiché i like non hanno un ID).

Ma ognuno di loro deve avere un id – come altro lo elimineresti?

Qualcuno l'ha già fatto prima?

Sì, i Mi piace non hanno un ID nell'API Graph. Ti piace o a differenza di un elemento di POSTing o DELETEing su {item_id}/likes , where {item_id} è sostituito dall'ID dell'object che ti piace / non piace.

Per scoprire che cosa è piaciuto all'utente corrente (quindi è ansible eliminarli in modo appropriato), è ansible utilizzare la connessione "Mi piace" dell'object Utente ( documenti ). Quindi, se richiedi http://graph.facebook.com/me/likes , otterrai un elenco di pagine / persone / qualsiasi cosa sia piaciuta a un utente. (Nota: questo non include post o foto o cose del genere)

Ciò restituirà una matrix di dati piena di elementi come questo:

 { "name": "Very Hungry Caterpillar", "category": "Artist", "id": "29956247793", "created_time": "2009-03-27T15:48:29+0000" } 

L'ID lì dentro non è l'ID di simili. È l'ID dell'object che l'utente ha gradito, quindi per disomogeneo, devi fare DELETE su http://graph.facebook.com/29956247793/likes .

Non è il 'mi piace' che ha un ID, è il post – che è il motivo per cui la chiamata api usa '/ POST_ID / likes' come destinazione – se elimini '/ POST_ID', si sbarazzerà del post, ma se elimini '/ POST_ID / likes' si sbarazzerà del "mi piace" dell'utente per quel post.

I Mi piace hanno un ID.

Se guardi https://graph.facebook.com/me/likes , vedrai che i dati risultanti contengono un valore ID per ciascuno.

 { "data": [ { "name": "Audi", "category": "Consumer_products", "id": "96585976469", "created_time": "2010-09-27T15:30:15+0000" } ] } 

Potresti voler provare l'ID lì, ho notato che il doc dell'AP di FB a volte ha degli errori.

Edit : Penso che questo potrebbe anche essere un problema di terminologia, in quanto ciò che il doc dice che non ha ID è probabilmente come un post di un utente, e questi probabilmente non hanno un ID e possono essere rimossi inviando un'eliminazione al POST_ID / ama. Poi ci sono i Mi piace generati da Mi piace pagine e / o siti Web esterni tramite il button Mi piace, e questi hanno un ID. Confuso, lo è.

Con OpenGrpah, i like hanno id, è il singolo field id nell'object restituito da una chiamata API a og.likes.

A differenza dell'utilizzo di access_token che era solito rendere questo simile .

pseudocodice:

piacere:

 FacebookGraphApi::getInstance()->setAccessToken('xxx')->post('xxxxxx/likes') 

a differenza di:

 FacebookGraphApi::getInstance()->setAccessToken('xxx')->delete('xxxxx/likes')