5 Wege um Twitter in eine Seite zu integrieren

0 | 5821 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "5 Wege um Twitter in eine Seite zu integrieren" mit Ihrem Wissen!

Anzeige Hier werben

Wie funktioniert das Skript?

Das Skript basiert auf eine API-Library von Justin Poliey, welche in Klassen aufgebaut ist. Dies funktioniert außerdem dank der Funktion Curl von php, mit dieser man Seiteninhalte bzw. Dateien einlesen kann.
Dadurch, dass das Skript Curl benötigt und dies keine Standardfunktion ist, funktioniert das Skript nicht auf jedem Server, sondern nur auf denen, auf welchen Curl installiert wurde.

Was kann man mit dieser Library alles machen?

Mit dieser Library kann man so gut wie alles machen, was man auch in Twitter direkt machen könnte. Sei es die Follower eines Users oder die News auslesen. Man kann sogar Nachrichten verschicken. Hier mal eine Liste von Funktionen, welche in dieser Library vorhanden sind. Sollten diese nicht die gewünschte Funktion beinhalten, so kann man mit bisschen PHP-Kenntnissen selber eine erstellen.
Ein Tipp meinerseits wäre die API Wiki von Twitter zu besuchen.

Aus was besteht das Skript

  • Aus einer Library, welche die kompletten Funktionen beinhaltet.
    Diese kann man von meinem Archiv gleich mit herunterladen, oder man lädt sie sich von der Quelle herunter.
    Bei dieser ist aber zu beachten, dass sie einen kleinen Fehler auf Zeile 510 beinhaltet.
    Dadurch kann man nur eine Get-Information weitergeben und so nicht mehr als nur eine Option anwenden.
    Durch die Zeilenänderung müsste sich der Fehler beheben.
    Der dort vorhandene Code sollte umgeändert werden in folgt:
suche  
PHP
1
$api_url .= '?' . http_build_query($options);
ersetze durch  
PHP
1
$api_url .= '?' . http_build_query($options, '', '&');

Desweiteren besteht das Paket aus einer config.php-Datei, welche den Usernamen, das Passwort und den gewünschten Format in Variablen einzutragen hat.
Dort sollte man logischerweise dann seinen Benutzernamen, das Passwort und das gewünschtes Format angeben.
Beim Format ist aber zu beachten, dass nicht alle Funktionen alle 4 Formate namens xml, json, rss und atom unterstützen.
Das Format json wird aber hingegen von allen Funktionen unterstützt und sollte auch am einfachsten anzuwenden sein.

Die Datei config.php

Die config.php schaut wie folgt aus:

config.php  
PHP
1
2
3
4
5
6
7
8
<?php
// Benutzername
$twitter_username = "username";
// Passwort
$twitter_password = "passwort";
// Format
$twitter_format = "json";
?>

Nun kommen wir mal zu den unterschiedlichen Skripten.
Am besten Liste ich sie hintereinander auf und erläutere diese.
Als erstes die twitter_followers.php

Die Datei twitter_followers

twitter_followers.php  
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
// Includieren der Bibliothek und der Config
require_once("config.php");
require_once("library/twitterlib.php");

// Iniziierung der Zugangsdaten in die Klasse
$twitter = new Twitter($twitter_username, $twitter_password);

// Einstellung der Optionen durch Übergabe der zugeschickten Infos vom Formular und der Config
// Alle Optionen lesbar unter:
// http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0followers
// Id oder Name des von zu suchenden Follower
$options['id'] = "BillGates";

// Anwendung der Funktion
$result = $twitter->getFollowers($options, $twitter_format);

// Variable mit Json-Inhalt wird durch Funktion dekodiert
$followers = json_decode($result);

// Ausgabe
?>
<ul>
    <?php
    foreach ($followers as $user)
    {
        ?><li><?php echo htmlspecialchars($user->screen_name); ?></li><?php
    }
    ?>
</ul>

Wie ihr sehen könnt includiert das Skript als erstes die Bibliothek und die Config. Den Pfad, Dateinamen ect. kann man natürlich alles noch ändern. Als nächstes übergibt es die Zugangsdaten an die Klasse Twitter, welche sich in der Library befindet. Daraufhin werden an das Array $options Informationen zugeführt.
Würdet ihr gerne alle Optionen erhalten wollen, so könnt ihr die weiter über der $options als Kommentar markierte Seite besuchen und alle Informationen dort durchstöbern.

Hier als Beispiel hat $options['id'] nun den Inhalt BillGates.

Das id steht hierbei für das Get-Tag, welches übergeben wird. Mit dem Inhalt BillGates verlange ich nun von der daraufhin folgenden Funktion, dass ich die letzten 100 Follower (wurde von Twitter leider auf 100 beschränkt) vom User BillGates bekomme. Kommen wir mal zur Funktion:

getFollowers();-Funktion  
PHP
1
$result = $twitter->getFollowers($options, $twitter_format);

Bei $options gebe ich die Optionen an die Funktion weiter, mit $twitter_format, welche sich in der config.php befindet, gebe ich den Format ein. Dieser steht mom auf json. Die Funktion ist hierbei getFollowers() und befindet sich in der Klasse, welche in der Variablen $twitter gesetzt wurde.
Das Ergebnis wird daraufhin in die Variable $result übergeben, welche durch die Funktion json_decode dekodiert wird. Wurde als Format json nicht verwendet, so ist die Funktion json_decode unnötig.
Nun befindet sich das Ergebnis in der Variablen $followers, welche durch eine foreach-schleife ausgegeben wird.
Wie man nun das gewünschte Ergebnis ausgibt, ist recht einfach. Der Inhalt der Variablen hat eine bestimmte Struktur, welche zum Beispiel wie folgt ausschaut.
1. Follower->screen_name (Fugger)
->name (Hans Fugger)
->location (Augsburg, Deutschland)
->description (Ich bin Hans Fugger aus Augsburg...)
->...

