Suche in Twitter mit PHP Bordmitteln – Ein kurzes Tutorial

Wegen des Tutorials zu Twitter mit OAuth und PHP hatte ich eine Anfrage, wie eine Suche nach Hashtags zu realisieren sei – das ist ganz einfach, da keine Authentifizierung mit OAuth erforderlich ist. Hier ein kleines selbsterklärendes Beispiel, das Twitter nach dem Hashtag #design durchsucht und die aktuellsten 15 Tweets zurückliefert und darstellt (Details zu den Suchoptionen siehe https://dev.twitter.com/docs/using-search).

<?php

// Suche in Twitter mit PHP Bordmitteln - Ein kurzes Tutorial
// www.Frank-IT-Beratung.com/blog/

// Suche nach Hashtag "design"
$hashtag="design";
$APIurl = "http://search.twitter.com/search.json";

// weitere Paramter für die Suche siehe
// https://dev.twitter.com/docs/using-search
$param="?q=%23".$hashtag;    
$APIurl.=$param;

// GET vorbereiten
$opts = array('http' =>
            array(
                'method'  => 'GET'
            )
        );

// mit file_get_contents versenden
$result = file_get_contents($APIurl, false, stream_context_create($opts));
$json=json_decode($result);
$ergebnisse="";
for ($i = 0; $i < count($json->results); $i++) {
    $ergebnisse.="<img src='".$json->results[$i]->profile_image_url;
    $ergebnisse.="' align='left' width='48' height='48' hspace='5' />";    
    $ergebnisse.=$json->results[$i]->from_user;
    $ergebnisse.=" (ID: " .$json->results[$i]->from_user_id .")<br/>";    
    $ergebnisse.="<strong style='font-size:20pt;'>";
    $ergebnisse.=utf8_decode($json->results[$i]->text)."</strong>";
    $ergebnisse.="<br/>";    
    $ergebnisse.="Datum: ". $json->results[$i]->created_at;
    $ergebnisse.=" (Tweet-ID: " . $json->results[$i]->id_str.")";    
    $ergebnisse.="<hr/>";
}
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Tutorial: Suche in Twitter</title>
</head>
<body>
<h1>Suche nach #<?php echo $hashtag ?></h1>
Anzahl Treffer: <?php echo count($json->results); ?>
am <?php echo date("d.m.Y H:m:i"); ?> Uhr
<hr/>
<?php echo $ergebnisse; ?>
</body>
</html>

P.S.

Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne  – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de

Dieser Beitrag wurde unter API, PHP, Programmierung, Social Networks, Twitter abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

13 Kommentare zu Suche in Twitter mit PHP Bordmitteln – Ein kurzes Tutorial

  1. benny sagt:

    Hi Simon,

    also mit Twitter-News und so bin ich jetzt fertig. Meine nächste Aufgabe ist, dass ich eine bestimmte Stelle von einer html-Seite ausgeben soll. Nur ich schaffe es nicht. Es gibt zwar unzählige Beispiele, aber ich schaffs nicht. Mit curl kann ich die Seite aufrufen und so und die Login-Daten habe ich im Script mitbeigelegt, funktioniert wunderbar. Nur jetzt wollte ich nur ein Bereich von der Seite anzeigen lassen. Wie geht das!!!!!????

    • Hallo, leider verstehe ich nicht ganz, was Du meinst – btw. hier in meinem Blog helfe ich natürlich allen, die Fragen zu meinen Posts haben. Falls Deine Frage über dies hinaus geht schreib mir doch einfach eine Mail – vielleicht kann ich helfen oder einen Tipp geben.

  2. Schön, dass es nun geklappt hat! Zur zweiten Frage: Leider nein, da habe ich keine Codebeispiel „auf Lager“ – aber da gibt es sicherlich tausende Beispiele wenn man nach „JavaScript“ und „Ticker“ googelt!

  3. benny sagt:

    Hi Simon,

    hast du eine Idee wie ich das in eine Art News-Ticker umprogrammieren könnte? Also mit html marquee direction gehts ja, aber dann geht der ganze block von rechts nach links bspw.

    Hilfe seitens von dir wäre sehr nett!!

  4. benny sagt:

    Endlich, es lag am Proxy… Danke für deine Hilfe!!!!!!!!!! YEAH!!!!!!!!!!!

  5. 30719 steht für E_ALL, wahrscheinlich hast Du davor ein „echo“ geschrieben – das würde ich weglassen. Probiere es mal so – vielleicht kommt dann eine bessere Fehlermeldung:

    <?php
    error_reporting(E_ALL);
    // Suche in Twitter mit PHP Bordmitteln – Ein kurzes Tutorial

  6. benny sagt:

    Glaube nicht, dass es an Twitter liegt, weil zu Hause funktioniert es ja. Ich frage mal nach den Netzwerkgegebenheiten hier bei uns.

    Er lädt und lädt und dann kommt:
    30719
    Suche nach #design

    Anzahl Treffer: 0am 02.12.2011 10:12:34 Uhr

  7. benny sagt:

    Ich habe jetzt dieses echo error_reporting(E_ALL) gemacht dann kommt: 30719.
    Wahrscheinlich die Gesamtanzahl an Tweets mit #design. Das Komische ist bei mir zu Hause funktioniert es, aber woanders nicht!!!

    Das allow_url_fopen ist auf On. Und keine Kommentarzeichen sind davor. Ich verstehe das nicht!!!!!!!!!!!!!!!

    Danke erstmal, richtig nett von dir!!

    Könnte die Firewall Probleme machen?

    • Gerne 🙂

      Ja, klar, der Firewall kann dies blockieren, das ist schon denkbar. Ich würde ein kleines anderes Script schreiben, das file_get_contents auf irgendeiner anderen Website ausprobiert – denn manchmal ist auch Twitter überlastet, das könnte zu zusätzlicher Verwirrung führen.

      P.S.

      Versehentlich habe ich einen Deiner Kommentare gelöscht aber nun wieder „zusammenkopiert“, jetzt sind alle wieder da.

  8. benny sagt:

    Hi, nein leider kommt keine Fehler Meldung, die Werte werden alle nicht befüllt. Ich gucke mal in die php.ini.

    Bei mir gibt es noch nicht mal dieses file_get_contents Eintrag. Wie soll der aussehen? danke für deine Bemühungen!

    • Folgende Einstellung muss in der php.ini stehen, damit file_get_contents funktioniert:

      allow_url_fopen = true

      Um wirklich alle Fehlermeldung zu sehen sollte man in der ersten Zeile des PHP-Scripts Folgendes schreiben:

      error_reporting(E_ALL);

      Ich hoffe, das hilft weiter?

  9. benny sagt:

    ich habe das kopiert und ausgeführt aber bei mir kommen keine ergebnisse…

    warum?

    • Kommt keine Fehlermeldung? Dann kan ich nur schwer helfen. Nur ein Tipp: Bei manchen Providern (z. B. bei 1&1) ist file_get_contents in der php.ini deaktiviert, man muss die manuell aktivieren.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.