{"id":826,"date":"2012-04-30T16:32:28","date_gmt":"2012-04-30T16:32:28","guid":{"rendered":"http:\/\/frank-it-beratung.com\/blog\/?p=826"},"modified":"2014-02-28T12:58:59","modified_gmt":"2014-02-28T12:58:59","slug":"twitter-api-programmierung-mit-perl-die-single-user-losung","status":"publish","type":"post","link":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/","title":{"rendered":"Twitter-API Programmierung mit Perl: Die &#8222;Single-User&#8220;-L\u00f6sung"},"content":{"rendered":"<p>Anfang des Jahres wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts \u00a0ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein <a title=\"Artikel \u00fcber Twitter-API Programmierung in der Perl-Zeitung.at\" href=\"http:\/\/frank-it-beratung.com\/blog\/2012\/03\/03\/twitter-api-programmierung-in-der-perl-zeitung-at\/\">Blogpost vom 3. M\u00e4rz 2012)<\/a>. Wie versprochen poste ich den Beitrag nun auch hier:<\/p>\n<p><!--more--><\/p>\n<p><strong>Twitter-API Programmierung mit Perl (M\u00e4rz 2012, Perl-Zeitung.at)<\/strong><\/p>\n<p>Vor gut zwei Jahren hat Twitter den Zugang \u00fcber Basic Authentication abgestellt und l\u00e4sst seither nur noch API-Zugriffe mittels OAuth zu. Eigentlich eine gute Idee, denn OAuth ist ein praktisches Protokoll, das sich inzwischen als Quasi-Standard f\u00fcr offene Social-Media-APIs etabliert hat (ebenso etwa bei Google+ und Facebook). Die Erstellung kleiner Scripte wird jedoch dadurch etwas komplizierter, aber mit Hilfe des frei verf\u00fcgbaren Net::OAuth Moduls ist das auch nicht allzu kompliziert.<\/p>\n<p>Im Folgenden soll kurz erkl\u00e4rt werden, wie eine einfache \u201eSingle-User-L\u00f6sung\u201c mit Perl realisiert werden kann. In meinem Beispiel soll durch ein Script Tweets \u00a0im Namen eines bestimmten Twitter-Account verschickt werden. Das ist deshalb eine \u201eSingle-User-L\u00f6sung\u201c, da auf die Authentifizierung verzichtet wird und das Script eben nur im Namen dieses einen Twitter-Accounts die API nutzen kann. M\u00f6chte man eine komplexere Multi-User-L\u00f6sung empfiehlt es sich, fertige Twitter-Module f\u00fcr Perl, z. B. Net::Twitter zu verwenden und nicht wie hier nur eine Minimall\u00f6sung zu realisieren.\u00a0 Aber f\u00fcr einfache Aufgaben, etwa um mit einem crontab gesteuertem Script automatisch News aus irgendwelchen Quellen auszulesen und in Tweets zu verwandeln, um einen Retweet-Bot oder eine Twitter-Wall zu bauen ist folgende \u201eSingle-User-L\u00f6sung\u201c bestens geeignet.<\/p>\n<p>Als erstes muss die eigene \u201eApplication\u201c bei Twitter registriert werden:<\/p>\n<ol>\n<li>Daf\u00fcr ruft man\u00a0 die Developer-Seite von Twitter auf: <a href=\"http:\/\/dev.twitter.com\/\">http:\/\/dev.twitter.com<\/a><\/li>\n<li>Als n\u00e4chstes meldet man sich mit dem Twitter-Account an, mit dem sp\u00e4ter auch das Script ausgef\u00fchrt werden sollen.<\/li>\n<li>Jetzt w\u00e4hlt man \u201eCreate App\u201c und denkt sich einen sch\u00f6nen Namen sowie eine Beschreibung f\u00fcr seine App aus (diese k\u00f6nnen Nutzer u. U. zu Gesicht bekommen, je nach Client wird diese Info unter den Tweets angezeigt).<\/li>\n<li>Auch eine URL ist anzugeben (z. B. die Homepage der Firma oder des Entwicklers), die Callback-URL muss leer gelassen werden.<\/li>\n<li>Jetzt ist die App erstellt. Unter \u201eSetting\u201c muss man nur noch \u201eRead&amp;Write\u201c ausw\u00e4hlen, sonst hat man nur Lesezugriff auf Twitter und kann keine Tweets versenden.<\/li>\n<li>Auf der Seite \u201eDetails\u201c findet man nun den OAuth-Consumer-Key und -Secret. Diese werden sp\u00e4ter ben\u00f6tigt (es sind die Zugangsschl\u00fcssel f\u00fcr die Anwendung, die sich nicht \u00e4ndern w\u00fcrden, wenn man einen anderen Benutzer das Script ausf\u00fchren lassen wollte).<\/li>\n<li>Unter \u201eDetails\u201c klickt man auf \u201eCreate my access token\u201c. Darauf erh\u00e4lt man das OAuth-Access-Token und -Secret f\u00fcr den aktuell eingeloggten Twitter-User. Achtung: M\u00f6chte man, dass nicht nur ein User, sondern unterschiedliche das Script nutzen, braucht man eine \u201eMulti-User-L\u00f6sung\u201c. Daf\u00fcr m\u00fcsste dann die OAuth-Authentifizierung komplett implementieren, was nicht Inhalt dieses Tutorials ist (vgl. oben).<\/li>\n<\/ol>\n<p>Bevor die Programmierarbeit beginnen kann muss ggf. nur Net::OAuth installiert werden \u2013 zu finden auf CPAN, deshalb einfach in die Shell perl \u2013MCPAN \u2013e\u00a0 &#8218;install NET::OAuth&#8216; tippen.<\/p>\n<p>Und so sieht der Programmcode aus:<\/p>\n<pre>#!\/usr\/bin\/perl\r\n\r\n use strict;\r\n use LWP::UserAgent;\r\n use Encode;\r\n use Net::OAuth;\r\n $Net::OAuth::PROTOCOL_VERSION = Net::OAuth::PROTOCOL_VERSION_1_0A;\r\n\r\n # OAuth: Tokens f\u00fcr den Twitter-User\r\n my $accesstoken = \"???\";\r\n my $accesssecret = \"???\";\r\n\r\n # OAuth: Keys f\u00fcr die App\r\n my $consumerkey =\"???\";\r\n my $consumerkeysecret=\"???\";\r\n\r\n # Allgemeines\r\n my $APIurl = 'http:\/\/api.twitter.com\/1\/statuses\/update.xml';\r\n my $reqmethod = 'POST';\r\n\r\n # Name des UserAgent - eigentlich egal\r\n my $UAname=\"myTwitterScript\";\r\n\r\n # achtstellige Zufallszahl f\u00fcr nonce\r\n my $zufallszahl = int(rand(90000000))+ 10000000;\r\n\r\n # Text des Tweets:\r\n my $nachricht=\"Danke an \\@Simon_A_Frank f\u00fcr dieses Tutorial!\";\r\n\r\n # OAuth request vorbereiten\r\n my $request = Net::OAuth-&gt;request(\"protected resource\")-&gt;new(\r\n consumer_key =&gt; $consumerkey,\r\n consumer_secret =&gt; $consumerkeysecret,\r\n request_url =&gt; $APIurl,\r\n request_method =&gt; $reqmethod,\r\n signature_method =&gt; 'HMAC-SHA1',\r\n timestamp =&gt; time,\r\n nonce =&gt; $zufallszahl,\r\n token =&gt; $accesstoken,\r\n token_secret =&gt; $accesssecret,\r\n extra_params =&gt; {\r\n   status =&gt; decode_utf8($nachricht)\r\n }\r\n);\r\n\r\n # OAuth signieren\r\n $request-&gt;sign;\r\n\r\n # hilfreiche LWP Settings\r\n my $ua = LWP::UserAgent-&gt;new;\r\n $ua-&gt;timeout(10);\r\n $ua-&gt;env_proxy;\r\n\r\n # http-Request vorbereiten und senden\r\n my $httpheader = HTTP::Headers-&gt;new('User-Agent' =&gt; $UAname);\r\n my $httprequest = HTTP::Request-&gt;new($reqmethod, $APIurl,\r\n $httpheader, $request-&gt;to_post_body);\r\n my $httpresponse = $ua-&gt;request($httprequest);\r\n\r\n # Erfolg?\r\n if ($httpresponse-&gt;is_success)\r\n {\r\n   #Hat geklappt!\r\n   print \"Tweet erfolgreich verschickt!\\n\\n\";\r\n   print \"\\nContent (XML): \" . $httpresponse-&gt;content . \"\\n\";\r\n }\r\n else\r\n {\r\n   #ging nicht ...\r\n   print \"Nicht erfolgreich, Fehler: \" . $httpresponse-&gt;status_line;\r\n }<\/pre>\n<p>Noch ein paar Tipps:<\/p>\n<p>F\u00fcr das Versenden von Tweets gibt es noch etliche weitere Parameter, die in der ausf\u00fchrlichen offiziellen Doku zu finden sind \u2013 auch andere R\u00fcckgabeformate (statt XML) sind m\u00f6glich, z. B. JSON. Details siehe: <a href=\"https:\/\/dev.twitter.com\/docs\/api\/1\/post\/statuses\/update\">https:\/\/dev.twitter.com\/docs\/api\/1\/post\/statuses\/update<\/a><\/p>\n<p>Nat\u00fcrlich kann man mit der Twitter REST-API nicht nur Tweets versenden sondern vieles mehr: z. B. Tweets auslesen, direct messages versenden, Followers hinzuf\u00fcgen usw., Details siehe:<br \/>\n<a href=\"https:\/\/dev.twitter.com\/docs\/api\">https:\/\/dev.twitter.com\/docs\/api<\/a><\/p>\n<p>Bei der Registrierung der App ist die Standardeinstellung inzwischen \u201eRead\u201c. Dies muss man vor der Erstellung der Access Token umstellen (vgl. oben). Hat man dies vergessen muss man nach der \u00c4nderung der Zugriffseinstellungen auf \u201eRecreate my acccess token\u201c klicken.<\/p>\n<p>Fehler bei der \u00dcbertragung k\u00f6nnen auch daran liegen, dass die $nachricht nicht richtig codiert ist und deshalb der gesamte Request nicht korrekt signiert wird. Statt status =&gt; decode_utf8($nachricht) kann man es f\u00fcr erste Tests einfach auch mal ohne ein \u201edecode\u201c probieren status =&gt; $nachricht wenn man darauf achtet, dass die $nachricht keine Umlaute, Satz-, Sonder- und Leerzeichen enth\u00e4lt.<\/p>\n<p>Beim Testen sollte man daran denken, dass Twitter zwei gleichlautende Tweets hintereinander ablehnt, deshalb empfiehlt es sich, bei jedem Testlauf eine andere $nachricht zu versenden. Au\u00dferdem ist auf das API-Limit zu achten \u2013 derzeit erlaubt Twitter maximal 350 API-Calls pro Stunde.<\/p>\n<p>M\u00f6chte man seine Follower mit Test-Tweets nicht ver\u00e4rgern empfiehlt es sich, den Test mit direct message statt mit Tweets durchzuf\u00fchren. Folgendes ist daf\u00fcr zu \u00e4ndern (unter \u201eUser\u201c gibt man den Empf\u00e4nger der direct message an):<\/p>\n<pre>extra_params =&gt; {\r\n  text =&gt; decode_utf8($nachricht),\r\n  user =&gt; \"Simon_A_Frank\" }<\/pre>\n<p><strong>Update im Februar 2014:<\/strong> Eine neue Version dieses Tutorials ist <a title=\"Tutorial: Twitter-API Programmierung mit Perl (neue Version)\" href=\"http:\/\/frank-it-beratung.com\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/\">hier<\/a> zu finden!<\/p>\n<p>P.S.<\/p>\n<p>Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne\u00a0 &#8211; einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstm\u00f6glich. Unternehmen, die Unterst\u00fctzung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management ben\u00f6tigen finden zudem entsprechende Angebote meiner Firma auf der Website <a href=\"http:\/\/www.Frank-IT-Beratung.de\" target=\"_blank\">www.Frank-IT-Beratung.de<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anfang des Jahres wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts \u00a0ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein Blogpost vom &hellip; <a href=\"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[14,16,18,20],"tags":[79,83,50],"class_list":["post-826","post","type-post","status-publish","format-standard","hentry","category-perl","category-programmierung","category-social-networks","category-twitter","tag-perl","tag-twitter","tag-twitter-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Twitter-API Programmierung mit Perl: Die &quot;Single-User&quot;-L\u00f6sung - Socialweb Dev-Blog \/\/ Frank-IT-Beratung<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Twitter-API Programmierung mit Perl: Die &quot;Single-User&quot;-L\u00f6sung - Socialweb Dev-Blog \/\/ Frank-IT-Beratung\" \/>\n<meta property=\"og:description\" content=\"Anfang des Jahres wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts \u00a0ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein Blogpost vom &hellip; Weiterlesen &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/\" \/>\n<meta property=\"og:site_name\" content=\"Socialweb Dev-Blog \/\/ Frank-IT-Beratung\" \/>\n<meta property=\"article:published_time\" content=\"2012-04-30T16:32:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-02-28T12:58:59+00:00\" \/>\n<meta name=\"author\" content=\"Simon A. Frank\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon A. Frank\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/\"},\"author\":{\"name\":\"Simon A. Frank\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#\\\/schema\\\/person\\\/e31d0c55b9277739ef6c87d5e7bb47a2\"},\"headline\":\"Twitter-API Programmierung mit Perl: Die &#8222;Single-User&#8220;-L\u00f6sung\",\"datePublished\":\"2012-04-30T16:32:28+00:00\",\"dateModified\":\"2014-02-28T12:58:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/\"},\"wordCount\":867,\"commentCount\":7,\"publisher\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#\\\/schema\\\/person\\\/e31d0c55b9277739ef6c87d5e7bb47a2\"},\"keywords\":[\"Perl\",\"Twitter\",\"Twitter API\"],\"articleSection\":[\"Perl\",\"Programmierung\",\"Social Networks\",\"Twitter\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/\",\"url\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/\",\"name\":\"Twitter-API Programmierung mit Perl: Die \\\"Single-User\\\"-L\u00f6sung - Socialweb Dev-Blog \\\/\\\/ Frank-IT-Beratung\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#website\"},\"datePublished\":\"2012-04-30T16:32:28+00:00\",\"dateModified\":\"2014-02-28T12:58:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2012\\\/04\\\/30\\\/twitter-api-programmierung-mit-perl-die-single-user-losung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Twitter-API Programmierung mit Perl: Die &#8222;Single-User&#8220;-L\u00f6sung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/\",\"name\":\"Socialweb Dev-Blog \\\/\\\/ Frank-IT-Beratung\",\"description\":\"Social-Media und Web-Entwicklung: Tutorials und Tipps von Simon A. Frank\",\"publisher\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#\\\/schema\\\/person\\\/e31d0c55b9277739ef6c87d5e7bb47a2\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#\\\/schema\\\/person\\\/e31d0c55b9277739ef6c87d5e7bb47a2\",\"name\":\"Simon A. Frank\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/frank-it-beratung.de\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/simon200x200.jpg\",\"url\":\"https:\\\/\\\/frank-it-beratung.de\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/simon200x200.jpg\",\"contentUrl\":\"https:\\\/\\\/frank-it-beratung.de\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/simon200x200.jpg\",\"width\":200,\"height\":200,\"caption\":\"Simon A. Frank\"},\"logo\":{\"@id\":\"https:\\\/\\\/frank-it-beratung.de\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/simon200x200.jpg\"},\"url\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/author\\\/sfrank\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Twitter-API Programmierung mit Perl: Die \"Single-User\"-L\u00f6sung - Socialweb Dev-Blog \/\/ Frank-IT-Beratung","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/","og_locale":"de_DE","og_type":"article","og_title":"Twitter-API Programmierung mit Perl: Die \"Single-User\"-L\u00f6sung - Socialweb Dev-Blog \/\/ Frank-IT-Beratung","og_description":"Anfang des Jahres wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts \u00a0ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein Blogpost vom &hellip; Weiterlesen &rarr;","og_url":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/","og_site_name":"Socialweb Dev-Blog \/\/ Frank-IT-Beratung","article_published_time":"2012-04-30T16:32:28+00:00","article_modified_time":"2014-02-28T12:58:59+00:00","author":"Simon A. Frank","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Simon A. Frank","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/#article","isPartOf":{"@id":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/"},"author":{"name":"Simon A. Frank","@id":"https:\/\/frank-it-projekte.de\/blog\/#\/schema\/person\/e31d0c55b9277739ef6c87d5e7bb47a2"},"headline":"Twitter-API Programmierung mit Perl: Die &#8222;Single-User&#8220;-L\u00f6sung","datePublished":"2012-04-30T16:32:28+00:00","dateModified":"2014-02-28T12:58:59+00:00","mainEntityOfPage":{"@id":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/"},"wordCount":867,"commentCount":7,"publisher":{"@id":"https:\/\/frank-it-projekte.de\/blog\/#\/schema\/person\/e31d0c55b9277739ef6c87d5e7bb47a2"},"keywords":["Perl","Twitter","Twitter API"],"articleSection":["Perl","Programmierung","Social Networks","Twitter"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/","url":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/","name":"Twitter-API Programmierung mit Perl: Die \"Single-User\"-L\u00f6sung - Socialweb Dev-Blog \/\/ Frank-IT-Beratung","isPartOf":{"@id":"https:\/\/frank-it-projekte.de\/blog\/#website"},"datePublished":"2012-04-30T16:32:28+00:00","dateModified":"2014-02-28T12:58:59+00:00","breadcrumb":{"@id":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/frank-it-projekte.de\/blog\/2012\/04\/30\/twitter-api-programmierung-mit-perl-die-single-user-losung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/frank-it-projekte.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Twitter-API Programmierung mit Perl: Die &#8222;Single-User&#8220;-L\u00f6sung"}]},{"@type":"WebSite","@id":"https:\/\/frank-it-projekte.de\/blog\/#website","url":"https:\/\/frank-it-projekte.de\/blog\/","name":"Socialweb Dev-Blog \/\/ Frank-IT-Beratung","description":"Social-Media und Web-Entwicklung: Tutorials und Tipps von Simon A. Frank","publisher":{"@id":"https:\/\/frank-it-projekte.de\/blog\/#\/schema\/person\/e31d0c55b9277739ef6c87d5e7bb47a2"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/frank-it-projekte.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/frank-it-projekte.de\/blog\/#\/schema\/person\/e31d0c55b9277739ef6c87d5e7bb47a2","name":"Simon A. Frank","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/frank-it-beratung.de\/blog\/wp-content\/uploads\/2009\/09\/simon200x200.jpg","url":"https:\/\/frank-it-beratung.de\/blog\/wp-content\/uploads\/2009\/09\/simon200x200.jpg","contentUrl":"https:\/\/frank-it-beratung.de\/blog\/wp-content\/uploads\/2009\/09\/simon200x200.jpg","width":200,"height":200,"caption":"Simon A. Frank"},"logo":{"@id":"https:\/\/frank-it-beratung.de\/blog\/wp-content\/uploads\/2009\/09\/simon200x200.jpg"},"url":"https:\/\/frank-it-projekte.de\/blog\/author\/sfrank\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2dxcw-dk","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts\/826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/comments?post=826"}],"version-history":[{"count":9,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts\/826\/revisions"}],"predecessor-version":[{"id":1166,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts\/826\/revisions\/1166"}],"wp:attachment":[{"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/media?parent=826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/categories?post=826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/tags?post=826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}