durch

 
PHP
1
echo $user->screen_name;

würde man dann den Inhalt von screen_name ausgeben.
Wollt ihr nun weitere Informationen von der Variablen erhalten, so wendet ihr am besten die Funktion print_r($followers); an, dadurch seht ihr dann bei Ausgabe des Skriptes den kompletten Inhalt von der Variablen.
Würdet ihr lieber die xml-Struktur sehen wollen, so könnt ihr ja gern das Format kurz auf xml umstellen, wenn es vorausgesetzt natürlich in xml ausführbar ist und daraufhin euch den Quelltext anschauen.
Dieses Skript ist ein recht einfaches Beispiel, welches zum größten Teil auf alle diese Dateien im gleichen Schema zutrifft.
Das bisschen HTML im Skript muss ich jetzt wohl weniger erklären.

Die Datei twitter_search.php

Die einzige Datei, welche was neues beinhaltet, ist die twitter_search.php
In dieser Datei wurde nämlich die Klasse um eine weitere von mir erstellte Funktion expandiert.
Hier das Skript:

twitter_search.php  
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
//Includieren der Bibliothek und der Config
require_once("config.php");
require_once("libary/twitterlib.php");

//Hinzufügung einer weiteren fehlenden Funktion zu Klasse
class ExtendedTwitter extends Twitter
{
    /**
    * Diese Funktion ermöglicht das Suchen auf Twitter
    * @param array $options Options to pass to the method
    * @param string $format Return format
    * @return string
    */
    function getSearch($options = array(), $format = 'xml') {
        return $this->apiCall('search', 'get', $format, $options);
    }
}

//Iniziierung der Zugangsdaten in die Klasse
$twitter = new ExtendedTwitter($twitter_username, $twitter_password);


// Einstellung der Optionen durch Übergabe der zugeschickten Infos vom Formular und der Config
// Alle Optionen lesbar unter:
// http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search
// Id oder Name des von zu suchenden Follower
// zu suchender Text
$options['q'] = "#php";
// Wieviele angezeigt werden sollen
$options['rpp'] = 10;
// Welche Seite angezeigt werden soll
//$options['page'] = 1;
// Datum seit
//$options['since'] = 2010.03.03

//Anwendung der Funktion
$result = $twitter->getSearch($options, $twitter_format);

//Variable mit Json-Inhalt wird durch Funktion entschlüsselt
$search = json_decode($result);
?>
<dl>
<?php
//Ausgabe von der Array
foreach ($search->results as $results)
{
    ?>
        <dt><?php echo $results->from_user ?> (<?php echo $results->created_at ?>)</dt>
        <dd><?php echo $results->text ?></dd>
    <?php
}
?>
</dl>

Wie beim Skript zuvor wird als erstes die config.php und libary/twitterlib.php includiert. Nun kommt etwas neues.
Ich erweitere die Klasse Twitter um die Klasse ExtendedTwitter. Diese beinhaltet eine neue Funktion für die Library, wodurch es mir ermöglicht wird, auf Twitter Beiträge ect. zu durchsuchen.
Am besten erkläre ich mal die Funktion. Diese schaut recht gleich aus, wie die anderen Funktionen. Ihr werden die $options übergeben und natürlich noch das Format . Diese führt daraufhin die Funktion apiCall(); aus, welche alle Einzelstücke zusammenbastelt, wodurch dann eine url entsteht. Mit dieser Url kann dann Curl arbeiten und den Inhalt dieser Url in eine Variable übergeben, welcher durch return; von der Funktion dann zurückgeworfen wird.
Ihr seht mom aber nur die von mir erstellte Funktion getSearch(). Die apiCall()-Funktion und der Rest ist in der Library zu finden.
Nach dieser neu erstellten Funktion ist nun alles eigentlich wieder gleich, wie zuvor. Die Zugangsdaten werden in die Klasse iniziiert, Optionen werden eingestellt und dann die neue Funktion angewendet.
Mit $result fange ich die Zurückgabe der Funktion ab. Diese dekodiere ich wieder und gib die mit einer Foreach-Schleife aus.
Das Einzige, was hier zu beachten ist, dass bei Foreach die Array-Expression $search noch dahinter ->results beinhaltet. Dies hat den Sinn, weil der Inhalt in einem sozusagenen Unterordner gespeichert ist, zu welchem man wechseln muss. Rest bleibt aber dann gleich.

Alle 5 Beispiele mit der config und der library zum Download

Die weiteren 3 Funktionen, welche ich noch als Beispiel erstellt habe, wären die Funktionen, um Timeline eines Users, die Timeline von den Freunden, und die Nachrichten von sich selber auszugeben.

Hier mein erstelltes Archiv, welches euch die config, die verbesserte Library und die 5 Beispiele zum Download bereitstellt.

Downloads

Für diesen Artikel stehen zusätzliche Dateien zum Herunterladen bereit. Der Download ist nur für registrierte Benutzer möglich. Die kostenlose Registrierung dauert nur wenige Sekunden.


Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 3 Personen an der Seite "5 Wege um Twitter in eine Seite zu integrieren" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "5 Wege um Twitter in eine Seite zu integrieren" hier bearbeiten.

Mitarbeiter