{"id":1057,"date":"2014-12-11T18:35:19","date_gmt":"2014-12-11T23:35:19","guid":{"rendered":"http:\/\/xlinesoft.com\/blog\/?p=1057"},"modified":"2014-12-12T12:03:37","modified_gmt":"2014-12-12T17:03:37","slug":"using-third-party-api-in-phprunner-apps-posting-to-twitter","status":"publish","type":"post","link":"https:\/\/xlinesoft.com\/blog\/2014\/12\/11\/using-third-party-api-in-phprunner-apps-posting-to-twitter\/","title":{"rendered":"Using third party API in PHPRunner apps. Playing with Twitter."},"content":{"rendered":"<p>Most popular websites like Facebook, Twitter, Dropbox, LinkedIn etc provide an API that allows to retrieve or post data programmatically. API examples come in many programming languages and PHP is usually one of them. In this article we&#8217;ll show how easy is to add API calls to your PHPRunner project.<\/p>\n<p>Lets start by adding Twitter posting functionality. We&#8217;ll be using a lightweight <a href=\"https:\/\/code.google.com\/p\/twitter-php\/\">twitter-php<\/a> library for this purpose. Similar libraries exist for other languages as well. <\/p>\n<h3>1. Setup a developer account with Twitter.<\/h3>\n<p>A quote from twitter-php usage page:<\/p>\n<blockquote><p>Sign in to the <a href=\"https:\/\/code.google.com\/p\/twitter-php\/\">http:\/\/twitter.com<\/a> and register an application from the <a href=\"http:\/\/dev.twitter.com\/apps\">http:\/\/dev.twitter.com\/apps<\/a> page. Remember to never reveal your consumer secrets. Click on My Access Token link from the sidebar and retrieve your own access token. Now you have consumer key, consumer secret, access token and access token secret.\n<\/p><\/blockquote>\n<p><!--more--><\/p>\n<h3>2. Download twitter-php files.<\/h3>\n<p>Download source code of twitter-php library, download link is at the bottom of the <a href=\"https:\/\/code.google.com\/p\/twitter-php\/\">page<\/a>. Unzip two files from <strong>source<\/strong> folder to your project output directory.<\/p>\n<h3>3. Adding code to events<\/h3>\n<p>Now proceed to Event Editor and add the following code to one of events. In this example we will be posting to Twitter after new record is added to Categories table. <\/p>\n<pre name=\"code\" class=\"php:nocontrols\">include(\"twitter.class.php\");\r\n$consumerKey=\"gy5IXcDt....................\";\r\n$consumerSecret=\"D1oVGmT.....................\";\r\n$accessToken=\"2914286452-dfe........................\";\r\n$accessTokenSecret=\"kpbE7qsIMGZ......................\";\r\n$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);\r\n$twitter->send('New category was added: '.$values['Category']);<\/pre>\n<h3>4. Add a new record to Categories table and this is what we see on our Twitter page. <\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter.png\" alt=\"\" title=\"twitter\" width=\"941\" height=\"481\" class=\"aligncenter size-full wp-image-1061\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter.png 941w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter-300x153.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter-150x76.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter-400x204.png 400w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><\/p>\n<h3>5. Displaying a list of your latest tweets<\/h3>\n<p>Add a new &#8216;PHP code snippet&#8217; where you need the list of tweets to appear and post the following code there. This will display the list of your last 20 tweets. To make it look good we need to add some HTML and CSS.<\/p>\n<pre name=\"code\" class=\"php:nocontrols\">include(\"twitter.class.php\");\r\n$consumerKey=\"gy5IXcDt....................\";\r\n$consumerSecret=\"D1oVGmT.....................\";\r\n$accessToken=\"2914286452-dfe........................\";\r\n$accessTokenSecret=\"kpbE7qsIMGZ......................\";\r\n$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);\r\n$statuses = $twitter->load(Twitter::ME);\r\necho '<div class=\"root timeline ltr customisable-border  not-touch twitter-timeline-rendered var-preview\" dir=\"ltr\" >\r\n  <div class=\"timeline-header customisable-border\" data-scribe=\"section:header\">\r\n<h1 class=\"summary\" data-scribe=\"element:title\">\r\n  <a class=\"customisable-highlight\" href=\"https:\/\/twitter.com\/'.$statuses[0]->user->screen_name.'\">Tweets<\/a>\r\n<\/h1>\r\n<a class=\"follow-button profile\" href=\"https:\/\/twitter.com\/'.$statuses[0]->user->screen_name.'\" role=\"button\" data-scribe=\"component:followbutton\"><i class=\"ic-button-bird\"><\/i>Follow<\/a>\r\n<\/div>\r\n  <div class=\"stream\" data-scribe=\"section:stream\" style=\"height: 263px;\">\r\n<ol class=\"h-feed\">';\r\nforeach ($statuses as $status) {\r\necho '\r\n      <li class=\"  h-entry tweet  customisable-border\" data-scribe=\"component:tweet\">\r\n  <div class=\"header\">\r\n<a class=\"u-url permalink customisable-highlight\" href=\"https:\/\/twitter.com\/phprunner\/status\/'.$status->id.'\" >\r\n<time pubdate=\"\" class=\"dt-updated\">'.date('j M',strtotime($status->created_at)).'<\/time><\/a>\r\n    <div class=\"h-card p-author\" data-scribe=\"component:author\">\r\n  <a class=\"u-url profile\" href=\"https:\/\/twitter.com\/'.$status->user->screen_name.'\" data-scribe=\"element:user_link\">\r\n    <img decoding=\"async\" class=\"u-photo avatar\" alt=\"\" src=\"'.$status->user->profile_image_url.'\" data-scribe=\"element:avatar\">\r\n    <span class=\"full-name\">\r\n      <span class=\"p-name customisable-highlight\" data-scribe=\"element:name\">'.$status->user->name.'<\/span>\r\n    <\/span>\r\n    <span class=\"p-nickname\" dir=\"ltr\" data-scribe=\"element:screen_name\">@<b>'.$status->user->screen_name.'<\/b><\/span>\r\n  <\/a>\r\n<\/div>\r\n  <\/div>\r\n  <div class=\"e-entry-content\">\r\n    <p class=\"e-entry-title\">'.$status->text.'<\/p>\r\n  <\/div>\r\n<\/li>';\r\n    }\r\necho '<\/ol><\/div><\/div>';\r\n<\/pre>\n<p>This is how it looks in PHPRunner project:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/my_tweets.png\" alt=\"\" title=\"my_tweets\" width=\"876\" height=\"442\" class=\"aligncenter size-full wp-image-1071\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/my_tweets.png 876w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/my_tweets-300x151.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/my_tweets-150x75.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/my_tweets-400x201.png 400w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/p>\n<h3>6. Instead of displaying your own tweets you can display the results of Twitter search<\/h3>\n<p>For this purpose in your code replace<\/p>\n<pre name=\"code\" class=\"php:nocontrols\">\r\n$statuses = $twitter->load(Twitter::ME);\r\n<\/pre>\n<p>with<\/p>\n<pre name=\"code\" class=\"php:nocontrols\">\r\n$statuses = $twitter->search('Christmas sale');\r\n<\/pre>\n<p>You might want to remove &#8216;Follow&#8217; button as well in this case. This is how it looks in PHPRunner project:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter_search.png\" alt=\"\" title=\"twitter_search\" width=\"800\" height=\"442\" class=\"aligncenter size-full wp-image-1070\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter_search.png 800w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter_search-300x165.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter_search-150x82.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2014\/12\/twitter_search-400x221.png 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<h3>7. Prettifying it<\/h3>\n<p>And the following needs to be pasted to &#8216;Custom CSS&#8217; section under Style Editor to make everything look good. <\/p>\n<pre name=\"code\" class=\"css:nocontrols\">\r\n\r\n.p-author:before,.p-author:after,.cards-base:before,.cards-base:after {\r\n    display: table;\r\n    content: \"\"\r\n}\r\n\r\n.p-author:after,.cards-base:after {\r\n    clear: both\r\n}\r\n\r\n.tweet,.root,.p-author {\r\n    zoom:1}\r\n\r\n.root,.tweet,.footer,.detail-expander,.header,.timeline {\r\n    position: relative\r\n}\r\n\r\n.custom-timeline-owner-profile,.timeline .e-entry-title,.p-author .p-name,.cards-base h3,.new-tweets-bar button,.load-tweets,.no-more-pane {\r\n    font-size: 14px;\r\n    line-height: 16px\r\n}\r\n\r\n\r\n.custom-timeline-owner-profile .p-nickname {\r\n    font-size: 13px\r\n}\r\n\r\n.custom-timeline-owner-profile .p-name,.p-author .profile .p-name,.cards-base .profile .p-name {\r\n    font-weight: bold\r\n}\r\n\r\n\r\n.timeline-header .custom-timeline-summary,.timeline-header h1.summary {\r\n    font-size: 18px;\r\n    font-weight: bold;\r\n    line-height: 18px\r\n}\r\n\r\n\r\n.p-author a,.e-entry-title,.cards-base h3,.cards-base .cards-content p {\r\n    line-height: 18px\r\n}\r\n\r\n.e-entry-title a {\r\n    max-width: 100%;\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n    white-space: nowrap\r\n}\r\n\r\na,a:visited,a:active,a:hover,a:focus,.p-author .full-name,.p-author a.profile,.p-author a.profile:hover .p-nickname,.p-author a.profile:focus .p-nickname,.p-author a.profile:hover .p-nickname b,.p-author a.profile:focus .p-nickname b,.timeline-header .custom-timeline-owner-profile:hover,.timeline-header .custom-timeline-owner-profile:focus,.custom-timeline-owner-profile:hover .p-nickname,.custom-timeline-owner-profile:focus .p-nickname,.custom-timeline-owner-profile:hover .p-nickname b,.custom-timeline-owner-profile:focus .p-nickname b,.cards-base a.profile:hover .p-nickname,.cards-base a.profile:focus .p-nickname,.cards-base a.profile:hover .p-nickname b,.cards-base a.profile:focus .p-nickname b,.cards-base .byline-user .p-nickname {\r\n    text-decoration: none;\r\n    outline: 0\r\n}\r\n\r\na:hover b,a:focus b,a:hover span,a:focus span,h3 a:hover,h3 a:focus,.timeline-header a:hover,.timeline-header a:focus,.e-entry-title .link:hover,.e-entry-title .link:focus,.footer a.expand:hover,.footer a.expand:focus,a.permalink:hover,a.permalink:focus,a.long-permalink:hover,a.long-permalink:focus,.cards-base p a:hover,.cards-base p a:focus,.retweet-credit a:hover,.retweet-credit a:focus {\r\n    text-decoration: underline\r\n}\r\n\r\nhtml,.p-author .profile .p-name,.custom-timeline-owner-profile .p-name,.cards-base p,.cards-base p a,.timeline-header .custom-timeline-summary,.timeline-header .custom-timeline-summary a:link,.timeline-header .custom-timeline-summary a:visited,.timeline-header .summary,.timeline-header .summary a:link,.timeline-header .summary a:visited,.p-author a.profile:hover .p-name,.p-author a.profile:focus .p-name {\r\n    color: #292f33\r\n}\r\n\r\n.customisable,.customisable:link,.customisable:visited,.customisable:hover,.customisable:focus,.customisable:active,.customisable-highlight:hover,.customisable-highlight:focus,a:hover .customisable-highlight,a:focus .customisable-highlight {\r\n    color: #0084b4\r\n}\r\n\r\na:link,a:visited,.stats span,.byline,.retweet-credit,.no-more-pane,.no-tweets-pane p,.p-geo,.cards-base .byline-user,.timeline-header .list-description {\r\n    color: #707070\r\n}\r\n\r\na:hover,a:focus,a:active,.p-author a.profile:hover,.p-author a.profile:focus,.retweet-credit .profile:hover,.retweet-credit .profile:focus,.stats strong,.no-tweets-pane .load-tweets,.nsfw {\r\n    color: #66757f\r\n}\r\n\r\n.tweet-box-button {\r\n    color: #aaa\r\n}\r\n\r\n.customisable-border {\r\n    border: 1px solid #e8e8e8\r\n}\r\n\r\n\r\n.timeline {\r\n    margin-bottom: 10px;\r\n    background-color: #fff;\r\n    border-radius: 5px\r\n}\r\n\r\n.timeline .stream {\r\n    position: relative;\r\n    width: 100%;\r\n    overflow-x: hidden;\r\n    overflow-y: scroll\r\n}\r\n\r\n.timeline.pending-scroll-in .stream .h-feed {\r\n    -webkit-transition: margin-top .5s ease-out;\r\n    -moz-transition: margin-top .5s ease-out;\r\n    -o-transition: margin-top .5s ease-out;\r\n    transition: margin-top .5s ease-out\r\n}\r\n\r\n.timeline-header,.timeline-footer {\r\n    position: relative;\r\n    z-index: 100\r\n}\r\n\r\n.timeline-header {\r\n    padding: 12px;\r\n    border-width: 0 0 1px;\r\n    box-shadow: 0 0 0 -3px rgba(0,0,0,0);\r\n    -webkit-transition: box-shadow .3s ease-out;\r\n    -moz-transition: box-shadow .3s ease-out;\r\n    -o-transition: box-shadow .3s ease-out;\r\n    transition: box-shadow .3s ease-out\r\n}\r\n\r\n.scrolled-down .timeline-header {\r\n    box-shadow: 0 0 10px -3px #ccc\r\n}\r\n\r\n.timeline-header h1.summary {\r\n    font-weight: bold\r\n}\r\n\r\n.timeline-header .follow-button,.timeline-header .twitter-follow-button,.timeline-header .ic-twitter-badge {\r\n    position: absolute;\r\n    top: 10px;\r\n    right: 10px\r\n}\r\n\r\n.ic-twitter-badge {\r\n    border: 1px solid #fff;\r\n    border-color: transparent;\r\n    border-radius: 3px\r\n}\r\n\r\n.ic-twitter-badge:focus {\r\n    border-color: #00acee\r\n}\r\n\r\n.new-tweets-bar {\r\n    position: absolute;\r\n    right: 0;\r\n    left: 0;\r\n    z-index: 100;\r\n    display: none;\r\n    width: auto;\r\n    margin-top: -2px;\r\n    opacity: 0;\r\n    -webkit-transition: opacity .3s ease-in;\r\n    -moz-transition: opacity .3s ease-in;\r\n    -o-transition: opacity .3s ease-in;\r\n    transition: opacity .3s ease-in\r\n}\r\n\r\n.pending-new-tweet-display .new-tweets-bar {\r\n    display: block\r\n}\r\n\r\n.pending-new-tweet .new-tweets-bar {\r\n    opacity: 1\r\n}\r\n\r\n.new-tweets-bar button {\r\n    width: 100%;\r\n    _width: 92%;\r\n    padding: 10px 0;\r\n    color: #fff;\r\n    text-align: center;\r\n    background-color: #222;\r\n    background-color: rgba(0,0,0,0.87);\r\n    border-width: 0\r\n}\r\n\r\n.new-tweets-bar button:hover,.new-tweets-bar button:focus {\r\n    text-decoration: underline;\r\n    cursor: pointer\r\n}\r\n\r\nbutton.load-more {\r\n    display: block;\r\n    width: 100%;\r\n    *width: 92%;\r\n    padding: 10px 0;\r\n    margin: 0;\r\n    text-align: center;\r\n    text-shadow: 0 1px 0 rgba(255,255,255,0.4);\r\n    cursor: pointer;\r\n    background-color: #fcfcfc;\r\n    background-color: rgba(0,0,0,0.02);\r\n    border: 0;\r\n    box-shadow: inset 0 3px 8px rgba(0,0,0,0.05);\r\n    -webkit-transition: background-color .2s ease-out;\r\n    -moz-transition: background-color .2s ease-out;\r\n    -o-transition: background-color .2s ease-out;\r\n    transition: background-color .2s ease-out\r\n}\r\n\r\n\r\n\r\n.timeline-footer {\r\n    padding: 6px 10px;\r\n    background: #e8e8e8;\r\n    background: rgba(0,0,0,0.1)\r\n}\r\n\r\n.timeline-footer a.widget-link {\r\n    display: block;\r\n    padding: 10px;\r\n    text-align: center\r\n}\r\n\r\n.tweet-box-button {\r\n    display: block;\r\n    width: 100%;\r\n    padding: 6px;\r\n    text-align: left;\r\n    background: #fff;\r\n    border: 1px #ccc solid;\r\n    border-radius: 4px\r\n}\r\n\r\n.tweet-box-button:hover,.tweet-box-button:focus {\r\n    cursor: pointer;\r\n    border-color: #999;\r\n    border-color: rgba(0,0,0,0.4)\r\n}\r\n\r\na.tweet-box-button {\r\n    width: auto\r\n}\r\n\r\n.tweet {\r\n    padding: 12px 12px 10px 69px;\r\n    border-width: 0 0 1px\r\n}\r\n\r\n.tweet.with-expansion {\r\n    cursor: pointer\r\n}\r\n\r\n.header {\r\n    _float: left;\r\n    _clear: left\r\n}\r\n\r\n.header .avatar {\r\n    position: absolute;\r\n    top: 0;\r\n    left: -57px;\r\n    width: 48px;\r\n    height: 48px;\r\n    background: #fff;\r\n    border-radius: 4px\r\n}\r\n\r\n.permalink {\r\n    position: relative;\r\n    z-index: 50;\r\n    float: right;\r\n    margin-top: 2px;\r\n    _clear: right\r\n}\r\n\r\n.tweet .e-entry-title {\r\n    margin: 0 5px 0 0;\r\n    overflow: hidden;\r\n    clear: both;\r\n    word-wrap: break-word;\r\n    white-space: pre-wrap\r\n}\r\n\r\n.inline-media {\r\n    max-width: 100%;\r\n    margin: 10px 0 0;\r\n    overflow: hidden\r\n}\r\n\r\n.tweet .retweet-credit {\r\n    margin: 3px 0\r\n}\r\n\r\n.tweet .twitter-alerts {\r\n    margin-top: 6px\r\n}\r\n\r\n.footer {\r\n    overflow: hidden;\r\n    zoom:1}\r\n\r\n.tweet-actions {\r\n    position: absolute;\r\n    _position: static;\r\n    right: 0;\r\n    bottom: 1px;\r\n    _float: right;\r\n    background: #fff;\r\n    visibility: hidden;\r\n    _visibility: visible;\r\n    box-shadow: 0 0 10px 5px #fff\r\n}\r\n\r\n.tweet-actions li {\r\n    _display: inline;\r\n    float: left\r\n}\r\n\r\n.tweet-actions a i {\r\n    margin: 1px 0 0 8px;\r\n    *margin: 1px 0 0 3px;\r\n    overflow: hidden\r\n}\r\n\r\n.tweet:hover .tweet-actions,.tweet:focus .tweet-actions,.expanded .tweet-actions {\r\n    visibility: visible\r\n}\r\n\r\n.tweet .tweet-actions a,.tweet .tweet-actions a b,.tweet .tweet-actions a i,.tweet .tweet-actions li {\r\n    cursor: pointer;\r\n    outline: 0\r\n}\r\n\r\n.twt-tweet .tweet-actions .ic-retweet {\r\n    margin-top: 1px\r\n}\r\n\r\n.footer {\r\n    min-height: 16px;\r\n    padding-top: 1px;\r\n    margin-top: 2px;\r\n    overflow: hidden;\r\n    border-width: 0;\r\n    -webkit-transition: margin-top .2s ease-out,padding-top .2s ease-out;\r\n    -moz-transition: margin-top .2s ease-out,padding-top .2s ease-out;\r\n    -o-transition: margin-top .2s ease-out,padding-top .2s ease-out;\r\n    transition: margin-top .2s ease-out,padding-top .2s ease-out\r\n}\r\n\r\n\r\n.follow-button:link,.follow-button:visited {\r\n    display: inline-block;\r\n    padding: 0 5px 0 3px;\r\n    font: bold 11px\/18px 'Helvetica Neue',Arial,sans-serif;\r\n    color: #333;\r\n    text-decoration: none;\r\n    text-shadow: 0 1px 0 rgba(255,255,255,0.5);\r\n    white-space: nowrap;\r\n    cursor: pointer;\r\n    background-color: #eee;\r\n    background-image: -webkit-linear-gradient(#fff,#dedede);\r\n    background-image: linear-gradient(#fff,#dedede);\r\n    border: #ccc solid 1px;\r\n    border-radius: 3px\r\n}\r\n\r\n.ie9 .follow-button:link,.ie9 .follow-button:visited {\r\n    border-radius: 0;\r\n    -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dedede')\"\r\n}\r\n\r\n.follow-button:focus,.follow-button:hover,.follow-button:active {\r\n    color: #333;\r\n    text-decoration: none;\r\n    background-color: #d9d9d9;\r\n    background-image: -webkit-linear-gradient(#f8f8f8,#d9d9d9);\r\n    background-image: linear-gradient(#f8f8f8,#d9d9d9);\r\n    border-color: #bbb;\r\n    box-shadow: none\r\n}\r\n\r\n.timeline-header a.follow-button:link,.timeline-header a.follow-button:visited,.timeline-header a.follow-button:hover,.timeline-header a.follow-button:focus,.timeline-header a.follow-button:active,.thm-dark .timeline-header a.follow-button:link,.thm-dark .timeline-header a.follow-button:visited,.thm-dark .timeline-header a.follow-button:hover,.thm-dark .timeline-header a.follow-button:focus,.thm-dark .timeline-header a.follow-button:active {\r\n    color: #333;\r\n    text-decoration: none\r\n}\r\n\r\n.thm-dark a.follow-button:link,.thm-dark a.follow-button:visited,.thm-dark a.follow-button:hover,.thm-dark a.follow-button:focus,.thm-dark a.follow-button:active {\r\n    color: #333\r\n}\r\n\r\n.ie9 .follow-button:hover,.ie9 .follow-button:focus,.ie9 .follow-button:active {\r\n    -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#d9d9d9')\"\r\n}\r\n\r\n.follow-button:active {\r\n    background-color: #efefef;\r\n    box-shadow: inset 0 3px 5px rgba(0,0,0,0.1)\r\n}\r\n\r\n.follow-button:focus {\r\n    border-color: #0089cb;\r\n    outline: 0\r\n}\r\n\r\n\r\n.e-entry-title, .full-name {\r\nfont: normal normal normal 12px\/16px \"Helvetica Neue\",Roboto,\"Segoe UI\",Calibri,sans-serif;\r\n}\r\n\r\n.verified,.ic-rt,.ic-mask,.ic-top,.ic-twitter-alert,.ic-twitter-badge,.ic-bird-flourish,.ic-button-bird,.ic-play {\r\n    display: inline-block;\r\n    vertical-align: middle;\r\n    background: transparent url(..\/images\/sprite.png) no-repeat 0 0;\r\n    background-image: url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAALEAAADxCAYAAACEcVapAAAlyklEQVR42uzcf2hd5RkH8NzG3sYkpcmYVZiCpI6YUo3tjcaQVNsaFGwMpk0mJIMiS\/\/oP7UdVREqioUxV0zrP4U0MgJWqE3bkbWDjqw\/lpauW1PXrfQHzjJwwqZiWmyiXk3O8fvHI7y8vDnned\/33p17uc8DH7h5zzlPzrnv19Pzo7YsDEMhilrJfwFCQvx\/Nzg4+B7sK4XJwXHeD4fhS3IYGix7nIHQwmkJcX4ndRF8QxZ59rrImNCzzF79EET0CWCj5f4thRu07Tn4AAIaW2rRJ7T8vaHFuil4Dv4ENyEL12AH1CQSYvziStgL1z0DUg5H4Pf0OUUTEWqOW\/bdoGy7wXMfQyiPOYbQLcD+QabvbwY6lbFOGjtiG8q4\/VPXY\/ZNw0hEv+vwE4d5mQevwiRMwS5IsUKMFRvhinJAPgH5NYTkVxTiD\/QDZYbkI8YEfGSxbxOMfhPcCTUEuAf+O1eQLfZzGk4Yxk\/AVAGE+DVGzwMO2Vln6PNcZIgpYC\/AN+qGHgHu1iY2gPX6ehYh3gpfQ2hCy7ZanoHnMc7AvBCbg1ALv4XAtJyDroFHDeOj8GXSlxNY7z+MEE855GfI0Oe9uBAfjNiJr+h6p8ViJ35n6HPYNcS0bv0cZ9DzUO8ySYyzkVOItWVr4LpjiA\/RiSWjjGVo7LD78dLP\/mfirxkh\/tQhxLdMJ6q4EI8ydiYLj1tfc4JhfMQUcuZTiVBDTykKNsTtHiFuU\/6kOUB+CM7KAgjxHxi52eUwP28b+uzhXE5sg6y2YYYm4Sz9\/E+XEDMvN7pjes2HG4aDm4T5+QgxpD0uJ37kezlBfU4b9vGM7+VBjkL8U\/g0IsAnodIhxCk4r\/S5CPO4N3Yr4Jp6QDS+TGlYaxli3QVIaTd+v2H0aqd1b0EfuUVjq\/MRYnLS4cbuZ\/A\/3xs76r3W0KODlid6JqZ1XzL0uQKbtOBZocz9Gz6GpbaP2KpgCP6lPfI4D\/+A2yx25M+GA\/wrpJRHcEehnNHrcfgj3K+9CBiDVQ5\/QqQjlnPOwP6P2Phnpb9p9wCpRENsvsT7OzRDpUdwV8IA5extuAN+DDvhEuyClfLaGQzPq03+YtnzF4yXHf2O+\/uU0ucpbXnSLzvGYDvM95yTn0PItKHkQ1x86GYY2Nv4vXY+k8DxvWCxf7+UEAv5C0BCSIiFkBALISEWEmIhJMRC5DjEUlJFXhJiKQmxlJSEWEpKQixV6iUhlpIQS0lJiKWkJMRSpV7FGOJe6INSqKvQBQtJF1yx7NEKZRbaJMT5rZuwgOCzVzUyJrSF2WsIUhF9UrAXbOoy1NC2zbCcPtfQMv859l8\/gP3wBCyCNNTDdriRVIinYSPUefadgQ54hj4H0GyY3DWWfYeVbYdzcOwzMcdQ5hxg\/yB3QDmMKmOjNNbhMMdlDDYhzkJ3RK86+ARsaxbegFqogi0QcEN8ERpoDLzqZaXPK7QTy40HG19LGF8+1mFXhtEvw51QQ4APwF0RQeZWJazWB2msqgBC\/DqjXw\/Y1iFDn\/1xBxjAbligbehaI5DSJu4gaMX+PQNQAWUmtGzAclJnOWdg1v6ZgzAJzxvP0PxaCJ2G8U5alvTlxN2MEFeBbfUb+vTG7fD6iJ24na53zgK3njX06XINMdW1Oc6gTbQszOGZKfQMsVrHoc4xxOvoxDKhjE3QWJff8aL8z8QVjBAvBtuqNp2o4g6wk7EzaTgFEcUOaTcz5Hr1Grbrg7CAQzzmEeLTygT2kB+CM14AIX6akZstYFubDX02cS4ndkJa23CCJqGFfn7AJcS8yw2MRde3UGM4uFpalo8QZz1C\/IXv5QRVm2H7Vt\/LgxyF+ENYHPE9roJpsK0AmpQ+jTDLPcALUG\/4si8pY5O2IdasgEC78XuR0WuM1q2GfaSaxk7kI8RklcON3ftwp++NHdVRQ48jECZ9JqZ609CjAfZQ8JyKMncv3AOXbf8rnYJ+uE975NEED8J3wK3HDAf4CATKI7i19DmuTsGTcFV7EdAOJx0mNQvG0s\/AST1iowrgYe0eIEg0xOZLvIfgHJ15XWsctlLONsNn8Dlsg2V0aTIur51RqGZG4B617PkO42UHwu5Ux5Q++ExVGC872mEHXdL51LtQxjQsIS7O6iZUeX3t3JrA8e222L+3JMRS8heApKQkxFJSEmIpKQmxlIRYSkpCLCWVuyr1f4hOyL+KKURhhDiTyYRCFDMJsZAQCyEhFkJCLEqdhFhIiIWQEAshIRalrhhD3At9JTJBV6ELFpIuuGLZw+p\/T8L6bRLi\/LoJC8hNz16NjAltYfYaglREnxTstdy\/y1BD2zbDcvpcQ8tCDvr9YZ7WD2A\/PAGLIA31sB1uJBXiadgIdZ6NZ6ADnqHPATQbJneNZd9hZdthn32kHjNRx0DruAXYP8gdUA6jytgojXXYhpJzFrYMcRa6I3rVwScOczMLb0AtVMEWCLghvggN6gF5eFnp8wrtxPK5vrgYSxhf\/hL2vqEY\/VDsCU1p2x6AuyKCHDJVwmp9nMaqCiDErzP69Thk55Chz\/64EAewGxYwwsUxAilt4g7q61n8ngGoiPiiKmDAclJnOWdgzv6ZggCT8DykTMuZFkKnYbyTliV9OXE3I8RVDvnpN\/TpjQvx+oiduJ2ud85a7MSzhj5driEm1yBj6NtEy6wniXE2cg6x4jjUOYZ4HV37TyhjEzTW5X689LP\/mbiCEeLFDiGuNp2o4kLcydiZNJyKamQR0m5GyE16Ddv1QVjAIR7zCPFpZQJ7SAWNjRdAiJ9m5GaLQ4g3G\/ps4lxO7IS0tuEETUIL\/fyAS4iZlxsjMf2+hRrDwdXSsnyEOOsR4i98LydIm2H7Vt\/LgxyF+ENYHPE9roJphxAH0KT0aYRZ7o3dBag3fNmXlLFJyxDrB7YCAu3G70VGvzFatxr2kWoaO5HrEGsTYXtj9z7c6XtjR44aehyBMOkzMXnT0KMB9mjBs3UJ7oV74LLtI7Yp6If7tEceTfAgfGexI48ZDvARCJRHcGvpcxjjFDwJV7UXAe1w0mFSs3Mt18\/AST1iIwE8rN0DBAUU4l5a\/yE4p515bY3DVsrZZvgMPodtsIwuTcbltTNAMyNwj1r2fIfxsmPIcX+PKX2OacuSftnRDju0SzoX71q8URyWEBenbhKSfL52bk3g+HZb7N9bEmIhfwFICAmxEBJiISTEQkIshIRYiJyHWIiiVvJfgCh+8o9sy7\/tXOwkxBJiCbFHSYiFhFhCLCTEuQjx4OCgj5IPoIQ4t\/U9e\/cDHGV5J3D8XQMYooUDREURiiKtllT6X8davZnrSFIChGJPR0c6LcYa2p5\/roU7a6XWqXCjrXXOACoq9UStLaDyxxun04rtHTppg6FiAbECYaMhQgJuloRlf\/3OzpOb597Zfd6\/2RLf55n5zMr7vLtsJt8s7\/u86yaHL+Iy5GKMuAYzBiLihQsX1mCGjdiO\/vE7OMrmGCKuwiMQ9MUZMeFW4REI+mzE5rERa1GOsQJV6rZ\/7MGFcEqoxI8Rx7gVjnJbxIg\/iTchmlgiJtpP4k2Ikvjj81IRZ3ADHAzBQI+NqICjbjep7Q\/D8XAy4hjnwVEmR4i4EVlI3BETbCOyEBuxOeJt+AQczUCOVoyEoxmJbdiLaXCMoo9tcFy2B4x4NNZCgPgiJtTRWAuB2IjNES\/HcDhlirgDk+EUwXbmS4wIz28TKuEEVIlNJSK+GHsgPh3E8\/gnHwFfjD0QnzqxBlckLeJDmGvYcaBGPRyD2QMQ8Wo4IT1dIuItkJB+jpQh4i2QkO5NSsSvYiIcn0ahDi8h6rgJjsFNcUesxnqcC8enc7HBcDhxCfZAQrrdEPEl2AMJ6eYkRHwJnJC+izx8j4hRNiIFp4QF8Dt6cDuGGR5vGO5Aj49j4jEex8SfUT6H67EDomRwhiHkMaZjYnxGcy12Q5TDGJWEV+IJcEK6u4wRz4JjUI+go9rweNUBVydSWOBzdWI8DkOUBo9j4xQW+FmdYNsE9ECUa5NyTDzHsGOz8hpWYYo2V4V3yxRxBz5qOhEMsTLieGgNsU58kc914nUQ5ac+Vyou8rNOzPb\/hiiLk7Q6sQyVPk7s9uEj2vyKWCI2m4a0cUku+FgERzNCcTSLgkasnIKVHlfsvg9RbgiwXnwKVpqu2LH93yHK1clbJ3ZfJfP+p\/0WRB1D4XhYCWE877o48iKCjjwmun5Idir62vQk5I0Rm9ViVom5ClyNeqRCXL2rxawScxW4BjOSfMVuPhwQV9GxFI7yEKKOJaiCU8JFaNP2fxBVWI4wIw1HaUBWm8tCP0bdb9\/FNnjfO7HB8N6JHJ7CGuQxGMcqPGeYX4fH7fuJ7bvYTMO+Kd6yESf9TfEc80ZhIw44bMQ2YhvxIIm4ARl16ygT8AakhCx+ECLgBmTUraNMwBuQErL4gY3YjlIR1yAHUbfT4WA+xMPRgAHXIAdRt9PhYD7Ew1EbsR3FIq5GF0TThak4By0QkwABV6MLounCVJyDFojJhynixJ\/ZRqUCHotdkCJ2qXmnmKARE95Y7IIUsUvNO8XYiC1TxGsgBmtjjHgNxGCtjdgKE3ETxKApxoibIAZNCYvYfipmRMYoDeE+iLwh+v\/0FbQryhIeRN4Qvfq7Bi\/7IdshRYx4HcRgTYwRr4MYrLER24jDRDwWfzWdCMYY8Vj81XQiaCO2EbuJhxaMMy3JBVhqEw8tGGdakhMex0ZsI3brg3j4BhzUuS6OXBnwgkcfxMM34KDOdXHkSjg2YhtxsYgXImMIeCvOhqM0IoMbg192LoyMIeCtOBuO0ogMboRjI\/7wyeGLuAw5nxHbNwDZiE8ov9N+k\/tmG\/GHJ+KNWAspgxWoUrei7EHJT8VkrhI\/hsTgVu1xb\/MZceIv9pzIEWdwg\/qGDoEMsI2oUH9fBTZB4PmpmOxzMiQG52mPOdlGPLgj3oZPuEKRAdSKka6\/byS2YS+m+QhZItpW5DG324gHZ8TLMdwQSdw6MLlEmJPVvBQT4fltguFTMY2HLptsxCduxIcwV5soV8T1HuHMHoCIQ38qJvd9upwndobPk3gFm1GR9ID7I34VEwN8I0ehDi9BIrrJ+HcxH3fEynqcG+BrPhcbQqxOVOAVbEZFTBFfDlEuS3rA\/RFfEuGV6bvIQ\/yKGGUjUobnswDiUw9uxzDD4w3DHegJucR2OUS5LKaI74Mo9yY9YP2VeEKEkO8uY8SzPJ5LPSSgasPjVUdcJ74PotwbU8RvQZRdSQ\/YfUw8x\/DNbFZewypM0eaq8G6ZIu7ARwOdCJq1+vghbY0Q8VsQZVcMv3hmKsTlAhsx3xDNMlT6OLHbh49o8ysgUfiIaRrSHktyEtAi1+OMwAjXtkUhI54KcbnAb8TEOR1ZSEBZTLfrxK6rZKZ\/2tX8LZCIhvoIeSUEz7sujrwICSiPia4fkp3KNG37JOQ9Ip6OLCSgLKaXiPgaSEhfS3rEggzmq2\/iUEgRS7Vv9EOQiJagyhDwRWiDKA+iCsshIaS1x25AFqJk0aDN7\/eI+BpISP9seDX+CnZDfNqN2qQfTrhtMLx3IoensAZ5yCC0Cs8Z5tfhcZ+HE1\/BbohPu+EZHFEOx93oNcTbi7sw3B4TW1HfTzwcd6PXEG8v7lL7BjmpazVE3GpP7KyoEbu1GiJuDfEbRashHqptxFZcEVdDPFQHjPgeiKZbEc09NmIrrojvgWi6FdHcAwd+Ak7hHYjSgvOVFojyNlI2YitqxCm8A1FacL7SAlHeRspnxOMgygpUanOVapsoZ9mIragRj4MAhVGpzVWqbaKcFeBw4nrMNMzPwrwQAdiPsbJcEQPXYyacEmZhnv3tSTbiE4X9FWD2UzEtK46Im+uiERnUlqxYHcl78z4eReIDjCviGqQhIaVR0\/+AV\/3qYA3SkJDS+L\/He6ChuQZpSEhp1GjR1iANCSmNGi3iGqQhIaVRk\/QQo3C0gKNIaxGnIRGltYjTkIjSWsRpSERpLeI0JKJ00kOMGrHEQYtY\/GpY3yWPbs0UndMiljhoEUsctIil3\/s\/rJfuZbd5Rss+wr76NvsbSgck4v2rpcSIJeLFLx+Wzp7jwggV8Zbn90uJ4Tvipiefk67DHxQsW\/1cYdvvm7dJkeEZcdfPviX53qwceWqJ\/L+wb6\/DTH0b+ywt7Mt9bMQDGnE6\/oi\/+cIh+Y\/\/OSJ\/au8TNUJH\/OoL6dAR6wGrYQjZO+IDt1wh+WxGupd\/Tw4t\/bocefInhTAPLfm6HO86IOC\/5xW2MVfYh30L9+G+NuIBP5xo\/aZI73uhI\/5L5zExDhXxypZMqMOJx\/6tVbo7e4NGrAesh+wO1VfEmQ2PSHbLRjn4o69JIeamW+Xg4qtEcjnpH\/ljfRxCzBHmCvuwb+E+3NdGHJHjN2BuQ0XM8BVxby5viNg74MPc+orYHGmoiI\/t2yFdP18gR1\/bJJn1DxeizG7+tbhHz2+fKcyxT2Hfrvsbue9OG3FEjt+A+XOoiN\/o8PdKvKzZ9ErsHfDj\/PnvFXH+g255\/47Zcmzvm4Uw2SZ9O\/8o7tG7fYswV9iHfQv34b424ogcvwGzPdIxcf9o3Nglz27PytFcPuAxsTlgtscSselwo\/vIB0Ujzv7vC3LgO5cWjoEPNH6hEOWx\/W+Je\/S\/6nY0fl7Yt3Af7msjHoiI3QHrJ3sIHbEe7MLfdMvBbLjVCXfA+skeAkesj1eaWwvbOckrhKwHzLaiEbsd+Jcv6cfD+nFxIVy1n11iG8CI3QG7RY9Y+daGLln1ek\/QiN0Bm3lH7BWyHrCviLse+LbIcSJ2D7Yduq\/BRjyYL3aYDf6LHW6dLJ\/lDrRJrmNf4dVZbbcRn6CXndtjvuzcHvNl5\/aYLzu3x3zZuT3pIUaNuBbtkJDaUKtFXIt2SEhtqNUirkU7JKQ21GoR16IdElIbarWIa9EOCakNtUkP0b4V074V00ZsI7YR2\/+zw7JsxJaV4IijDftD\/GHgLHm1NwobsXXCRjwFLyOjbqcEiZglstNd29zzKXwHO3AUf8Y8DEMtPuUKNRUw4nMwHdfhWnwZY7X503FqmIhnPLR9SKntuAmP4mZUYjJOTnpk5Yx4NG7GYuyEaHZisZofbYqYAMejHdWGiH8EKaIHL2KyK9RLMcpnxFNRiwsxHhNQjVm4VN1ejlTIiF\/GlCLbn4BoOvEMJiQ9snJFfAb2QXzYizMNEV8MwRE04CTX\/Gj0QorIYx\/q9FdhfBp1OM0j4jEq0LOKOBufxSSMwOSQER\/GEdyGU9W2syGzf\/GOzHlyf+G27uE3ZebKHWu5HZb0yMoV8Z2QAO40RDwGfRBlK+bhH9T8ZyEGs12RVmA8JmImLkCqRMTETrBm5+EKVIWJ+KtPv\/sAcQrRior5V2iaszot+tcx99lOYdvnkh5YOSNuMkW7FL94o0\/f1mSI+CTcBXHJYTf+ADEYX+TV9gwV4Hj8I2bgHKSgj4\/7iPh0DAl7YnfVs++\/htzsJ\/YIr7KFmOse2VH0a5nzVPuZSQ+sXBGPxG9NAb\/ecVyEsbJVhcz+GGk4nGhGNySgHIYWiXiUK8SPoRZz8QVMwhhM8hHxmVFWJ+qfbFvc\/3yJWQhV2Fbsa3k96XGVM+JHTQG3qoC3pHPu+cdKRDwUb0NCaC4ScAVOxmlFgpykIr4S9bjQR8QTokT81WfeO4nn+SzyEIMbkx5XOSPuhkCWbe2Tzp68\/PIvx4wBK92GJbZPoQ0S0KISEc\/FeTgrDlEiVl\/fnRCDLcQ+NOlxlTPiNgjkZ8290pHJSy4vsrvLEDCwD6Zv9L8iDfHpEMaUWEY7HefHFPBoV8RhQ\/4yOiEu2zE+6WGVO+KFepwP\/LEQsjFgZaFHxPORh\/jUaLigURVTwOMwJGzEnMSNwcL6J\/au4flmIZrjWIFRSY8KZY84hfV6oPcT8q93HjMF\/AJS8Hq1qsfvkYEY\/BdSHpeXh+PMOF+FQ64Tj8R1sx57636W0R7jef8UN2Bc0mMavOvE5ohH4Ps4Ygj4UVT4eI\/EqRiBMyJEfIp978Tf2jvz4KqqO46b5L2XvADZNxpCFpM8ME1CKDHKIhJks7UFKhnLDA4dx9q6TKc4oMNMFUGZiqN\/MAhSiA6DhY6tLGWkCkEHGrVWUMGVRYZF9j0EZQncfn8z39c5fZN73n15yYP3cn4znzHm3nvu78CX3\/2dc3\/n3NgVcSY44FDAh0CmZp54CFgAmoJE4ANgcgiFPh5wOygOJwpHo4iNtW+qiFUhTwOzbWonZoM\/gDwHBUD9wLNgCzgO2hiNdzJ1mARCLoyBJYHeHRBwHnDHoIg7+z5xIJ4kABdw2+DiOfEkLvy+hS9iFR\/4F7jA\/\/pulFJM\/uGlghzngzmIH2ZE3I5oAcXofuONN7JPnDjx8wsXLsy6dOnS365cufLx1atXD127dq3VosnP8js5JufIuXKNXEtxJ\/jbjYCIo7eemLltX4cC9soFRsTtRlz3p59+WtTa2vokRNmMY1dAR+2KtCFtSZsUNCN014o4Gv4CvSQDlIPRYKKDOolc4JEGjIgBUKKu57vvvqtHJF2P37eBzrY2aRv3GCn38kfn7iziFHAHhXsXqHSQ\/\/ZiFLjJiPj\/xbt\/\/\/5Rly9fbrYiZHKvAwcOjFbFHMMi1sM\/gJ4gg1G2tyLabJAOvGplW3cXsZo2bNq0qfCHH35YKWktiLRdk3u\/9957AWlG54i4o2YWit7gIlaj79GjR+\/DgOyMdZ1NfBBf1KjclSJ+XDAijk4RUxyuxx57LAWzB4tEP2GK7ypy3FZBfg5Xy\/DpFfGNM01xXSHix+fOndsiyM9mlXB0idifPrzwwgs5Fy9efNcK0VpaWo58\/vnnb69YseLF6dOn\/75fv36\/RHvjwFgyTn4nx+QcOVeusUI08U18VNKLThIxBWzR\/EI2Io4CEVPAnO\/tiwHVJ5ZDQ4Q9v23btrWPPvrow5z9qQfDwVAwGNwG6gT+PJjHhvPc0XKttCFtWQ5NfBRfOypk9ttewIFCNiK+sUWsRmAIaZtD8bY0NTU19u\/ffzyXfQ0BtaAaVAAfKAUloJiUgFIeq+C5tbx2RHl5+XhpE22fc+jDto5GZPZdL+BAIRsR35giZl7pnjx5cjoe01uc5KVfffXVhqFDh05iNK2jGH0Uah9l1icTpAeQyWN5PLeY11azreHSttzDST4uPovvFHJciCK2EbBGyEbEkUdrHMSB5LNnzy5x8Ag\/39jYOJuRtw5UglKKMYci7QWSQRJIBJ4AEnksmeem89o+bKuSbY9YunTpM4i2QfUlvrM9DvZCmyd+Gji1p42II04wASeApL17905h1NMN2g4h4k3ho38AKAP5jKwpwEuRuvxzuYKm5iIeuHiNl4LOZJtlvMcQuafcO9jTAX24X\/qiTL+FPrCza90M7G5YEccDz2uvvVaGopyzlsZOnz69e8SIERMZIStAIcim8JL0tQ7OazHYVi+2XcjFu3Vyb\/FB56P0AQM9HyN9vBFx7Is4jqLpiSj3d0tj58+fP1xfXz+BOyD5GCnTgFcn3jDF7AVpyhYLg8QH8SWIr2ulT\/782Ig4tkWcALyY1rqHaYRtDvzAAw9MoYDLQB5Th0RNYU44qGlOIu+Vx3sPEl\/EJ0tjqIL7Bf8RJDgQsdkSNQqwi8IekIqR\/VZdnolU44+cAisDuXzUe9qLvvL\/gXRCVPbwnrn0oVZ80v3Dkz5J33htnBFx9GMXhZMRhSdYGtu1a9fbzIF9SnWfG8TbRc9Dhw75MJvwJ9QFT62oqPCEG62V9KIXffCBup07d\/5T5zv6NlH6qInG5nMHUYRtFEb+uEmTRpwbNWrU3RzE5fOx7tEI2AWSMLj6Rmljo1S\/hZs3KxE5hb5UYKB3t\/ioyY03qdHYiDi2RBwPvC+\/\/PIAHLMtxnn\/\/fcXc4qrEKT5R\/x2IuPx1HZmDE4cPnxY6iecR2X9PdLo0wDxUVdYL31kbhxvRBzdtDcjkbJv377ZmijcMmDAgDuZg2YDr06APNYD5Ggqz\/48a9asNP\/LiDAGe176VCY+6qIx+jiH0dsN4oyIY0fEiSATovrYsrEdO3b8hW\/N8v15sE54PJ4C+gRZRPf1l19+WacODEMWMvNj+lYpvlo2Jn3ky5NEI+JYETEj5oMPPliuq+udOXNmA1\/\/ZoIkfxqhFTEf8w5qiy\/ipcWTRUVFSR1JLyj+JPpWipLOSbo6ZukrnxIJRsSxIGJGTOSSUzTR6yDOqQJ9gkZhAvNQxMUh1ANveuedd4r1gz59NKaPVZgJ2W\/Z2AcffHC\/P6UwIo5eAmcl0lFjMM+ysT179qzhNFYO8GqjMPG3C0osh8ZB30msaG4I9cWJ+KTkxj5MBdq+cURfX6RviSDOiDhKgamP4exjx46tsmxsw4YNT7E0Mp3ijOsiEauDvqUY9GX4C4ecRGM1+ovPdo2fOnXqLWVwGm9EHP0iTgZ5mEP9zLKx+fPn\/0pJJVxso6tErA76vkH98G1OB33imz+lEJ\/t2kWqsYMvSZKNiKMYmLplQT6mpY5aNjZs2LBb1b\/0SImYA7FLGPTNdDLoU\/9RDh48uFYzXXhU+sy+JxgRRyk0Fwc4BW1tba02ImpjPpzN1CMukiJWF4GuXbv2R7o5ZaYUSfTVJ7631xb6ekH6zL67jIijFJobpIJCzSO9RZlaS7xeIuZr41fQnm1EVue8Qan4rqmiLGTf3UbE0S\/iNFAURMQlFKSH10dcxByQNapTfMHuaydiROjL0meQZkQcQyIOkk4UX28RIy\/+N+qGa9hmogMRF9ulExD3OSPiGBQxcs5jlo2hOqzieoiY88aXt2zZssjtdg8UP52KWHy2axN7uB0xIo5BEWNl8A7LxrCSedz1EDF8OjBjxozf8pMU\/Cims3QCK6LHaha3fmFEHIMDu4MHD66zbGzr1q3TcE5GBAd217CV1VslJSVSu1xHAReAdIcDuwzx2a5xlIFuMAO7GJxiQ+XXfMvGjhw58tdITbEhrTm3ZMmSWdw\/+iegHOSzLa\/TKTasJnndsjH8A1lopthi8GXHm2+++bBGWPsi8bIDwvtkzJgxDdyXrQqUgFyKLTGUlx3Ie\/daNrZq1apHzMuOGHztPHr06DpdKeby5cvv7JLXzhy8bdy4cbHL5arnAtT+jJSZoEeor53FV10ppvTVvHaOwQIg4MM01nZNHrmoswuAOHjbP23atIe4I2YNKAW9lT0sQi4AEl81U3Xbpa+mACgGSzFByYcffviiZWOYRz4zderUos4qxeTgbV1hYeE4Dt5+rO4g1NFSTPFRfLVs7KOPPnpJfDKlmDFYFA8K7r333pF43Np+sgsfe3k23KJ45thnFy9e\/LTN4C05nKJ4+DhHk0q0SR+lr6YoPtaWJzEvBrfgUdysi8bYybQ81OVJ33\/\/\/V5l8LYVy\/4n2Q3ewlmeNGfOnDJdFMa3PZplab8\/HzbLk2JvoWgGuHnhwoW\/CZLDrgh1oegTTzzxU6QOy1avXj0Xg7fhYQzetFFYfNP5vmjRooeYc2eYhaIxJmJVcKAan6TdHmQz7SmhLNmncKo4cKsEN3PwlgqSOmPJPnzSbkN78uTJHdI30Mcs2Y8RVAtcn4aI9TsRhG671DVr1lQ63TyFj+++oJC5bxbo2Vmbp4gv8En7OTI8YR7xz0qYzVNifBsriq0Giyk3BvkuxtcLFiwodLKNFdOPNIE\/eztrGyvxQXyxYJoB6WY+Bfqabay6wYaCfPz7JkyY8DNul6oT8vaVK1cWBdtQkMc9xN1ZGwrKvcWHIJ9iaG1oaLjHv1rbbCjYTbZ25YCrCiLRbpfKGYs9zc3NFZHe2hXlmbdAoHusICZ9YD5eoEZhI+IY32QbZHHwVYstplY7eG18Go\/s+yK1yTY+iN4g9wzml\/gufWBfstRNto2Iu8HnDjgY69e7d+87ML\/6mcO9IpatX7++T1d97mDdunX5cg8nnwATn8V3TuXlqZ87MCLuHh+eUdOKyoEDB47FFNU3DldinMJ87Uy8kcvqrA\/PSFvSprTtxAfxVXwW3\/1phPrhGSPibvQJMJABikA1PvByD79U5HS\/iFOImvO\/\/fbbQR39BJhcK21IWyEsJt0lvorP9D1DLaQ3Iu6GH2NkLlkCaiorK8fhtbRNaqEf\/KG+t\/HMmTO\/xj5rty9btixTRKoiv5Njco6cK9dYIZr4Jj6Kr\/Q5K\/BjjEbE3fCzuKAHyPYLOTc3dyReIf\/DCt+uIMKeEeRnEJaJT+KbIuBs8V3Ng42Iu+8HygOFXA2Gvfrqq89wHvm6mviALyfNFp9AdaCA\/XmwEXH3E7GdkLOYZ1aC22Up0e7du9\/lbEGk7ZrcW3wQX0AlfcsKFLARcfcUsZ2Qk0EGR\/z9wCAw\/Pnnn5+OxaRfWBEwTp99MW\/evBlyb1BLXwroW7IqYCNiI2K7Wgh\/Uc\/NoIqRsP65556bjpce\/+FavU41aVPalnvIvXjPKvqQF1gRJw4bERsR696aeUBPkMUI6AM1LHQfMX78+ClY+Nl4\/Pjxr8MRtFwrbTQ1NTWiluN+aZv3qOE9C9qriBNHjYiNiEP5YHgqyAF9KaxqUMelRyOrq6snYsPrpzZv3vw6PpvQjFrl3djd8qgMyPDyok2Qn+V3ckzOkXPlGrlW2mBbdWzbx3vlgNT2KuKMiI2I1fOcRuVkRcwFoBRUgBqKbwjz13pwFxgFxgQwisfq5VxeU8c2KthmgSLe5PbqkY2IjYg1InYkZi9IAZkgj6IrAT4KsRoM5ICwFtxKasEgHqvmuT5eW8C2Mtm2tz3xGhEbEYdrgWlGIuhB0WWAbAoxn6IsBEUBFPJYPs\/N5rUpbCtRTRs0fhgRGxGHL2aSoAjay8d\/T4oyFaQFkMpjPXmuVxEuB2yAZkRsuClixghNEoALuG1w8Zx4u4hrRGz4H8b0Iv4vrM7fVPI858YAAAAASUVORK5CYII=);\r\n    background-size: 177px 241px\r\n}\r\n\r\n.ic-bird-flourish {\r\n    display: block;\r\n    width: 32px;\r\n    height: 20px;\r\n    margin: 12px auto 0;\r\n    background-position: -40px -161px\r\n}\r\n\r\n.ic-button-bird {\r\n    width: 16px;\r\n    height: 16px;\r\n    margin: 0 3px 0 0;\r\n    background-position: -73px -160px\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Most popular websites like Facebook, Twitter, Dropbox, LinkedIn etc provide an API that allows to retrieve or post data programmatically. API examples come in many programming languages and PHP is usually one of them. In this article we&#8217;ll show how easy is to add API calls to your PHPRunner project. Lets start by adding Twitter posting functionality. We&#8217;ll be using a lightweight twitter-php library for this purpose. Similar libraries exist for other languages as well. 1. Setup a developer account with Twitter. A quote from&#8230;<span class=\"clearfix clearfix-post\"><\/span><a href=\"https:\/\/xlinesoft.com\/blog\/2014\/12\/11\/using-third-party-api-in-phprunner-apps-posting-to-twitter\/\" class=\"more-link\">Continue Reading <span class=\"screen-reader-text\">&#8220;Using third party API in PHPRunner apps. Playing with Twitter.&#8221;<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,4,8],"tags":[],"class_list":["post-1057","post","type-post","status-publish","format-standard","hentry","category-php-category","category-php-code-generator","category-tutorials"],"_links":{"self":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts\/1057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/comments?post=1057"}],"version-history":[{"count":13,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts\/1057\/revisions"}],"predecessor-version":[{"id":1063,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts\/1057\/revisions\/1063"}],"wp:attachment":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/media?parent=1057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/categories?post=1057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/tags?post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}