{"id":13582,"date":"2017-06-08T19:21:56","date_gmt":"2017-06-08T23:21:56","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?p=13582"},"modified":"2017-06-08T19:23:24","modified_gmt":"2017-06-08T23:23:24","slug":"esp8266-twitter-client","status":"publish","type":"post","link":"https:\/\/embedded-lab.com\/blog\/esp8266-twitter-client\/","title":{"rendered":"ESP8266 Twitter Client"},"content":{"rendered":"<p><em><strong>Andrei Mehil\u00e4inen<\/strong><\/em> shared his <strong><a href=\"https:\/\/hackaday.io\/project\/25359-esp8266-twitter-client\" target=\"_blank\">ESP8266-based Twitter Client<\/a><\/strong> project that is built using a\u00a0256&#215;64 OLED (SSD1322 based) display. It connects directly to Twitter, so no third-party proxy services are used.<\/p>\n<div id=\"attachment_13583\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/06\/twitter.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-13583\" class=\"size-full wp-image-13583\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/06\/twitter.jpg\" alt=\"Twitter client\" width=\"800\" height=\"460\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/06\/twitter.jpg 800w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/06\/twitter-580x334.jpg 580w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><p id=\"caption-attachment-13583\" class=\"wp-caption-text\">Twitter client<\/p><\/div>\n<blockquote><p>The device connects to <a href=\"https:\/\/dev.twitter.com\/streaming\/userstreams\">user stream<\/a> and displays all the incoming tweets for that user. This basically means the same tweets the user would see on her Twitter main page. Additionally, a <a href=\"https:\/\/dev.twitter.com\/streaming\/overview\/request-parameters#track\">track paramter<\/a> can be set to include tweets containing specified keywords.<\/p>\n<p>The tweet currently shown on the display can be <a href=\"https:\/\/dev.twitter.com\/rest\/reference\/post\/statuses\/retweet\/id\">retweeted<\/a>, <a href=\"https:\/\/dev.twitter.com\/rest\/reference\/post\/favorites\/create\">liked<\/a> and shared by sending link to it in <a href=\"https:\/\/dev.twitter.com\/rest\/reference\/post\/direct_messages\/new\">direct message<\/a>. This way user can easily access shared tweet on some other device.<\/p>\n<p>Application uses Twitter <a href=\"https:\/\/dev.twitter.com\/rest\/public\">REST<\/a> and <a href=\"https:\/\/dev.twitter.com\/streaming\/overview\">Streaming<\/a> APIs and implements OAuth 1.0a authorization as described <a href=\"https:\/\/dev.twitter.com\/oauth\/overview\/authorizing-requests\">here<\/a>.<\/p>\n<p>Unicode is supported. Glyphs for all characters found in Arial Unicode MS font are embedded in the binary. The glyphs are regular and bold variants with the sizes of 10 and 13. The font size is automatically selected based on the length of the tweet. Additionally, word wrapping and keyword (hashtag) highlighting are performed for tweet text.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Andrei Mehil\u00e4inen shared his ESP8266-based Twitter Client project that is built using a\u00a0256&#215;64 OLED (SSD1322 based) display. It connects directly to Twitter, so no third-party proxy services are used. The device connects to user stream and displays all the incoming tweets for that user. This basically means the same tweets the user would see on her Twitter main page. Additionally, a track paramter can be set to include tweets containing specified keywords. The tweet currently shown on the display can be retweeted, liked and shared by sending link to it in direct message. This way user can easily access shared<\/p>\n","protected":false},"author":1,"featured_media":13583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1044],"tags":[1684],"class_list":["post-13582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp8266","tag-esp8266-twitter"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/13582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=13582"}],"version-history":[{"count":2,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/13582\/revisions"}],"predecessor-version":[{"id":13585,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/13582\/revisions\/13585"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media\/13583"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=13582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/categories?post=13582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/tags?post=13582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}