2010-09-21 14 views
8

Ich habe die Facebook Open Graph API untersucht. Es gibt eine erweiterte Berechtigung "Seiten verwalten", die es ermöglicht, über den "Identitätswechsel" auf dem Facebook-Seitenfeed/-wall eines Nutzers zu veröffentlichen. Das ist nette Funktionalität, aber gibt es noch etwas, das Sie über die API tun können?Manage Facebook Seite Tab Apps über Open Graph API?

Insbesondere möchte ich in der Lage sein, eine "Tab" -Anwendung von einer Benutzerseite über die API hinzufügen oder entfernen. Gerade jetzt ist es kompliziert, einen Nutzer durch den Prozess des Hinzufügens einer Tab-App zu seiner geschäftlichen (oder Place-) Facebook-Seite zu führen, und es wäre FANTASTISCH, wenn er meiner App nur die Erlaubnis erteilen könnte und ich die App für sie mit der API hinzufügen könnte .

Grundsätzlich frage ich mich, ob die API für echte "Seitenverwaltung" ermöglicht, oder einfach auf die Seite posten.

Hat jemand Erfahrung damit?

Ist das Beste, was ich tun kann, sie auf die "add.php" Seite mit der "Seite" GET-Variable (z. B. http://www.facebook.com/add.php?api_key=xxxx&pages=1&page=xxxxxx) zeigen? Dies funktioniert OK, wenn Sie eine Tab-Anwendung HINZUFÜGEN, aber es gibt überhaupt nichts, um ihnen zu helfen, eine Anwendung von ihrer Seite zu ENTFERNEN, soweit ich weiß.

Danke!

+2

es sieht aus wie ich in der Lage könnte zumindest Sehen Sie, ob die App, die ich verwende, der Seite über die FQL-Abfrage "has_added_app" hinzugefügt wurde http://developers.facebook.com/docs/reference/fql/page – thaddeusmt

Antwort

13

Es ist nun bemerkenswert, für jemand diese Frage sehen (! Was es ist 1. Geburtstag feiert), dass Facebook ein Upgrade deutlich ihre API-Funktionalität zurück im Juli 2011. Sie können jetzt Registerkarten hinzufügen, entfernen, umbenennen, neu anordnen und als Standard über die Open Graph API festlegen. Die Blog-Post ist hier:

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

Und die offizielle Dokumentation ist hier:

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

Was Facebook noch nicht über eine neue API-Methode für neue Registerkarte Anwendungen erstellen oder für Ändern des Tabsymbols Das ist ein großer Schritt!

UPDATE: Es gibt Fehler auf dem neuen Bug-Tracker über das Erstellen von Anwendungen in der API zu folgen, wenn Sie es folgen wollen und sehen, was sie tun: http://developers.facebook.com/bugs/295627350461318

+0

Neue Frage und Antwort zum Aktualisieren der neuen Tab-Bilder für Timeline-Seiten über die API: http://stackoverflow.com/questions/9503366/how-to-upload-custom-app-image-tab-image -for-timeline-page-tabs-via-api/9522597 – thaddeusmt

+0

Der Link für die offizielle Tab-Dokumentation wurde geändert in: https://developers.facebook.com/docs/graph-api/reference/v2.2/page/ Registerkarten – donut

2

Ja, das Beste, was Sie tun können, ist, sie an die URL add.php zu verweisen. Sie können nichts tun, um die App zu entfernen.

Die gute Nachricht ist, dass der Benutzer zuvor den Add-Prozess durchlaufen UND sich physisch dafür entscheiden musste, den Tab zu aktivieren, indem er ihn im Tab-Dropdown auf der Seite findet. Facebook hat das kürzlich geändert und es scheint, dass der Tab sofort aktiviert wird, nachdem ein Nutzer die App seiner Seite hinzugefügt hat.

Wie für "has_added_app" das funktioniert ... sorta. Es wird Ihnen sagen, wenn die App der Seite hinzugefügt wird, aber es wird Ihnen nicht sagen, wenn die Registerkarte aktiviert ist. Beispielsweise kann ein Benutzer die Registerkarte deaktivieren, die App jedoch immer noch technisch auf der Seite installieren. Daher wird "has_added_app" true zurückgeben, obwohl die Registerkarte nicht sichtbar ist.

+0

Danke für die Antwort! Ich hatte Angst, dass dies der Fall war, ich fühlte mich einfach nur um sicher zu sein, dass es keine versteckten "Merkmale" gab. Ich werde mit der has_added_app herumspielen müssen, das ist zumindest etwas hilfreich. – thaddeusmt

3

Es gibt eine Möglichkeit, dies über die API zu tun. Wir haben es endlich geschafft zu arbeiten, nach vielen Stunden Schweiß und Tränen :)

Sie können eine Registerkarte zu einer Seite hinzufügen, ohne Ihre App zu verlassen. Hier ist ein Codeschnipsel, den wir dafür verwendet haben. Wir rufen eine Liste der Seiten auf, die ein Benutzer verwaltet, zeigen sie in einem Dropdown-Menü an und bitten ihn, die Seite auszuwählen, der der Tab "Mein Agent-Profil" hinzugefügt werden soll.

Und das Endprodukt sieht ungefähr so ​​aus - 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

Danke Daniel, ich muss das ausprobieren. – thaddeusmt