Mit Koala FB-Pagefans finden

Dieser Artikel wurde von Do, Hoang Viet am Sonntag, 16. Dezember 2012 verfasst. Aktualisiert: 28.01.2014 18:53:18

In Facebook Applicationen werden häufig ausgewählte Funktionen nur für "eingetragene" Fans zugänglich gemacht. Wie ihr in Ruby on Rails mit Hilfe der 'Koala' Gem schnell überprüfen könnt, ob der aktuelle User ein Fan der Page ist, zeigen wir euch in diesem Artikel.

Prerequisite

Wir gehen davon aus, dass ihr bereits Grundkenntnisse mit RoR habt und bereits fleißig an eure Apps schreibt. Es wird in diese Artikel nur auf die Überprüfung selbst eingegangen.

Koala installieren

Damit ihr die Koala-Gem nutzen könnt, müsst ihr natürlich Koala installiert haben. Wenn nicht, reicht  eine Zeile in der GemFile:

gem 'koala'

Anschließend auf der Konsole zum Projektordner wechseln und

bundle install

eingeben. Beachtet, dass ihr die Konsole natürlich im Administratormodus starten müsst.

Pagefans über FQL abfragen

Um zu überprüfen, ob der User ein Fan eurer Community Seite ist, reicht folgender Code

pageid= '538256109520629' # PageID
graph = Koala::Facebook::API.new  access_token
temp  = graph.fql_query("select page_id from page_fan "+
               " where uid=me() and page_id in (#{pageid})")
@is_fan = temp.count == 1

Die PageID bekommt ihr beim Erstellen der Page automatisch über die URL. Das ist die Zahl hinter dem letzten Slash. Bei der zweiten Zeile initialisiert ihr Koala mit dem ACCESSTOKEN. Bei der 3. Zeile sendet ihr an Facebook eine FQL-Anfrage, ob der aktuelle User ein Fan eurer Seite ist. Die Anfrage sollte genau ein Treffer haben, wenn der User eurer Page like ansonsten 0.

Der ACCESSTOKEN muss 'user_likes" enthalten, falls es sich bei der Page nicht um die Community Page der App handelt. Ihr könnt in der Appkonfiguration von Facebook angeben, welche Seite die Community Page ist (nur eins möglich).

Fans von mehreren Pages

Falls ihr prüfen wollt, ob der aktuelle User Fans von mehreren Pages ist, dann müsst ihr die Anfrage nur wie folgt verändern:

pageid= ['538256109520629','319498658163014','260339280750225'] # PageID
temp  = graph.fql_query("select page_id from page_fan "+
            "where uid=me() and page_id = '#{pageid.join ','}'");
@is_fan = temp.count == pageid.count

Beachtet, dass der ACCESSTOKEN in diesem Fall 'user_likes' enthalten muss. Es würde sonst maximal eine page_id zurückgeben - und zwar die vom Community Page der App.

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network