Der Blog für Shopbetreiber und Entwickler

  • Home
  • Home

Integration Twitteranzeige im Randshop

18. November 2009 by Philipp Wunderlich 4 Comments

Nachdem ich vor kurzem in diesem Blog mich zu dem Thema Twitter & Co geäußert habe, denke ich, dass klar ist, dass wir uns hier intern auch schon damit beschäftigen, wie man diese Dinge in Zukunft auch in den Randshop integrieren kann. Es genießt zwar im Moment nicht die höchste Priorität – ein Shop ist dann doch noch mehr als ein Twitter Client – aber man probiert ja immer mal wieder ein bisschen was aus.

Ich war auf jeden Fall sehr positiv überrascht, wie einfach zumindest das Auslesen der Daten von Twitter ist. Auch die Dokumentation der Twitter API ist wirklich gut geschrieben.

Hier nun also die Anforderung: Im Randshop unter www.tt-traum.de soll auf der Startseite in einer Box die letzten Tweets einer Person oder einer Suche angezeigt werden. Da TT Traum keinen eigenen Twitter Account hat, würde ich in diesem konkreten Fall die Meldung von modellbahn hier anzeigen. Dies hat sich nach einer Recherche als ein recht aktiver Account gezeigt, hinter dem das größere unabhängige Online-Magazin Modellbahntechnik aktuell steht.

Da wir im ersten Schritt eine schlichte Suche einbinden wollen reicht die API Dokumentation zu der einfachen Suchmethode.

Um wenig Overhead im Shop zu haben, lege ich einfach eine Funktion GetTwitterSearchResult() in die neue Datei /includes/functions.twitter.inc.php ab. Die Funktion liefert dann ein Objekt mit den entsprechenden Daten zurück, die dann im Template angezeigt werden können – dazu dann später. Was genau die Funktion bei Twitter abfrägt, kann über die Parameter gesteuert werden. Hier die Beschreibung:

User Frägt die Daten eines Benutzers ab. Optional, Standardwert ist hier „randshop“
Searchstring Suchbegriff der abgefragt werden soll. Optional.
TweedNumber Anzahl der Tweeds, die abgerufen werden sollen. Optional, Standardwert ist hier 5

Im Kern der Funktion wird die Twitter API über cURL einfach aufgerufen und liefert in unserem Fall ein JSON Zeichenkette zurück, das wir dann auswerten können.

Dann schauen wir, welche der beiden Parameter übergeben wurden und setzen in Abhängigkeit davon einen Suchstring für Twitter zusammen und gleichzeitig eine URL, auf die wir dann die Einträge verlinken. Bei einer Abfrage der Tweeds einer Person, muss ein „from:“ vor dem Namen stehen. Ein Suchbegriff kann einfach so angegeben werden. Kombiniert werden kann das ganze mit den üblichen Operatoren.


// Suchstring in Abhaengigkeit der
// Paremeteter fuer Twitter zusammensetzen
if (($User !== '') && ($SearchString !== '')) {
	$TwitterSearchString = 'from:' . $User . '+AND+';
	$TwitterSearchString .= $SearchString;
	$TwitterMoreURL = "http://search.twitter.com/search?";
	$TwitterMoreURL .= "q=" . $SearchString . "+from:" . $User;
} elseif ($User !== '') {
	$TwitterSearchString = 'from:' . $User;
	$TwitterMoreURL = "http://twitter.com/";
	$TwitterMoreURL .= $User;
} elseif ($SearchString !== '') {
	$TwitterSearchString = $SearchString;
	$TwitterMoreURL = "http://twitter.com/search?q=";
	$TwitterMoreURL .= $SearchString;
}

In der eigentlichen Abfrage an die Twitter API wird zuerst die URL zusammengesetzt, anschließend wird dann per cURL die API aufgerufen und der Rückgabewert der als JSON Zeichenkette vorliegt als Objekt abgelegt.


// Twitter API abfragen
$TwitterAPIURL = "http://search.twitter.com/search.json?";
$TwitterAPIURL .= "q=" . urlencode($TwitterSearchString);
$TwitterAPIURL .= "&rpp=" . $TweedNumber;

$CurlHandler = curl_init();

curl_setopt($CurlHandler, CURLOPT_URL, $TwitterAPIURL);
curl_setopt($CurlHandler, CURLOPT_HEADER, 0);
curl_setopt($CurlHandler, CURLOPT_RETURNTRANSFER, true);	

