Seite 1 von 37 12311 ... LetzteLetzte
Ergebnis 1 bis 10 von 368

Facebook App - Einstiegstutorial: Benutzerdatenabfrage

Das ist eine Diskussion über Facebook App - Einstiegstutorial: Benutzerdatenabfrage im Grundlagen / Tipps Forum; ACHTUNG: diese Tutorial Arbeitet noch mit der alten SDK von Facebook, ein Tutorial für 3.0 wird folgen Grüße euch! Facebook, ...

  1. #1
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.657

    Beitrag Facebook App - Einstiegstutorial: Benutzerdatenabfrage

    ACHTUNG: diese Tutorial Arbeitet noch mit der alten SDK von Facebook, ein Tutorial für 3.0 wird folgen

    Grüße euch!

    Facebook, jeder kennt es, jeder redet darüber und sehr viele nutzen es.
    In der heutigen Zeit kommt man als Webentwickler nicht mehr an Facebook vorbei. Da ich mich jetzt selbst etwas länger alleine mit dem Grundeinstieg gequält habe möchte ich euch hier eine schnelle Zusammenfassung geben.

    Fehler bitte einfach melden, bin selbst noch kein Profi wenn es um Facebook Apps geht.

    Vorab: es handelt sich hierbei um ein Facebook App das per Iframe eingebunden wird. D.h es müssen ALLE Dateien auf dem eigenen Server abgelegt werden. Auch nutzen wir die PHP -SDK die ihr hier downloaden könnt: http://github.com/facebook/php-sdk/

    1.) Zuerst müssen wir unser App bei Facebook registrieren/eintragen
    http://www.facebook.com/developers/ -> Neue Anwendung erstellen
    (Hier kam es öfters vor das es danach eine blank Seite gab. geht einfach zurück auf die obere Url und nun sollte eure App bereits aufgelistet werden)

    2.) Nachdem nun unsere Anwendung eingetragen ist gehen wir auf Anwendungsprofil bearbeiten -> Anwendungseinstellungen -> Leinwand (siehe Screen)

    Die 2 rot umrahmten Felder sind die wichtigsten. Das 1. Feld definiert die Url Facebook App - Einstiegstutorial: Benutzerdatenabfrage-fb_screen1.jpgüber die eure Anwendung über die Facebook Url erreichbar ist. Das 2. Feld gibt an wo euere Anwendung tatsächlich liegt (sprich auf eurem Server)

    Die restlichen Einstellungen können später dann erfolgen. Die wichtigsten sind erstmal erledigt. Kommen wir also nun zur App selbst.

    3.) Unsere App.
    Was eine Facebook App in wirklich keit Ausmacht ist nichts anderes als das unsere Anwendung auf die Benutzerdaten zugreift. Das ganze lässt sich über mehrere SDKs lösen, wir verwenden hier die PHP-SDK.

    Die Oben angegebene Datei (PHP-SDK) downloaden und entzippen. Neben einem Beispiel ist die wichtigste Datei die "facebook.php" - diese Datei lässt uns unsere App mit den Benutzeraccount von FB verbinden.

    Erstellen wir also eine .php Datei und binden die facebook.php Datei über include oder require_once ein gefolgt von unsere AppID und dem Geheimcode. Beides findet ihr in der Übersicht auf FB eurer App

    PHP-Code:
    require_once("facebook.php");

    $fbconfig['appid' ] = "xxx";
    $fbconfig['secret'] = "xxxxxxxxxxxxxxxxxx"
    Als nächstes stellen wir eine FB Instanz her und versuchen eine aktuelle Session auf zubauen

    PHP-Code:
    // Create our Application instance.
    $facebook = new Facebook(array(
      
    'appId'  => $fbconfig['appid' ],
      
    'secret' => $fbconfig['secret'],
      
    'cookie' => true,
    ));


    $session $facebook->getSession();
    $fbme null;  
    if (
    $session) {  
        try {  
            
    $fbme $facebook->api('/me');  
        } catch (
    FacebookApiException $e) {
            
    error_log($e);
        }  

    Wir versuchen mittels
    PHP-Code:
    $fbme $facebook->api('/me'); 
    auf die Userdaten des jeweiligen Benutzer zu zugreifen. Dafür muss er natürlich auf Facebook eingeloggt sein. Da wir aber sagen wir nutzen die App nur auf Facebook lass ich die Loginfunktion erstmal weg. "me" ist ein Aufruf der Facebook Graph Api (http://developers.facebook.com/docs/api) welches vom eingeloggten User die persönlichen Daten ausliest. Über diese Art kann man auch auf die Wall und andere Daten zugreifen. Als Ergebnis bekommen wir immer einen Array zurück.

    Mittels Try und Catch fangen wir einen fehlerhaften Login ab.

    Thearetisch sollen wir, wenn der Benutzer eingeloggt ist, nun eine Verbindung über die Facebook API aufgebaut haben. Also versuchen wir mal an seine Daten zu kommen.

    Über die Graph Api sollten wir, wie oben erwähnt, nun einen Array erhalten der die Userdaten beninhaltet. Doch im Moment würden wir einen leeren Array erhalten, da jeder User erst einwilligen muss "ja deine App darf meine Daten lesen"

    Also beginnen wir mit einer Überprüfung
    Wenn Array leer dann nach erlaubnis fragen, ansonsten Daten auslesen. So heißt es gesprochen, so sieht es programmiert dann aus

    PHP-Code:
    if ($fbme) { 
        echo
    "<pre>"print_r($fbme); echo"</pre>"
    }else{

         
    //Get Access zu personal data from user
         
    $loginUrl $facebook->getLoginUrl(array('canvas' => 1,
                                                  
    'fbconnect' => 0,
                                                  
    'req_perms' => 'publish_stream',
                                                  
    'next' => $canvas_base_url 'index.php',
                                                  
    'cancel_url' => $canvas_base_url ));
        
         echo (
    '<script type="text/javascript">top.location.href=\''.$loginUrl.'\';</script>');


    Der 1. Teil der If-Abfrage würde, wenn $fbme einen Wert hätte uns einen Array mit Userdaten wiedergeben. Ist dies nicht der Fall, fragen wir einfach nach Erlaubnis. Es wird eine Url generiert über die wir den User nach Zugriff auf seine öffentlichen Daten fragen.

    Wie das ganze funktioniert, muss man für den Anfang nicht verstehen, das wichtigste ist aber nach welchen Userdaten wir fragen:

    PHP-Code:
    'req_perms' => 'publish_stream'
    zB nach den öffentlichen Userdaten
    PHP-Code:
    'req_perms' => 'publish_stream, email'
    zB nach den öffentlichen Userdaten UND dessen eMail.

    Eine Liste nach allen "Data Permissions" findet man ebenfalls im Handbuch auf FB
    http://developers.facebook.com/docs/...on/permissions

    Im Endeffekt war es das schon. Unser Teil der App (was auch immer es sein mag) würde nun einfach in den 1. Teil der If-Abfrage kommen statt
    PHP-Code:
    echo"<pre>"print_r($fbme); echo"</pre>"
    Ich hoffe damit, dem einen oder anderen den Einstieg in die Facebook App Programmierung erleichtert zu haben. Auch bitte ich zu beachten das dieses Tutorial in meiner Mittagspause entstand Solltet ihr Fragen haben so steh ich gerne wenn möglich Antwort *g*
    Ich höre 10 Stimmen in meinem Kopf, 9 sagen ich sei nicht verrückt, die 10. summt die Melodie von Tetris
    Join us - Starter_Forum@Twitter or join me brokenlinkAT@Twitter
    Kein Support per PN
    brokenlink.at - coming soon

  2. #2
    fox
    fox ist offline
    Administrator Avatar von fox
    Registriert seit
    12.08.2008
    Ort
    In einer Wohnung
    Beiträge
    3.390

    Standard

    Vielen Dank!!!

    Im Erklären bist du ja einfach mal klasse!
    Du bist zufrieden mit unserer Hilfe? --> Dann setz einen Link zu uns auf deine Seite: Link uns!

  3. #3
    Neu hier
    Registriert seit
    24.09.2010
    Beiträge
    3

    Standard

    Ja, danke für diesen wunderbaren Post, wäre ansonsten auf dieses App nicht aufmerksam geworden.
    Ist exakt das was ich als Beginner gebrauchen kann. Mal schauen ob es auch wirklich das hält was es verspricht.

  4. #4
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.657
    Themenstarter

    Standard

    achtung: hierbei handelt es sich nur darum "zugriff" auf Userdaten zu bekommen! Ein App ist es also sozusagen nicht
    Ich höre 10 Stimmen in meinem Kopf, 9 sagen ich sei nicht verrückt, die 10. summt die Melodie von Tetris
    Join us - Starter_Forum@Twitter or join me brokenlinkAT@Twitter
    Kein Support per PN
    brokenlink.at - coming soon

  5. #5
    Neu hier
    Registriert seit
    30.11.2010
    Beiträge
    18

    Standard

    Eine wirklich sehr schön erklärt, aber ich habe da noch ein anderes Problem und vielleicht kann mir da jemand helfen.
    Ich bin in Facebook-Apps erstellen total neu und kenne mich recht wenig aus. Ich will die UserDaten (uid;name; mail ; ...) von mir und meinen Freunden auslesen und in einer Datenbank (SQL) speichern. Leider habe ich keine Ahnung, wie ich das machen könnte.
    Die Daten, die ich auslesen und speichern möchte, können unter https://graph.facebook.com/me?access_token= ... dar gestellt werden.

    Ich hoffe, es kann mir jemand bei dem Problem weiter helfen!

  6. #6
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.657
    Themenstarter

    Standard

    hi

    im endeffekt ist das tutorial oben genau das was du brauchst.
    Zuerst musst du schauen was brauchst du, sprich dir vom User die erlaubnis holen darauf zu zugreifen. eMail ist eine der Daten die expliziet abgefragt werden müssen.

    PHP-Code:
    req_perms' => 'publish_streamemail 
    sollte für dich reichen. wobei bei dir normal "email" alleine reichen sollte da publish_stream ja nur erlaub auf die Wall des Users was zu posten.

    um jetzt auf deine und auf die daten deines freundes zugriff zu haben
    PHP-Code:
    $fbme $facebook->api('/me'); 
    ruft immer die Daten des Users auf der die App aufruft. Möchtest DU aber die Daten deines Freundes abrufen änderde das /me einfach in die ID deines Freundes zB /123456. Schon kannst du mittels GRAPH auf dessen Daten zugreifen und hast sie alle im $fbme als schönen Array gespeichert.

    ist jetzt ungetestet aber sollte normal so funktionieren. Falls nicht klappt bitte melden dann muss ich es mir mal genauer testen.
    Ich höre 10 Stimmen in meinem Kopf, 9 sagen ich sei nicht verrückt, die 10. summt die Melodie von Tetris
    Join us - Starter_Forum@Twitter or join me brokenlinkAT@Twitter
    Kein Support per PN
    brokenlink.at - coming soon

  7. #7
    Neu hier
    Registriert seit
    01.12.2010
    Beiträge
    1

    Standard

    Hallo,

    weiß jmd wie ich das /me in jmd anderen änder?
    Das mit der Userid habe ich verstanden, aber wie sage ich :"Die schreibe die ID von meinem App user"?
    Um sie dann z.B. manuell statt von /me einzugeben.

    LG und Danke

    bine_a.

  8. #8
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.657
    Themenstarter

    Standard

    also das /me = immer dein aktueller User
    sprich rufst du die App auf würden deine Infos angezeigt werden, rufe ich die App meine

    wenn jedoch DU auf Infos von einem anderen User zugreifen willst reicht es statt /me => /userID
    d.h würdest du das App aufrufen würdest du die Userinfos angezeigt bekommen, würde ich die App aufrufen würde ich dessen Userinfos angezeigt bekommen

    bsp:
    PHP-Code:
    $fbme $facebook->api('/1234567');  

    if (
    $fbme) { 
        echo
    "<pre>"print_r($fbme); echo"</pre>"
    }else{ 
    würde mir alle "öffentlichen" Infos des Users 1234567 anzeigen.
    Aber ACHTUNG: die Infos die Angezeigt werden sind 1. davon abhängig was der User freigibt für alle (außer er akzeptiert deine App) und 2. ob es ein Freund/in von dir ist oder nicht.

    möchtest du eine Liste aller userIDs die deine App nutzen, musst du diese vorher irgendwo speichern, zB in ner Datenbank oder auch in einem Textfile. Was dir lieber ist.
    Ich höre 10 Stimmen in meinem Kopf, 9 sagen ich sei nicht verrückt, die 10. summt die Melodie von Tetris
    Join us - Starter_Forum@Twitter or join me brokenlinkAT@Twitter
    Kein Support per PN
    brokenlink.at - coming soon

  9. #9
    Neu hier
    Registriert seit
    30.11.2010
    Beiträge
    18

    Standard

    Hallo,
    ich habe da ein mehr oder weniger großes Problem:
    ich möchte bei meiner Anwendung durch einen "invite" Link , die Freunde des jeweiligen Accounts auflisten. Diese Freunde sollen dann augewählt werden können und benachrichtig werden können. Wenn dann einer meiner Freunde auf diese Anmeldung reagiert, erscheintein authentification- iFrame, wodurch ich an die Daten des jeweiligen Freundes komme.

    im Moment funktioniert alles recht gut. D.h. ich kann mich anmelden und sehe dann auch meine Daten. Aber wenn ich auf den "invite" Link klicke, bekomme ich einen "Zugriff verweigert Fehler (Error 403).
    ich habe das so gemacht:

    PHP-Code:
    <fb:serverFbml style="width: 500px;">
        <script type="text/fbml">
          <fb:fbml>
              <fb:request-form
                        action="<?=$fbconfig['appBaseUrl']?>/invite. php
    "
                        target="_top"
                        method="POST"
                        invite="true"
                        type="iframe_apps"
                        content="content" 
                        <fb:req-choice url='<?=$fbconfig['appBaseUrl']?>' label='Accept' />
                    ">

                        <fb:multi-friend-selector
                        showborder="false"
                        actiontext="Invite friends to test this app">
            </fb:request-form>
          </fb:fbml>
        </script>
      </fb:serverFbml>
    die appBaseUrl is meine facebook-interne URL, auf der die Anwendung liegt.
    Wenn ich auf den Link klicke, werde ich an meinen "localhost" (http://localhost/iframe/iframeapp/%3C?=$fbconfig['appBaseUrl']?>/index. php ?page=invite. php ) weiter geleitet.
    Irgendwo muss da ein Fehler sein, aber ich finde nichts!
    Vielleicht kann mir jemand helfen!


    Danke schon einmal, Udo

  10. #10
    Administrator Avatar von Chronos
    Registriert seit
    08.01.2009
    Ort
    127.0.0.1
    Beiträge
    1.657
    Themenstarter

    Standard

    hi

    wie schon erwähnt, es gibt öfters probleme wenn man seine App auf einem localen Server programmiert.
    Auf den ersten Blick fällt mir auch kein Fehler auf bei deiner App bzw bei dem FBml-Code

    nur dieses
    PHP-Code:
    http://localhost/iframe/iframeapp/%3C?=$fbconfig['appBaseUrl']?>/index. php ?page=invite. php  
    kommt mir bissl spanisch vor.

    1. fehlt ja ein <?php oder hat er beim kopieren dies in %3C umgewandelt?
    2. du nutzt $appBaseUrl hier und in dem Friendsinvite Script. $appBaseUrl wird aber doch mit einem "http://" beginnen d.h dein Link würde http://localhost/iframe/iframeapp/ht...age=invite.php so in etwa dann aussehen.
    Ich höre 10 Stimmen in meinem Kopf, 9 sagen ich sei nicht verrückt, die 10. summt die Melodie von Tetris
    Join us - Starter_Forum@Twitter or join me brokenlinkAT@Twitter
    Kein Support per PN
    brokenlink.at - coming soon

Seite 1 von 37 12311 ... LetzteLetzte

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •