2010-09-21 12 views
8

Ho indagato sull'API di Facebook Open Graph. Esiste un'autorizzazione estesa per "gestire le pagine" che consente la pubblicazione sul feed/wall di Facebook della pagina di un utente tramite "rappresentazione". Questa è una bella funzionalità, ma c'è ancora qualcosa che puoi fare tramite l'API?Gestisci le app della scheda Pagina Facebook tramite l'API Open Graph?

In particolare, vorrei poter aggiungere o rimuovere un'applicazione "Tab" dalla pagina di un utente tramite l'API. Al momento è complicato guidare un utente attraverso il processo di aggiunta di un'app di tabulazione alla sua pagina Facebook aziendale o di luogo, e sarebbe FANTASTICO se potessero semplicemente concedere il permesso alla mia app e potrei aggiungere l'app per loro con l'API .

Fondamentalmente mi chiedo se l'API consente una vera "gestione delle pagine", o semplicemente postare sulla pagina.

Qualcuno ha qualche esperienza in questo?

È il meglio che posso fare indicandoli alla pagina "add.php" con la variabile GET "pagina" (ad esempio http://www.facebook.com/add.php?api_key=xxxx&pages=1&page=xxxxxx)? Funziona OK per AGGIUNGERE un'applicazione di tabulazione, ma non c'è nulla per aiutarli a RIMUOVERE un'applicazione dalla loro Pagina, per quanto ne so.

Grazie!

+2

sembra che io possa essere in grado di almeno verifica se l'app che sto utilizzando è stata aggiunta alla pagina tramite la query FQL "has_added_app" http://developers.facebook.com/docs/reference/fql/page – thaddeusmt

risposta

13

Vale la pena notare ora, per chiunque la visualizzazione di questa domanda (! Che si festeggerà il suo primo compleanno), che Facebook significativamente potenziato la loro funzionalità API indietro a luglio 2011. Ora è possibile aggiungere, rimuovere, rinominare, riordinare e impostare le schede come predefinite tramite l'API Open Graph. Il post sul blog è qui:

https://developers.facebook.com/blog/post/524/

E la documentazione ufficiale è qui:

https://developers.facebook.com/docs/reference/api/page/#tabs

Che Facebook non ha ancora è un nuovo metodo API per la creazione di nuove applicazioni scheda, o per cambiando l'icona della scheda. Questo è un grande passo però!

UPDATE: C'è bug sul nuovo bug tracker per seguire su come creare applicazioni nell'API se si vuole seguire e vedere quello che fanno: http://developers.facebook.com/bugs/295627350461318

+0

Appena pubblicato nuove domande e risposte su come aggiornare le nuove immagini delle schede per le pagine Timeline tramite l'API: http://stackoverflow.com/questions/9503366/how-to-upload-custom-app-image-tab-image -per-timeline-page-tabs-via-api/9522597 – thaddeusmt

+0

Il collegamento per la documentazione delle schede ufficiali è stato modificato in: https://developers.facebook.com/docs/graph-api/reference/v2.2/page/ schede – donut

2

Sì, il meglio che puoi fare è indirizzarli all'URL di add.php. Non puoi fare nulla per aiutarli a rimuovere l'app.

La buona notizia è che l'utente era solito passare attraverso il processo di aggiunta e decidere fisicamente di "abilitare" la scheda trovandola nel menu a tendina della scheda sulla pagina. Facebook lo ha recentemente modificato e sembra che la scheda sia ora abilitata immediatamente dopo che un utente ha aggiunto l'app alla sua pagina.

Per quanto riguarda "has_added_app" che funziona ... sorta. Ti dirà se l'app è stata aggiunta alla pagina, ma non ti dirà se la scheda è abilitata. Ad esempio, un utente può disabilitare la scheda ma ha ancora tecnicamente l'app installata nella pagina. Pertanto "has_added_app" restituirà true anche se la scheda non è effettivamente visibile.

+0

Grazie per la risposta! Avevo paura che fosse un caso, mi sentivo semplicemente in giro per assicurarmi che non ci fossero alcune "caratteristiche" nascoste. Dovrò giocare con has_added_app, che è almeno un po 'utile. – thaddeusmt

3

C'è un modo per farlo tramite l'API. Abbiamo finalmente funzionato, dopo molte ore di sudore e lacrime :)

È possibile aggiungere una scheda a una pagina senza uscire dall'app. Ecco uno snippet di codice che abbiamo usato per questo. Otteniamo un elenco di pagine che un utente gestisce, le mostra in un menu a discesa e chiediamo loro di selezionare a quale pagina aggiungere la nostra scheda "il mio profilo agente".

E il prodotto finale sembra qualcosa di simile - http://www.facebook.com/pages/Jennifer-Anderson-Real-Estate-Agent/185071901564573?sk=app_253956901293839

protected void btnAddTab_Click(object sender, EventArgs e) 
{ 
    if (ddlPage2.SelectedIndex >= 0) 
    { 
     FaceBookPages page = FaceBookPages.LookupByPageID(long.Parse(ddlPage2.SelectedValue)); 
     if (page == null) 
      throw new NPlaySysException("FaceBookPages is null."); 

     AnalyticLog log = new AnalyticLog(); 
     log.EventID = FBCommon.Events.AddAgentAppTabID; 
     log.UserID = UserID; 
     log.EventTime = DateTime.Now; 
     log.Update(); 

     string result = FacebookSvc.AddTab(Web.AgentAppID, "me", page.AccessToken); 
     if (result.Equals("true")) 
     { 
      FaceBookPages.UpdateAgentProfileAdded(page.PageID, true); 
      List<FaceBookPages> notTabbedPages = FaceBookPages.LookupAgentProfileNotAddedByUserID(UserID); 

      imgStep3.ImageUrl = StepDoneImagePath; 
      divStep3.Attributes["class"] = StepDoneCssClass; 
      phStep3.Visible = false; 
      Step3Done = true; 
      btnCloseStep3.Visible = false; 

      if (notTabbedPages.Count > 0) 
       btnEditStep3.Visible = true; 
      else 
       btnEditStep3.Visible = false; 
     } 
     else 
     { 
      lblErrorAddTab.Text = "Failed to add your profile to page."; 
      Web.EmailError(string.Format("FacebookSvc.AddTab Failed. result={0}<br />UserID={1}<br />PageID={2}", result, UserID, page.PageID)); 
     } 
    } 
} 
+0

Grazie Daniel, dovrò provarlo. – thaddeusmt

Problemi correlati