$TwitterObject = json_decode(curl_exec($CurlHandler));
$TwitterObject->more_url = $TwitterMoreURL;

curl_close($CurlHandler);

Das Objekt, das wir hier bekommen, geben wir 1:1 an den Aufrufer zurück. Man könnte hier natürlich noch die Daten aufbereiten oder andere spannende Dinge damit machen (z.B. Cachen, Links austauschen um eine Statistik anzulegen, Konkurrenten bei einer Suche nicht anzeigen, …). Aber das sind dann Features die in den Randshop einfließen werden. Ebenso wie eine Verwaltung des Ganzen über das Admintool. Dies hier soll ja nur ein kleines kurzes Beispiel sein.

Das Objekt hat folgenden Aufbaue:


object(stdClass)#2 (9) {
  ["results"]=>
  array(5) {
    [0]=>
    object(stdClass)#3 (10) {
      ["profile_image_url"]=>
      string(89) "http://a1.twimg.com/profile_images/407565976/modellbahntechnik-aktuell-de-logo_normal.jpg"
      ["created_at"]=>
      string(31) "Wed, 18 Nov 2009 10:06:40 +0000"
      ["from_user"]=>
      string(10) "modellbahn"
      ["to_user_id"]=>
      NULL
      ["text"]=>
      string(123) "RT @Hannover_News ... 10:00 bis .. http://bit.ly/25SWu8"
      ["id"]=>
      float(5822782674)
      ["from_user_id"]=>
      int(9671356)
      ["geo"]=>
      NULL
      ["iso_language_code"]=>
      string(2) "de"
      ["source"]=>
      string(59) "<a href="http://twitter.com/">web</a>"
    }
…
  }
  ["max_id"]=>
  float(5822782674)
  ["since_id"]=>
  int(0)
  ["refresh_url"]=>
  string(40) "?since_id=5822782674&q=from%3Amodellbahn"
  ["next_page"]=>
  string(51) "?page=2&max_id=5822782674&rpp=5&q=from%3Amodellbahn"
  ["results_per_page"]=>
  int(5)
  ["page"]=>
  int(1)
  ["completed_in"]=>
  float(0.054926)
  ["query"]=>
  string(17) "from%3Amodellbahn"
}

In dem Array results sind die gewünschten Tweeds. Hier nur exemplarisch der erste Eintrag. Die Einträge sind denk ich selbsterklärend. Wir werden lediglich den Benutzer (from_user und profile_image_url) und die Einträge (text) anzeigen.

Neben den eigentlich Einträgen, liefert uns Twitter noch ein paar weitere Daten. Spannend ist hier die refresh_url, über die man zyklisch per AJAX prüfen könnte, ob es schon neue Tweeds gibt und in einem solchen Fall die Liste neu aufbauen könnte.

Wir integrieren den Aufruf und den Include der Funktion in die Datei includes/header.inc.php:


include_once(DATEIPFAD . 'includes/functions.twitter.inc.php');
$tpl_twitter_object = GetTwitterSearchResult('modellbahn');

Und lesen die Daten im Template /templates/standard/index.tpl aus (ab der Version 1.4.x /templates/standard/website/index.tpl):


<!-- Twitter -->
<? if (sizeof($tpl_twitter_object->results)): ?>
   <div class="twitterBox">
   <h2>Twitter</h2>
   <ul>
   <? foreach($tpl_twitter_object->results as $Tweet):?>
   <li>
      <a href=\"<?=$tpl_twitter_object->more_url?>\" target="_blank">
      <img src="<?=$Tweet->profile_image_url?>" width="22" height="22" align="top" /></a>
      <b><a href="<?=$tpl_twitter_object->more_url?>" target="_blank"><?=$Tweet->from_user?></a></b><br />
      <?=preg_replace("`((?:https?|ftp)://\S+[[:alnum:]]/?)`si", "<a href=\"$1\" target=\"_blank\">$1</a>", $Tweet->text);?></li>
   <? endforeach ?>
   </ul>
</div>
<? endif ?>

Noch eine Umwandlung der URLs aus dem Text in einen ordentlichen Link, ein paar CSS Angaben, und schon schaut das Ganze so aus wie unter www.tt-traum.de.

Hier noch die komplette /includes/functions.twitter.inc.php falls es jemand mal in seinem Shop einbauen will.

