<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>140dev &#187; Automated Tweets</title>
	<atom:link href="http://140dev.com/twitter-api-programming-blog/category/automated-tweets/feed/" rel="self" type="application/rss+xml" />
	<link>http://140dev.com</link>
	<description>Twitter API Programming Tips, Tutorials, Source Code Libraries and Consulting</description>
	<lastBuildDate>Wed, 31 Jul 2019 10:03:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>Twitter consultant tip: What not to do when using the Twitter API</title>
		<link>http://140dev.com/twitter-api-programming-blog/twitter-consultant-tip-what-not-to-do-when-using-the-twitter-api/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/twitter-consultant-tip-what-not-to-do-when-using-the-twitter-api/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 16:22:40 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Automated following]]></category>
		<category><![CDATA[Automated Tweets]]></category>
		<category><![CDATA[Consulting Tips]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=1060</guid>
		<description><![CDATA[I had an unfortunate experience the other day when I tried helping someone out with a Twitter API question on a developer Q&#038;A website. I won&#8217;t list the site&#8217;s name or URL, because I see no reason to give them even more traffic. What I want to do is point out some ways of using [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>I had an unfortunate experience the other day when I tried helping someone out with a Twitter API question on a developer Q&#038;A website. I won&#8217;t list the site&#8217;s name or URL, because I see no reason to give them even more traffic. What I want to do is point out some ways of using the API that will certainly backfire for any site that uses them, even though I know clients ask for these &#8220;features&#8221; all the time. </p>
<p>I tried replying to the user who asked the question, but first I was asked to register with the site. That&#8217;s reasonable, and keeps down spam. The registration form gave me the chance to register through my Twitter account. I accepted and was shown the standard Twitter OAuth login form that asked me to allow the site to &#8220;access and update&#8221; my account. </p>
<p>When you create a Twitter app for use with OAuth, you can give it Read &#038; Write access to user accounts, or just read access, as I showed in a <a href="http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/">recent tutorial</a>. This developers forum must have set up their app with Read &#038; Write access. This seemed excessive, since I just needed to login. I wasn&#8217;t going to allow the site to change my Twitter account, or was I? </p>
<p>I wrote my reply on the site, and when I tried to save it, nothing happened. I tried again with no luck, and gave up. A few hours later, when I looked at my Twitter account, I saw that the developers site had modified my account to follow them on Twitter, and had posted a tweet in my account telling people about the site. These are exactly the type of behaviors that Twitter keeps warning against on the <a href="http://groups.google.com/group/twitter-development-talk">Twitter dev group</a>. A Twitter application should never make any changes to a user&#8217;s account without explicit permission. </p>
<p>The temptation to do these types of things with the API is high, because they are so viral. The app&#8217;s owners get lots of followers, and all the app&#8217;s users deliver an &#8220;endorsement&#8221; to their own followers. But you should never give in to the temptation to build this into an application. Tricking people doesn&#8217;t help you in the long-run. </p>
<p>What was even funnier is how the site reacted when I discovered the problem. I immediately unfollowed them and deleted the tweet they had sent in my name. I also canceled the connection between that site and my Twitter account. At least that part of OAuth worked perfectly. I then tweeted a warning about this site&#8217;s behavior. Their response was to send back a tweet accusing me of lying. I replied that I had a copy of their tweet in my database, because I aggregate all of my tweets with my <a href="http://140dev.com/free-twitter-api-source-code-library/">140dev Twitter framework</a>. They again accused me of making the whole thing up. </p>
<p>So let&#8217;s recap all the ways they managed to piss off a potential user of their site. They tweeted in my account without a warning or my permission, they followed themselves in my account without my permission, and finally they said I was lying when I had proof. I&#8217;ll keep this as one of those stories I tell clients when they ask me to cross the line as a Twitter consultant. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/twitter-consultant-tip-what-not-to-do-when-using-the-twitter-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter consultant tip: Twitter is not email</title>
		<link>http://140dev.com/twitter-api-programming-blog/twitter-consultant-tip-twitter-is-not-email/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/twitter-consultant-tip-twitter-is-not-email/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 15:13:14 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Automated Tweets]]></category>
		<category><![CDATA[Consulting Tips]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=1036</guid>
		<description><![CDATA[One of the oddest behaviors on Twitter is spammers who think they can persuade people by blasting the same message over and over again through multiple accounts. Yesterday I looked at the Twitter search results for the phrase &#8220;twitter api&#8221;. I found hundreds of copies of these two tweets from dozens of accounts: The Twitter [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>One of the oddest behaviors on Twitter is spammers who think they can persuade people by blasting the same message over and over again through multiple accounts. Yesterday I looked at the Twitter search results for the phrase &#8220;twitter api&#8221;. I found hundreds of copies of these two tweets from dozens of accounts:</p>
<blockquote><p>The Twitter API is the one responsible why Twitter can easily know that you are automating your task http://adf.ly/BG6i</p></blockquote>
<blockquote><p>Using software that use Twitter API to do things is like inviting Twitter anti spam bots to look on your activites http://adf.ly/BG6i</p></blockquote>
<p>I won&#8217;t even comment on the non-native English. Well, I guess I just did <img src='http://140dev.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . The real point is that it doesn&#8217;t make any sense. URLs in tweets get a high click through rate, because they seem more honest than ads. But if someone sees hundreds of copies of the same tweet, will they really believe this is the action of a human or a bot? </p>
<p>The logic behind much of the Twitter spam is that users get many of their tweets through search, so if you put out tweets with likely search terms, your message will get in front of them. It makes sense, but if it is done in such a crude way, anyone searching will see that this is obviously a spam message. I think these sloppy versions of Twitter spam are done by email spammers, who are trying to apply the same techniques to Twitter. The difference is that you can&#8217;t see the emails arriving in everyone else&#8217;s mailbox, but you can see all the tweets from all the public accounts. </p>
<p>I know that often clients ask for this type of Twitter spam to be sent out on their behalf. A good Twitter consultant will explain that Twitter is a completely different medium from email, and it requires different techniques. I have nothing against commercial speech. I do it all the time for clients. I just don&#8217;t understand sloppy, badly executed communication plans that are bound to fail. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/twitter-consultant-tip-twitter-is-not-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The simplest Twitter OAuth tutorial possible</title>
		<link>http://140dev.com/twitter-api-programming-blog/the-simplest-twitter-oauth-tutorial-possible/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/the-simplest-twitter-oauth-tutorial-possible/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 01:25:25 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Automated Tweets]]></category>
		<category><![CDATA[Custom Twitter Client]]></category>
		<category><![CDATA[Twitter API Tutorials]]></category>
		<category><![CDATA[Twitter OAuth]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=994</guid>
		<description><![CDATA[There is something about OAuth that brings out the worst in techies. You can see it when someone asks how to get started with OAuth on the Twitter development talk mailing list. The general response is &#8220;get a copy of library X, and you&#8217;re all set.&#8221; Well if downloading a library would solve the problem, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>There is something about OAuth that brings out the worst in techies. You can see it when someone asks how to get started with OAuth on the <a href="http://groups.google.com/group/twitter-development-talk">Twitter development talk</a> mailing list. The general response is &#8220;get a copy of library X, and you&#8217;re all set.&#8221; Well if downloading a library would solve the problem, I don&#8217;t think so many people would keep asking for help. </p>
<p>The disconnect is that all the Twitter docs on OAuth assume that you already know how it works. It&#8217;s like giving driving directions to someone who does not know how to operate a car. If someone has never driven before, saying &#8220;Just go north 5 miles, and you&#8217;re all set&#8221; doesn&#8217;t help much.</p>
<p>What OAuth beginners need is a step by step set of instructions that starts by showing where all the moving parts are, and how to assemble them for a first working program that controls the Twitter API. That is what I have tried to do with my latest tutorial. It is called <a href="http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/">Hello Twitter OAuth</a>, and it shows every step necessary to post tweets with OAuth. These techniques can then be applied to any API command. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/the-simplest-twitter-oauth-tutorial-possible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Your spammer is my information source</title>
		<link>http://140dev.com/twitter-api-programming-blog/your-spammer-is-my-information-source/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/your-spammer-is-my-information-source/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 13:36:53 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Automated Tweets]]></category>
		<category><![CDATA[Data Mining Tweets]]></category>
		<category><![CDATA[Tweet Aggregation]]></category>
		<category><![CDATA[User Ranking]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=287</guid>
		<description><![CDATA[There is an interesting thread on the Twitter development list about the need for a &#8220;good citizen&#8221; rank. This problem is approached in a literal engineering way, which says there are good and bad users. There are plenty of Twitter behaviors that could be seen as &#8220;bad,&#8221; but the beauty of Twitter is that it [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>There is an <a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/ec1d39a3a38321ff">interesting thread</a> on the Twitter development list about the need for a &#8220;good citizen&#8221; rank. This problem is approached in a literal engineering way, which says there are good and bad users. There are plenty of Twitter behaviors that could be seen as &#8220;bad,&#8221; but the beauty of Twitter is that it is totally opt-in. I only see the people I choose to follow. So the only meaningful criteria is whether I or my client wants to read an account&#8217;s tweets. Automating that selection must be made within the context of a specific area of interest. I believe that my <a href="http://140dev.com/twitter-api-programming-tutorials/identifying-influential-twitter-users">mention algorithm</a> is a good way of solving this problem. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/your-spammer-is-my-information-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Consulting Tip: Mixing Automated and Human Tweets</title>
		<link>http://140dev.com/twitter-api-programming-blog/twitter-consulting-tip-automated-human-tweets/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/twitter-consulting-tip-automated-human-tweets/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 12:39:17 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Automated Tweets]]></category>
		<category><![CDATA[Consulting Tips]]></category>
		<category><![CDATA[Twitter Marketing]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=129</guid>
		<description><![CDATA[The amount of time it takes to manage an active Twitter account is one of the major hurdles in getting clients to use Twitter effectively. The best approach is to create an automated tweeting system to ensure a steady flow of product and corporate messages, and then supplement these tweets with hand written ones. Automated [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>The amount of time it takes to manage an active Twitter account is one of the major hurdles in getting clients to use Twitter effectively. The best approach is to create an automated tweeting system to ensure a steady flow of product and corporate messages, and then supplement these tweets with hand written ones. </p>
<p>Automated tweeting code is easy to write. I create a MySQL table that contains the automated tweets, and a matching data entry page so that the client can add and edit these tweets on their own. Then I write a script that retrieves a single tweet from the database and posts it to the client&#8217;s account.  Each tweet has a field for the last date and time it was posted which is filled in by the autotweeting script. The code that does the tweeting retrieves tweets from the database in reverse order by the last time it was tweeted, so the tweets will be cycled through from first to last. Eventually the system will work its way back to the first item in the list and repeat the tweets again, but if you have a hundred or more tweets in the table, and only autotweet five or six times a day, nobody will notice when you finally repeat the same tweets. </p>
<p>This autotweeting creates a baseline for an active account, and once the tweets are entered in the database there is no work for the client. But this isn&#8217;t enough. No matter how well the autotweets are written they will have an impersonal feel, because they can&#8217;t be addressed to a specific user. Even if they aren&#8217;t written as pure ad copy, they still read like broadcasting. </p>
<p>The next step is adding tweets that clearly come from a human. To do this I have the client read their Twitter stream every few hours and reply to one of the tweets that seem interesting. This reply should be directed to the @user who made the original tweet. Since this type of tweet couldn&#8217;t be done by a robot, at least not in a convincing way, anyone reading the client&#8217;s Twitter stream will see that they are actively engaged with their followers. Five or six of these human tweets every day in combination with the autotweets is enough to create an active account. </p>
<p>The goal is to create an interesting stream of tweets that not only will be followed back in response to a follow, but will be read by the followers when they appear. At the same time you need to reduce the amount of time the client needs to work at tweeting, since they have other business tasks. By automating the product messages, it lets the client craft these messages carefully, and replace them over time as their marketing approach changes. </p>
<p>All this sounds very premeditated. Shouldn&#8217;t Twitter just be about one human really engaging with another human on a deeply personal level? Sure. But in practice companies use Twitter to promote their business, and anyone who denies that is living in a fantasy world. Twitter sells promoted tweets, which are nothing by ads, so the idea of commercial messages on Twitter is nothing new. If I can help a client create an active account that gets followed with much less work on their part, that is a useful service. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/twitter-consulting-tip-automated-human-tweets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
