{"id":1146,"date":"2014-02-28T12:45:59","date_gmt":"2014-02-28T12:45:59","guid":{"rendered":"http:\/\/frank-it-beratung.com\/blog\/?p=1146"},"modified":"2014-02-28T12:50:52","modified_gmt":"2014-02-28T12:50:52","slug":"tutorial-twitter-api-programmierung-mit-perl-neue-version","status":"publish","type":"post","link":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/","title":{"rendered":"Tutorial: Twitter-API Programmierung mit Perl (neue Version)"},"content":{"rendered":"<p>Vor gut zwei Jahren wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts\u00a0 ein 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>). Inzwischen hat sich bei der Twitter-API einiges getan (z. B. wurde die XML-Unterst\u00fctzung eingestellt) und mein damals ver\u00f6ffentlichtes Beispiel w\u00fcrde so nicht mehr funktionieren &#8211; deshalb heute ein Update.<\/p>\n<p><!--more--><\/p>\n<p><strong>Tutorial: Twitter-API Programmierung \u00a0mit Perl am Beispiel einer \u201eSingle-User-L\u00f6sung\u201c (neue Version von Februar 2014)<br \/>\n<\/strong><\/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 diverse Tweets\u00a0 im 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. <a href=\"http:\/\/search.cpan.org\/~mmims\/Net-Twitter-4.01002\/lib\/Net\/Twitter.pod\" target=\"_blank\">Net::Twitter <\/a>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\" target=\"_blank\">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 will).<\/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<\/p>\n<p>perl \u2013MCPAN \u2013e\u00a0 \u2018install NET::OAuth\u2019<\/p>\n<p>tippen. Und so sieht der Programmcode aus:<\/p>\n<pre>#!\/usr\/bin\/perl\r\n\r\nuse strict;\r\nuse LWP::UserAgent;\u00a0\u00a0 \u00a0\r\nuse Encode;\r\nuse Net::OAuth;\r\n$Net::OAuth::PROTOCOL_VERSION \r\n = Net::OAuth::PROTOCOL_VERSION_1_0A; \r\n\r\n# OAuth: Tokens f\u00fcr den Twitter-User\r\nmy $accesstoken = \"???\";\r\nmy $accesssecret = \"???\";\r\n\r\n# OAuth: Keys f\u00fcr die App\r\nmy $consumerkey =\"???\";\r\nmy $consumerkeysecret=\"???\";\r\n\r\n# Beispiel 1: Eine direct message senden\r\nmy $APIurl \r\n = 'https:\/\/api.twitter.com\/1.1\/direct_messages\/new.json';\r\nmy $empfaenger=\"Simon_A_Frank\";\r\nmy $nachricht=\"Und nochmals: Hall\u00f6chen Simon!\";\r\n\r\n# Beispiel 2: Ein Tweet senden\r\n#my $APIurl \r\n#  = 'https:\/\/api.twitter.com\/1.1\/statuses\/update.json';\r\n#my $nachricht=\"Hallo dies ist ein Test-Tweet!\"; \r\n\r\n# OAuth request vorbereiten\r\nmy $request = Net::OAuth-&gt;request(\"protected resource\")-&gt;new(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 consumer_key \u00a0\u00a0 \u00a0=&gt; $consumerkey,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 consumer_secret =&gt; $consumerkeysecret,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 request_url =&gt; $APIurl,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 request_method =&gt; 'POST',\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 signature_method =&gt; 'HMAC-SHA1',\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 timestamp =&gt; time,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 nonce =&gt; int(rand(9000) + 1000),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 token =&gt; $accesstoken,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 token_secret =&gt; $accesssecret,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 extra_params =&gt; { \r\n\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0text =&gt; decode(\"iso-8859-1\",$nachricht),\r\n\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0user =&gt; $empfaenger \r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n); \r\n\r\n# f\u00fcr Beispiel 2:\r\n#extra_params =&gt; { \r\n# \u00a0\u00a0\u00a0 \u00a0status =&gt; decode_utf8($nachricht)\r\n#}\r\n\r\n# OAuth signieren\r\n$request-&gt;sign;\r\n\r\n#sinnvolle LWP Settings - siehe LWP-Doku\r\nmy $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\nmy $httpheader = HTTP::Headers-&gt;new(\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0'Authorization' =&gt; $request-&gt;to_authorization_header,\r\n\u00a0'Content-Type' =&gt; 'application\/x-www-form-urlencoded' \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n);\r\nmy $httprequest = HTTP::Request-&gt;new('POST', $APIurl, \r\n\u00a0$httpheader, $request-&gt;to_post_body);\r\nmy $httpresponse = $ua-&gt;request($httprequest);\r\n\r\n# Erfolg?\r\nif ($httpresponse-&gt;is_success) {\r\n\u00a0 \u00a0print \"Erfolgreich!\\n\\n\";\r\n\u00a0 \u00a0print \"\\nContent: \" . $httpresponse-&gt;content . \"\\n\";\r\n}\r\nelse { \r\n\u00a0print \"Nicht erfogreich, Fehler: \" \r\n  . $httpresponse-&gt;status_line;\r\n\u00a0print \"\\nContent: \" . $httpresponse-&gt;content . \"\\n\";\r\n}<\/pre>\n<p><strong>Noch ein paar Tipps:<\/strong><\/p>\n<ul>\n<li>F\u00fcr das Versenden von Tweets gibt es noch etliche weitere Parameter, die in der ausf\u00fchrlichen offiziellen Doku zu finden sind , Details siehe <a href=\"https:\/\/dev.twitter.com\/docs\/api\/1.1\/post\/statuses\/update\" target=\"_blank\">https:\/\/dev.twitter.com\/docs\/api\/1.1\/post\/statuses\/update<\/a><\/li>\n<li>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: <a href=\"https:\/\/dev.twitter.com\/docs\/api\" target=\"_blank\">https:\/\/dev.twitter.com\/docs\/api<\/a><\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>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 ca. 350 API-Calls pro Stunde. M\u00f6chte man seine Follower mit Test-Tweets nicht ver\u00e4rgern, empfiehlt es sich zudem, den Test mit direct message statt mit Tweets durchzuf\u00fchren.<\/li>\n<\/ul>\n<p>P.S.<\/p>\n<p>Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne\u00a0 \u2013 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<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor gut zwei Jahren wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts\u00a0 ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein Blogpost &hellip; <a href=\"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/\">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":[4,14,16,18,20],"tags":[],"class_list":["post-1146","post","type-post","status-publish","format-standard","hentry","category-api","category-perl","category-programmierung","category-social-networks","category-twitter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: Twitter-API Programmierung mit Perl (neue Version) - 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\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Twitter-API Programmierung mit Perl (neue Version) - Socialweb Dev-Blog \/\/ Frank-IT-Beratung\" \/>\n<meta property=\"og:description\" content=\"Vor gut zwei Jahren wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts\u00a0 ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein Blogpost &hellip; Weiterlesen &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/\" \/>\n<meta property=\"og:site_name\" content=\"Socialweb Dev-Blog \/\/ Frank-IT-Beratung\" \/>\n<meta property=\"article:published_time\" content=\"2014-02-28T12:45:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-02-28T12:50:52+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=\"5\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\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/\"},\"author\":{\"name\":\"Simon A. Frank\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#\\\/schema\\\/person\\\/e31d0c55b9277739ef6c87d5e7bb47a2\"},\"headline\":\"Tutorial: Twitter-API Programmierung mit Perl (neue Version)\",\"datePublished\":\"2014-02-28T12:45:59+00:00\",\"dateModified\":\"2014-02-28T12:50:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/\"},\"wordCount\":783,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#\\\/schema\\\/person\\\/e31d0c55b9277739ef6c87d5e7bb47a2\"},\"articleSection\":[\"API\",\"Perl\",\"Programmierung\",\"Social Networks\",\"Twitter\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/\",\"url\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/\",\"name\":\"Tutorial: Twitter-API Programmierung mit Perl (neue Version) - Socialweb Dev-Blog \\\/\\\/ Frank-IT-Beratung\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/#website\"},\"datePublished\":\"2014-02-28T12:45:59+00:00\",\"dateModified\":\"2014-02-28T12:50:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/2014\\\/02\\\/28\\\/tutorial-twitter-api-programmierung-mit-perl-neue-version\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/frank-it-projekte.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Twitter-API Programmierung mit Perl (neue Version)\"}]},{\"@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":"Tutorial: Twitter-API Programmierung mit Perl (neue Version) - 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\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/","og_locale":"de_DE","og_type":"article","og_title":"Tutorial: Twitter-API Programmierung mit Perl (neue Version) - Socialweb Dev-Blog \/\/ Frank-IT-Beratung","og_description":"Vor gut zwei Jahren wurde ich von der \u00f6sterreichischen Perl-Zeitung gefragt, ob ich auf Grundlage der in diesem Blog ver\u00f6ffentlichen Posts\u00a0 ein kurzen zusammenfassenden Beitrag \u00fcber Twitter mit Perl schreiben k\u00f6nne, was ich gerne gemacht habe (Details siehe mein Blogpost &hellip; Weiterlesen &rarr;","og_url":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/","og_site_name":"Socialweb Dev-Blog \/\/ Frank-IT-Beratung","article_published_time":"2014-02-28T12:45:59+00:00","article_modified_time":"2014-02-28T12:50:52+00:00","author":"Simon A. Frank","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Simon A. Frank","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/#article","isPartOf":{"@id":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/"},"author":{"name":"Simon A. Frank","@id":"https:\/\/frank-it-projekte.de\/blog\/#\/schema\/person\/e31d0c55b9277739ef6c87d5e7bb47a2"},"headline":"Tutorial: Twitter-API Programmierung mit Perl (neue Version)","datePublished":"2014-02-28T12:45:59+00:00","dateModified":"2014-02-28T12:50:52+00:00","mainEntityOfPage":{"@id":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/"},"wordCount":783,"commentCount":1,"publisher":{"@id":"https:\/\/frank-it-projekte.de\/blog\/#\/schema\/person\/e31d0c55b9277739ef6c87d5e7bb47a2"},"articleSection":["API","Perl","Programmierung","Social Networks","Twitter"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/","url":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/","name":"Tutorial: Twitter-API Programmierung mit Perl (neue Version) - Socialweb Dev-Blog \/\/ Frank-IT-Beratung","isPartOf":{"@id":"https:\/\/frank-it-projekte.de\/blog\/#website"},"datePublished":"2014-02-28T12:45:59+00:00","dateModified":"2014-02-28T12:50:52+00:00","breadcrumb":{"@id":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/frank-it-projekte.de\/blog\/2014\/02\/28\/tutorial-twitter-api-programmierung-mit-perl-neue-version\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/frank-it-projekte.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Twitter-API Programmierung mit Perl (neue Version)"}]},{"@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-iu","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts\/1146","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=1146"}],"version-history":[{"count":9,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts\/1146\/revisions"}],"predecessor-version":[{"id":1158,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/posts\/1146\/revisions\/1158"}],"wp:attachment":[{"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/media?parent=1146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/categories?post=1146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frank-it-projekte.de\/blog\/wp-json\/wp\/v2\/tags?post=1146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}