Dies war erst ein Anfang mit der Twiter API. Spannender wird es dann, wenn der Shop selbst Tweeds verschicken soll. Hierfür muss man dann die Anwendung erst bei Twitter registrieren sich dort auch mit seinen Twitetr Anmeldedaten authentifizieren. Dann kann man aber direkt aus dem Shop Tweeds absetzen. Zum Beispiel wenn ein neuer Artikel eingestellt wurde, eine News geschrieben wurde oder der Lagerbestand eines Artikel unter einer bestimmten Anzahl gesunken ist. Wir sind hier offen für Anregungen und Wünsche – einfach als Kommentar hier hinterlassen.

Categories Randshop, Technik Tags: Randshop, shopsystem, Twitter

About Philipp Wunderlich

See all the posts by Philipp Wunderlich at this link.

Comments

  1. Frank Theaker sagt:
    13. Januar 2010 um 10:05

    Ich denke das Twitter ein interessantes Medium werden wird. Die SMS ist seinerzeit auch unterschätzt worden. Für uns stellt es eine schöne Möglichkeit dar, unsere Kunden und Interessenten mal eben schnell über Wareneingänge, Sonderangebote oder Hightlights zu informieren.

  2. Philipp Wunderlich sagt:
    19. November 2009 um 16:29

    Zu dem Thema gibt’s auch schon ein Artikel mit ein paar Links hier im Blog:
    http://www.blog.randshop.com/2009/11/twitter-fur-shopbetreiber/

    Wir selbst sehen es auch eher kritisch und beobachten die Entwicklung interessiert. Es gibt hier einige Möglichkeiten den eigene Shop aufzuwerten (die Anzeige der Tweeds, wie hier beschrieben, war ja nur ein einfaches Beispiel für die API). Aber es muss natürlich nicht um jeden Preis sein. Das hängt dann doch zu sehr von der Zielgruppe des Shops ab. Vielleicht ist das auch mal eine Idee für einen neuen Beitrag hier.

  3. Olli sagt:
    19. November 2009 um 16:06

    Ich habe zwar in ein Projekt auch Twitter ein gebunden aber so richtig lässt sich der Sinn von TwitterBusiness für mich nicht erkennen. Vielleicht liegt das auch daran, dass ich nicht den ganzen Tag im Twitter hänge und den ganzen Kommentaren der anderen Nutzer folge – schließlich muss man ja auch noch etwas produktiv sein.
    Vielleicht könnt ihr ja mal schrieben, was eurer Meinung nach der Vorteil von Twitter im Shop ist.

Pings

  1. Tweets that mention Twitter Anzeige im Randshop « Der Blog für Shopbetreiber und Entwickler -- Topsy.com sagt:
    18. November 2009 um 18:18

    […] This post was mentioned on Twitter by wolframkriesing, Die Randgruppe GmbH. Die Randgruppe GmbH said: Twitter Anzeige im Randshop http://tinyurl.com/ykux3mw […]

Hinterlasse eine Antwort Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Seiten

  • Impressum
  • Über diesen Blog
  • Was ist Puffinkraft.de

Kategorien

  • Allgemeines (38)
  • CSS Technik (1)
  • Facebook (2)
  • Netzfishing (9)
  • PuffinKraft (1)
  • Randshop (68)
  • Randshops vorgestellt (9)
  • Rechtliches (18)
  • SEO (1)
  • Technik (5)

Links

  • Die Randgruppe GmbH Software Unternehmen
  • Puffin Kraft Liveshop als eigene Referenz
  • Randshop Gratis Shopsystem

Meta

  • Anmelden
  • Beitrags-Feed (RSS)
  • Kommentare als RSS
  • WordPress.org

Letzte Beiträge

  • Randshop 3.1 – PHP8 Ready
  • Randshop Tutorials bei Youtube
  • Randshop 3.0 steht zum Download bereit
  • Randshop 3.0 kommt Januar 2021
  • Der Zahlungsanbieter Wirecard meldet Insolvenz an!

Letzte Kommentare

  • Frank bei Randshop 3.0 steht zum Download bereit
  • Michael Maass bei Randshop 3.0 steht zum Download bereit
  • Susanne bei Randshop 3.0 steht zum Download bereit
  • Niclas Hartmann bei Randshop 2.3 und die neuen Gesetzesanforderungen im Online Shopping
  • Michael Maass bei Randshop 3.0 kommt Januar 2021

Copyright © 2025 ~ Der Blog für Shopbetreiber und Entwickler ~ The Funk
Proudly powered by WordPress