<?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>AjaxBlog &#187; Twitter</title>
	<atom:link href="http://ajaxblog.ru/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://ajaxblog.ru</link>
	<description>ajax, javascript, css, php</description>
	<lastBuildDate>Tue, 12 Jan 2010 16:54:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Скрещиваем Twitter и WordPress</title>
		<link>http://ajaxblog.ru/2009/05/ckreshivaem-twitter-i-wordpress/</link>
		<comments>http://ajaxblog.ru/2009/05/ckreshivaem-twitter-i-wordpress/#comments</comments>
		<pubDate>Sat, 23 May 2009 11:08:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Мои проекты]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Находки]]></category>
		<category><![CDATA[Плагины]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=209</guid>
		<description><![CDATA[Для своего проекта Твои Плагины мне нужно было сделать трансляцию новых добавленных плагинов в фид твиттера. Озадачившись задачей, начал искать решения. И так&#8230; Глобальный подход Есть официальная документация которая позволяет нам использовать предоставленный API интерфейс для работы с твиккером. Мне &#8230; <a href="http://ajaxblog.ru/2009/05/ckreshivaem-twitter-i-wordpress/">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Для своего проекта <a href="http://www.plugins.com">Твои Плагины</a> мне нужно было сделать трансляцию новых добавленных плагинов в фид твиттера. Озадачившись задачей, начал искать решения. И так&#8230;<br />
<span id="more-209"></span></p>
<h3>Глобальный подход</h3>
<p>Есть <a href="http://apiwiki.twitter.com/">официальная документация</a> которая позволяет нам использовать предоставленный API интерфейс для работы с твиккером. Мне было лень разбираться с ним и я начал искать далее.</p>
<h3>Готовые плагины для WordPress</h3>
<ul>
<li><a href="http://www.sleepydisco.co.uk/plugins/simpletwitter/">SimpleTwitter</a> &#8211; плагин который позволяет добовлять ваши посты в твиттер, достаточно много настроек.</li>
<li><a href="http://blog.victoriac.net/?p=87">The Twitter Updater</a> &#8211; другой плагин который автоматически отправляет сообщения в twitter, при редактирование записи, обновлении ее или публикации, настраивайте плагин, как сами считаете нужным.</li>
<li><a href="http://alexking.org/projects/wordpress/readme?project=twitter-tools">Twitter Tools</a> &#8211; позволяет как постить в твитер, так и в блог постить свои твитты.</li>
</ul>
<p>Вот наверное самые интересные плагины. Только как-то они у меня не пошли, то ли я что-то не так настроил, то ли еще что-то, но результат один. Мои опубликованные посты не добавлялись в мой твиттер.</p>
<h3>Сервисы для работы с твиттером</h3>
<p>Пока из известных &#8211; <a href="http://twitterfeed.com/">TwitterFeed</a>. Инструкция по применению очень проста.</p>
<p>Если есть OpenId &#8211; отлично. Если нет &#8211; заводим, (например: здесь <a href="http://myopenid.com">myopenid</a>, или здесь <a href="http://openid.yandex.ru/">Yandex OpenID</a>)</p>
<p>Логинемся в TwitterFeed под вашим OpenID<br />
<img src="/wp-content/uploads/twitterfeed/twitterfeed-1.png" alt="" /></p>
<p>Создаем новый профиль<br />
<img src="/wp-content/uploads/twitterfeed/twitterfeed-2.png" alt="" /></p>
<p>Заполняем форму<br />
<img src="/wp-content/uploads/twitterfeed/twitterfeed-3.png" alt="" /></p>
<ol>
<li>Вводим адрес вашего RSS</li>
<li>Устанавливаем частота обновления вашего твикера (по умолчанию: каждый час)</li>
<li>Сколько добавлять новых постов в твикер  (по умолчанию: 1, максимальное количество 5)</li>
<li>Что выводит в твитер (по умолчанию: заголовок и описание)</li>
<li>Каким сервисом коротких ссылок мы будем пользоваться, а мы будем пользоваться так как длина сообщения для твикера ограничена 140 символами (если вы хотите без регистрации &#8211; то urlShot, если не поленитесь и зарегистрируетесь то &#8211; bit.ly. Помимо того что этот сервис сокращает ссылки, он ведет статистику кликов по ним.)</li>
<li>Публикация новых постов на основание их (по умолчанию: на дате).</li>
<li>Сообщение выводимое перед публикацией поста в твикер (по умолчанию: пусто). Не совсем нужная опция, у нас и так ограничено, так тратить дорогие знакосимволы на прикрепляемое сообщение &#8211; разорительно.</li>
<li>Если галочка стоить то идет публикация в ваш твикер. Если ее убрать то времено будет остановлен процесс публикации до тех пор пока вы ее снова не установите.</li>
<li>Думаю кнопочку &laquo;Create&raquo; вы сами найдете <img src='http://ajaxblog.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ol>
<p>Сервис работал &laquo;на ура&raquo;, но под мои требования он не подошел, так-как максимальное количество публикуемых сообщений 5, а у меня может добовлятьса ежедневно более 10 новых плагинов.</p>
<h3>Своими руками</h3>
<p>Хочешь что-бы получилось как надо. сделай сам. Берем готовый <a href="http://woork.blogspot.com/2007/10/twitter-send-message-from-php-page.html">PHP класс</a> для работы с твикером. И на базе него пишем свой плагин для WordPress.</p>
<p>Не на какую универсальность он не претендует, задача его максимально проста. При публикование поста, он автоматически публикуется в вашем твикере. Я буду рад, если кто-то на основе его напишет полноценный плагин.</p>
<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*
Plugin Name: Twitter post
Plugin URI: http://www.youplugins.com/
Description: Updates Twitter when you create a new blog or publish one
Version: 1.00.0
Author: Denis Doroshenko
*/</span>

<span style="color: #000000; font-weight: bold;">function</span> wp_twitter_post_shotlink<span style="color: #009900;">(</span><span style="color: #000088;">$link</span><span style="color: #009900;">)</span>  <span style="color: #009900;">{</span>
	<span style="color: #000088;">$shotlink</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"http://api.bit.ly/shorten?version=2.0.1&amp;longUrl=<span style="color: #006699; font-weight: bold;">{$link}</span>&amp;login=******&amp;apiKey=******"</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$bit</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">(</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">(</span><span style="color: #000088;">$url</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #000088;">$bit</span><span style="color: #009900;">[</span><span style="color: #0000ff;">"errorCode"</span><span style="color: #009900;">]</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #000088;">$shotlink</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$bit</span><span style="color: #009900;">[</span><span style="color: #0000ff;">"results"</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #0000ff;">"<span style="color: #006699; font-weight: bold;">{$link}</span>"</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #0000ff;">"shortUrl"</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$shotlink</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>

<span style="color: #000000; font-weight: bold;">function</span> wp_twitter_post_add<span style="color: #009900;">(</span><span style="color: #000088;">$post_ID</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #b1b100;">include</span><span style="color: #009900;">(</span><span style="color: #990000;">dirname</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/twitterAPI.php'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

	<span style="color: #000088;">$post</span> 			<span style="color: #339933;">=</span> get_post<span style="color: #009900;">(</span><span style="color: #000088;">$post_ID</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$postTitle</span> 		<span style="color: #339933;">=</span> <span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_title</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$postLink</span> 		<span style="color: #339933;">=</span> get_permalink<span style="color: #009900;">(</span><span style="color: #000088;">$post_ID</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$postContent</span> 	        <span style="color: #339933;">=</span> <span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_content</span><span style="color: #339933;">;</span>

	<span style="color: #000088;">$twitter_username</span> 	<span style="color: #339933;">=</span> <span style="color: #0000ff;">'******'</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$twitter_psw</span> 		<span style="color: #339933;">=</span> <span style="color: #0000ff;">'******'</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$twitter_message</span>	<span style="color: #339933;">=</span> <span style="color: #0000ff;">"<span style="color: #006699; font-weight: bold;">{$postTitle}</span>: <span style="color: #006699; font-weight: bold;">{$postContent}</span>"</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mb_strlen</span><span style="color: #009900;">(</span><span style="color: #000088;">$twitter_message</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #000088;">$count</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #000088;">$twitter_message</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #000088;">$count</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">115</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #000088;">$twitter_message</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mb_substr</span><span style="color: #009900;">(</span><span style="color: #000088;">$twitter_message</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">115</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'..'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span>
	<span style="color: #000088;">$twitter_message</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">.</span>wp_twitter_post_shotlink<span style="color: #009900;">(</span><span style="color: #000088;">$postLink</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$twitter_status</span> <span style="color: #339933;">=</span> postToTwitter<span style="color: #009900;">(</span><span style="color: #000088;">$twitter_username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$twitter_psw</span><span style="color: #339933;">,</span> <span style="color: #000088;">$twitter_message</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$post_ID</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>

add_action<span style="color: #009900;">(</span><span style="color: #0000ff;">'publish_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'wp_twitter_post_add'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
<p>add_action(&#8216;publish_post&#8217;, &#8216;wp_twitter_post_add&#8217;) &#8211; вызываем функцию wp_twitter_post_add, после события publish_post<br />
wp_twitter_post_add() &#8211; функция которая производит публикацию поста в ваш твикер, для этого вам нужно знать логин и пароль вашего твикера.<br />
wp_twitter_post_shotlink($link) &#8211; функция преобразования ваших урлов в их укороченный вариант, я для этого использовал сервис bit.ly, для его правильной работы вы должны быть на нем зарегистрированы. После регистрации сервис для вас с генерирует apiKey, который и нужно будет подставить в эту функцию.</p>
<h3>Ссылки по данной тематике</h3>
<ul>
<li><a href="http://www.quickonlinetips.com/archives/2007/04/10-best-twitter-tools-for-wordpress-blogs/">http://www.quickonlinetips.com/archives/2007/04/10-best-twitter-tools-for-wordpress-blogs/</a></li>
<li><a href="http://blogproblog.com/twitter-dlya-wordpress-bloga/">http://blogproblog.com/twitter-dlya-wordpress-bloga/</a></li>
<li><a href="http://blog.dimok.ru/blog-i-twitter">http://blog.dimok.ru/blog-i-twitter<br />
</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/2009/05/ckreshivaem-twitter-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
