19
Nov
2010
admin

Facebook Anwendungen mit Testusern testen

Ein großes Problem beim Erstellen von Facebook Anwendungen stellte meist das Testen dar. Einfach aus dem Grunde, weil man sich Fake Accounts anlegen musste, um z.B. das schreiben im Newsfeed zu testen. Das ist nun endlich vorbei. Über die Graph API ist es nun möglich, Testuser zu erstellen. Diese Testuser können mit der Anwendung interagieren und somit für Funktionstests eingesetzt werden. Außerdem ist es möglich Freundschaften zwischen den Testusern zu simulieren. Das Limit von 5o Testusern pro Anwendung, sollte wohl, in fast allen Fällen, ausreichend sein.

Einen Testuser erstellen

POST /app_id/accounts/test-users?installed=true&permissions=read_stream

Die Parameter:

  • installed - Boolean (true oder false). Gibt an, ob der Testuser die Anwendung zum Zeitpunkt der erstellung installiert hat oder nicht.
  • permissions - Komma separierte Liste von erweiterten Rechten.

Die Antwort auf diesen API Aufruf:

{ 
  "id": "1231....",  
   "access_token":"1223134..." , 
   "login_url":"https://www.facebook.com/platform/test_account.." 
}

Die Antwort im Detail:

  • id - Die User ID des Testusers
  • access_token - der Access Token für API Calls den Testuser betreffend.
  • login_url - Über diese URL kann man sich als der Testuser einloggen. Dieser Link verfällt nach dem ersten Anmelden oder nach 10 Minuten, je nachdem, was als erstes eintritt.

Liste der Testuser abrufen

GET  /app_id/accounts/test-users

Die Antwort könnte so aussehen:

{
 "data" [
   { 
    "id": "1231....",  
    "access_token":"1223134..." , 
    "login_url":"https://www.facebook.com/platform/test_account.." 
   }
   { 
    "id": "1231....",  
    "access_token":"1223134..." , 
    "login_url":"https://www.facebook.com/platform/test_account.." 
   }
 ]
}

Freundschaften zwischen den Testusern

POST /test_user_id_1/friends/test_user_id_2

POST /test_user_id_2/friends/test_user_id_1

Der erste Aufruf erstellt eine Freundschaftsanfrage von User1 an User2. Der zweite Aufruf bestätigt die Anfrage. Es muss immer ein Access Token mitgegeben werden und zwar im ersten Fall den Access Token von User1 und im zweiten Fall der Token von User2. Die Antwort ist true bei Erfolg, ansonsten false.

Testuser löschen

DELETE  /test_user_id

Beispiel mit PHP
Zuerst werden wir zwei Testuser anlegen und uns anschließend anzeigen lassen:

require 'library/facebook.php';

define('APP_ID',      '162308607140076');
define('APP_SECRET' , 'cf8f943703472bbcdc1d1f8ad62190eb');

$facebook = new Facebook(array(
  'appId'  => APP_ID, // Anwendungs ID
  'secret' => APP_SECRET, // Anwendungs-Geheimcode
  'cookie' => true, // enable optional cookie support
));

try {
  // Einen Testuser erstellen.
  $testuser1 = $facebook->api(APP_ID . "/accounts/test-users?installed=true&permissions=read_stream", 'post');

  // Einen weiteren Testuser erstellen.
  $testuser2 = $facebook->api(APP_ID . "/accounts/test-users?installed=true&permissions=read_stream", 'post');

  // Alle Testuser dieser Anwendung abrufen.
  $allTestusers = $facebook->api(APP_ID . "/accounts/test-users", 'get');

  // Ausgabe.
  print '<pre>' . print_r($allTestusers, true) . '</pre>';

} catch (FacebookApiException $e) {
  print $e;
}

Die Ausgabe:

Jetzt, da wir zwei Testuser haben, lassen wir diese beiden Freundschaft schließen:

require 'library/facebook.php';

define('APP_ID',      '162308607140076');
define('APP_SECRET' , 'cf8f943703472bbcdc1d1f8ad62190eb');

$facebook = new Facebook(array(
  'appId'  => APP_ID, // Anwendungs ID
  'secret' => APP_SECRET, // Anwendungs-Geheimcode
  'cookie' => true, // enable optional cookie support
));

try {

  // Testuser 1 stellt eine Freundschaftsanfrage an Testuser 2.
  $facebook->api("/100001884883543/friends/100001879514295",
                  'post',
                  array(
                    'access_token' => '162308607140076|2.9tyCej_hDk7YORb_uhFmaw__.3600.1290204000-100001884883543|TBDOgjHYeM4XB-gyOzlD1FM-rAs'
                  )
                );

  // Testuser 2 akzeptiert die Anfrage.
  $facebook->api("/100001879514295/friends/100001884883543",
                  'post',
                  array(
                    'access_token' => '162308607140076|2.MC_IRMqblt_mWCGnov4W1g__.3600.1290204000-100001879514295|-oQz2e2M8FGV07ZY6Z5xrjPlA-I'
                  )
                );

} catch (FacebookApiException $e) {
  print $e;
}

Rufen wir nun das Profil eines unserer Testuser auf, sehen wir, dass die Freundschaftsanfrage erfolgreich bestätigt wurde:

Nachdem wir nun unsere Anwendung mit Hilfe der Testuser getestet haben, können wir die Testuser wieder löschen:

require 'library/facebook.php';

define('APP_ID',      '162308607140076');
define('APP_SECRET' , 'cf8f943703472bbcdc1d1f8ad62190eb');

$facebook = new Facebook(array(
  'appId'  => APP_ID, // Anwendungs ID
  'secret' => APP_SECRET, // Anwendungs-Geheimcode
  'cookie' => true, // enable optional cookie support
));

try {

  // Testuser 1 löschen.
  $facebook->api("/100001884883543", 'delete');

  // Testuser 2 löschen.
  $facebook->api("/100001879514295", 'delete');

  // Alle Testuser dieser Anwendung abrufen.
  $allTestusers = $facebook->api(APP_ID . "/accounts/test-users", 'get');

  // Ausgabe leer, da wir unsere Testuser gelöscht haben.
  print '<pre>' . print_r($allTestusers, true) . '</pre>';

} catch (FacebookApiException $e) {
  print $e;
}

Die Ausgabe ist, wie erwartet, ein leeres Array:

Hinweis
Du kannst alle Codebeispiele von AboutTheWeb über ein SVN Repository auschecken. Dieses Beispiel findest du unter folgender Adresse:
http://svn.abouttheweb.de/atwtutorials/trunk/testusers/

Alternativ kannst Du alle Codebeispiele über das AboutTheWeb github Repository auschecken.

Trackback-URL für diesen Beitrag

http://www.abouttheweb.de/trackback/601

Ähnliche Artikel

X
Laden