<?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>Horn Network &#187; Plurk</title>
	<atom:link href="http://klcin.tw/net/tag/plurk/feed" rel="self" type="application/rss+xml" />
	<link>http://klcin.tw/net</link>
	<description>Horn Network (.NET, ASP.NET, C#, VB.NET, JavaScript, Ubuntu, Android ...)</description>
	<lastBuildDate>Fri, 04 Mar 2011 07:25:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>fav-Plurk（偽‧Plurk加星功能！）</title>
		<link>http://klcin.tw/net/fav-plurk</link>
		<comments>http://klcin.tw/net/fav-plurk#comments</comments>
		<pubDate>Fri, 18 Jul 2008 07:46:38 +0000</pubDate>
		<dc:creator>klcintw</dc:creator>
				<category><![CDATA[PO3]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[Buboo]]></category>
		<category><![CDATA[Plurk]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://klcin.tw/net/fav-plurk</guid>
		<description><![CDATA[網址：http://klcin.tw/ap/po3/fav-plurk.php 請收看 Wink 錄影操作示範。 在 Plurk 上看到好文是不是也想加星收藏呢？可惜目前官方尚未實作出類似的功能。 沒關係，fav-Plurk 可以幫你把好文收到巴布&#160; (Buboo) 或推特 (Twitter)！ fav-Plurk 純粹是個人拿來練功夫的小作品，歡迎試用！ 若有任何問題或建議請在此留言，謝謝！]]></description>
			<content:encoded><![CDATA[<p><a href="http://klcin.tw/net/images/favPlurkPlurk_DDDE/snap098.png"><img title="fav-Plurk" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="235" alt="fav-Plurk" src="http://klcin.tw/net/images/favPlurkPlurk_DDDE/snap098_thumb.png" width="320" border="0" /></a> </p>
<p>網址：<a title="http://klcin.tw/ap/po3/fav-plurk.php" href="http://klcin.tw/ap/po3/fav-plurk.php">http://klcin.tw/ap/po3/fav-plurk.php</a>     <br />請收看 <a href="http://klcin.tw/net/video/fav-plurk-opera.htm" target="_blank" rel="gb_page_fs[]">Wink 錄影操作示範</a>。</p>
<p>在 <a href="http://www.plurk.com" target="_blank">Plurk</a> 上看到好文是不是也想加星收藏呢？可惜目前官方尚未實作出類似的功能。    <br />沒關係，fav-Plurk 可以幫你把好文收到巴布&#160; (Buboo) 或推特 (Twitter)！</p>
<p> <span id="more-23"></span>
<p>fav-Plurk 純粹是個人拿來練功夫的小作品，歡迎試用！   <br />若有任何問題或建議請在此留言，謝謝！</p>
]]></content:encoded>
			<wfw:commentRss>http://klcin.tw/net/fav-plurk/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[PHP]PO3 一次幫你從3個地方（Buboo,Plurk,Twitter）讀取訊息！</title>
		<link>http://klcin.tw/net/pop3-read</link>
		<comments>http://klcin.tw/net/pop3-read#comments</comments>
		<pubDate>Wed, 09 Jul 2008 15:41:05 +0000</pubDate>
		<dc:creator>klcintw</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PO3]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Buboo]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[Plurk]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://klcin.tw/net/?p=8</guid>
		<description><![CDATA[為了統一來源及安全限制，我在server端放一個ajax.php用來取得Buboo,Plurk,Twitter的json資料，在client使用javascript處理資料呈現。 資料來源及內容： Buboo [資料來源] : http://api.buboo.tw/user_timeline/{使用者帳號}.rss?count={訊息數量}created_at : 日期（2008-07-07 23:15）text : 訊息內容id : 訊息代號（8f8170289cba351） 原文網址：http://buboo.tw/msg/{id}.html Plurk [資料來源] : 無直接網址。需先取的userid(數字)，再POST到 http://www.plurk.com/TimeLine/getPlurks ，其中欄位 user_id=$useridqualifier : 動作（”:”表示未指定）content_raw : 訊息內容content : 訊息內容（已格式成HTML）posted : 日期（new Date(&#34;Mon, 07 Jul 2008 04:08:40 GMT&#34;)） 原文網址：無 Twitter [資料來源] : http://twitter.com/statuses/user_timeline/{使用者帳號}.json&#38;count={訊息數量}text : 訊息內容Source : 發訊來源id : 訊息代號（851703528）created_at : 日期（Mon Jul 07 04:08:41 +0000 2008） 原文網址：http://twitter.com/{user.screen_name}/statuses/{id} &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>為了統一來源及安全限制，我在server端放一個ajax.php用來取得Buboo,Plurk,Twitter的json資料，在client使用javascript處理資料呈現。</p>
<p><span id="more-8"></span>
<p><strong>資料來源及內容：</strong></p>
<hr size="1" />
<a href="http://klcin.tw/net/images/PHPPO33BubooPlurkTwitter_13E10/jsonbuboo.gif"><img title="json-buboo" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; border-right-width: 0px" height="218" alt="json-buboo" src="http://klcin.tw/net/images/PHPPO33BubooPlurkTwitter_13E10/jsonbuboo_thumb.gif" width="167" align="left" border="0" /></a>
<p><strong>Buboo</strong> <sup>[<a href="http://buboo.tw/apidoc" target="_blank">資料來源</a>]</sup> : <font color="#ff0000">http://api.buboo.tw/user_timeline/{使用者帳號}.rss?count={訊息數量}</font><br />created_at : 日期（2008-07-07 23:15）<br />text : 訊息內容<br />id : 訊息代號（8f8170289cba351）</p>
<p>原文網址：<font color="#ff0000">http://buboo.tw/msg/{id}.html</font><br clear="all" /></p>
<hr size="1" />
<a href="http://klcin.tw/net/images/PHPPO33BubooPlurkTwitter_13E10/jsonplurk.gif"><img title="json-plurk" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; border-right-width: 0px" height="278" alt="json-plurk" src="http://klcin.tw/net/images/PHPPO33BubooPlurkTwitter_13E10/jsonplurk_thumb.gif" width="144" align="left" border="0" /></a>
<p><strong>Plurk</strong> <sup>[<a href="http://plurkwiki.badchemicals.net/index.php?title=TimeLine/getPlurks" target="_blank">資料來源</a>]</sup> : 無直接網址。<br />需先取的userid(數字)，再POST到 <font color="#ff0000">http://www.plurk.com/TimeLine/getPlurks</font> ，其中欄位 user_id=$userid<br />qualifier : 動作（”:”表示未指定）<br />content_raw : 訊息內容<br />content : 訊息內容（已格式成HTML）<br />posted : 日期（new Date(&quot;Mon, 07 Jul 2008 04:08:40 GMT&quot;)）</p>
<p>原文網址：無<br clear="all" /></p>
<hr size="1" />
<a href="http://klcin.tw/net/images/PHPPO33BubooPlurkTwitter_13E10/jsontwitter.gif"><img title="json-twitter" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; border-right-width: 0px" height="313" alt="json-twitter" src="http://klcin.tw/net/images/PHPPO33BubooPlurkTwitter_13E10/jsontwitter_thumb.gif" width="185" align="left" border="0" /></a>
<p><strong>Twitter</strong> <sup>[<a href="http://groups.google.com/group/twitter-development-talk/web/api-documentation#StatusMethods" target="_blank">資料來源</a>]</sup> : <font color="#ff0000">http://twitter.com/statuses/user_timeline/{使用者帳號}.json&amp;count={訊息數量}</font><br />text : 訊息內容<br />Source : 發訊來源<br />id : 訊息代號（851703528）<br />created_at : 日期（Mon Jul 07 04:08:41 +0000 2008）</p>
<p>原文網址：<font color="#ff0000">http://twitter.com/{user.screen_name}/statuses/{id}</font><br clear="all" /></p>
<p>&nbsp;</p>
<p><strong>Server端 ajax.php：</strong></p>
<pre class="brush: php">&lt;?php
# 設定傳入參數改以 p_ 開頭變數表示
import_request_variables(&#039;gp&#039;, &#039;p_&#039;);

if ( $p_type==&quot;plurk&quot; ) {
	// plurk 特別處理
	echo get_plurk($p_username);
} // if
else {
	// 一般指定url
	echo file_get_contents($p_url, 1000000);
} // else

// 取得plurk資料
function get_plurk($uid) {
	if ( $uid==&quot;&quot; ) return &quot;&quot;;

	$curl_handle = curl_init();
	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);

	// 先從網頁解析出user_id
	curl_setopt($curl_handle, CURLOPT_URL, &quot;http://www.plurk.com/user/$uid&quot;);
	$html = curl_exec($curl_handle);
	preg_match(&#039;/var GLOBAL = \{.*&quot;uid&quot;: ([\d]+),.*\}/imU&#039;, $html, $matches);
	$uid = $matches[1];

	if ( $uid == &#039;&#039; )
		$json = &quot;No User&quot;;
	else {
		// 用POST送出請求
		curl_setopt($curl_handle, CURLOPT_URL, &#039;http://www.plurk.com/TimeLine/getPlurks&#039;);
		curl_setopt($curl_handle, CURLOPT_POSTFIELDS, &quot;user_id=$uid&quot;);
		$json = curl_exec($curl_handle);
	} // else

	curl_close($curl_handle);

	return $json;
}

?&gt;</pre>
<p>&nbsp;</p>
<p><strong>Client端 javascript：</strong></p>
<p>AJAX (prototype)</p>
<pre class="brush: javascript">function ajaxBuboo() {
	var uid = $(&#039;userid&#039;).value;
	$(&#039;divBuboo&#039;).innerHTML = &quot;loading (&quot;+uid +&quot;)...&quot;;
	var url = &#039;ajax.php?url=http://api.buboo.tw/user_timeline.json?uid=&#039;+uid +&#039;&amp;amp;count=5&#039;;
	new Ajax.Request(url,
　		{
　　	method: &#039;get&#039;,
	　　asynchronous: true,
　　	onSuccess:showResultBuboo,
	　　onFailure:ShowFailure
　		}
	);
}
function showResultBuboo(httpObj) {
	$(&#039;divBuboo&#039;).innerHTML = buboo(httpObj.responseText.evalJSON(false));
}</pre>
<p>Buboo</p>
<pre class="brush: javascript">function buboo(json) {
	var retHtml = &quot;&quot;;
	for (var i=0; i&lt;json.length &amp;&amp; i&lt;&lt;?=$count?&gt;; i++){
		retHtml += (&#039;&lt;li&gt;&#039;+json[i].text+&#039; &lt;a href=&quot;http://buboo.tw/msg/&#039;+
			json[i].id+&#039;.html&quot; target=&quot;_blank&quot;&gt;url&lt;/a&gt;&lt;/li&gt;&#039;
		);
	} // for
	return retHtml;
}</pre>
<p>Plurk</p>
<pre class="brush: javascript">function plurk(json) {
	var retHtml = &quot;&quot;;
	for (var i=0; i&lt;json.length ; i++){
		retHtml += (&#039;&lt;li&gt;&#039;+
			(json[i].qualifier==&quot;:&quot;?&quot;&quot;:json[i].qualifier+&quot;:&quot; )+&#039; &#039;+
			json[i].content+&#039; [&#039;+json[i].response_count+&#039;]&lt;/li&gt;&#039;
		);
	} // for
	return retHtml;
}</pre>
<p>Twitter</p>
<pre class="brush: javascript">function twitter(json) {
	var retHtml = &quot;&quot;;
	var username = &quot;&quot;;
	for (var i=0; i&lt;json.length; i++){
		retHtml += (&#039;&lt;li&gt;&#039;+json[i].text+&#039; &lt;a href=&quot;http://twitter.com/&#039;+
			json[i].user.screen_name+&#039;/statuses/&#039;+json[i].id+&#039;&quot; target=&quot;_blank&quot;&gt;url&lt;/a&gt;&lt;/li&gt;&#039;
		);
	} // for
	return retHtml;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://klcin.tw/net/pop3-read/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP]PO3 一次幫你把訊息PO到3個地方（Buboo,Plurk,Twitter）！</title>
		<link>http://klcin.tw/net/po3</link>
		<comments>http://klcin.tw/net/po3#comments</comments>
		<pubDate>Sat, 05 Jul 2008 09:59:50 +0000</pubDate>
		<dc:creator>klcintw</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PO3]]></category>
		<category><![CDATA[Buboo]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[Plurk]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://klcin.tw/net/?p=7</guid>
		<description><![CDATA[到處看得到 web 2.0 的應用，另稱微網誌的類twitter線上服務更是多如繁星（誤）。 除了國外開山始祖twitter之外，台灣的buboo更是匯聚許多人親土親同文同種的朋友，再加上近來聲勢漸漲號稱「加上時間軸」的plurk，各有各的特色各有各的擁護者。 其實很多人應該都會在不同的服務申請帳號，只是要發一則訊息卻要登入各個服務的網頁實在麻煩。 雖然有像Hellotxt這種可以幫你一次更新許多不同的社交網站，但是，有飯否卻沒有巴布！ 其實，從技術的角度來看buboo,plurk,twitter三者還滿相似的，只是plurk目前並沒有公開它的API。 從網路上找到可以用PHP發訊息到twitter和plurk的套件，另外改寫成可以發到buboo然後再整合成統一的畫面。線上展示。 Jonathan 的 BLOG ? 整合 Twitter 的 php 寫法 rlplurkapi &#8211; Google Code – 這是非官方的Plurk API。Category:Reference &#8211; Plurk API Wiki發現更簡單的方法也是用curl：Charl van Niekerk » Blog: Plurk PHP Post Script 注意：PHP必須能夠使用 curl 功能，buboo和twitter都會用到。 twitter 發文函式： // 發文到twitter function post_twitter($uid, $pwd, $msg) { $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, &#039;http://twitter.com/statuses/update.xml&#039;); [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://klcin.tw/ap/po3/" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" title="PO3" src="http://klcin.tw/net/images/PHPPOBubooPlurkTwitter_EF99/snap006.png" border="0" alt="PO3" width="304" align="right" /></a> 到處看得到 web 2.0 的應用，另稱微網誌的類twitter線上服務更是多如繁星（誤）。<br />
除了國外開山始祖<a href="http://twitter.com" target="_blank">twitter</a>之外，台灣的<a href="http://buboo.tw/" target="_blank">buboo</a>更是匯聚許多人親土親同文同種的朋友，再加上近來聲勢漸漲號稱「加上時間軸」的<a href="http://www.plurk.com" target="_blank">plurk</a>，各有各的特色各有各的擁護者。</p>
<p>其實很多人應該都會在不同的服務申請帳號，只是要發一則訊息卻要登入各個服務的網頁實在麻煩。<br />
雖然有像<a href="http://hellotxt.com/" target="_blank">Hellotxt</a>這種可以幫你一次更新許多不同的社交網站，但是，有<a href="http://fanfou.com" target="_blank">飯否</a>卻沒有巴布！</p>
<p><span id="more-7"></span></p>
<p>其實，從技術的角度來看buboo,plurk,twitter三者還滿相似的，只是plurk目前並沒有公開它的API。<br />
從網路上找到可以用PHP發訊息到twitter和plurk的套件，另外改寫成可以發到buboo然後再整合成統一的畫面。<a href="http://klcin.tw/ap/po3/" target="_blank">線上展示</a>。</p>
<ul>
<li><a href="http://blog.ichiayi.com/2007/10/29/%E6%95%B4%E5%90%88-twitter-%E7%9A%84-php-%E5%AF%AB%E6%B3%95/" target="_blank">Jonathan 的 BLOG ? 整合 Twitter 的 php 寫法</a></li>
<li><a href="http://code.google.com/p/rlplurkapi/" target="_blank">rlplurkapi &#8211; Google Code</a> – 這是非官方的Plurk API。<a href="http://plurkwiki.badchemicals.net/index.php?title=Category:Reference" target="_blank">Category:Reference &#8211; Plurk API Wiki</a><br /><del datetime="2008-12-05T04:15:00+00:00">發現更簡單的方法也是用curl：<a href="http://blog.charlvn.za.net/2008/06/plurk.html" target="_blank">Charl van Niekerk » Blog: Plurk PHP Post Script</a></del></li>
</ul>
<p><strong>注意：</strong>PHP必須能夠使用 <a href="http://curl.haxx.se/" target="_blank">curl</a> 功能，buboo和twitter都會用到。</p>
<p><strong>twitter 發文函式：</strong></p>
<pre class="brush: php">// 發文到twitter
function post_twitter($uid, $pwd, $msg) {
	$curl_handle = curl_init();
	curl_setopt($curl_handle, CURLOPT_URL, &#039;http://twitter.com/statuses/update.xml&#039;);
	curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl_handle, CURLOPT_POST, 1);
	curl_setopt($curl_handle, CURLOPT_POSTFIELDS, &quot;status=$msg&quot;);
	curl_setopt($curl_handle, CURLOPT_USERPWD, &quot;$uid:$pwd&quot;);
	$buffer = curl_exec($curl_handle);
	curl_close($curl_handle);
	// 檢查結果
	return chkresult($buffer,&#039;&lt;text&gt;&#039;);
}</pre>
<p><strong>buboo 發文函式：</strong></p>
<pre class="brush: php">// 發文到buboo
function post_bubbo($uid, $pwd, $msg) {
	$curl_handle = curl_init();
	curl_setopt($curl_handle, CURLOPT_URL, &#039;http://api.buboo.tw/update.xml&#039;); //改
	curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl_handle, CURLOPT_POST, 1);
	curl_setopt($curl_handle, CURLOPT_POSTFIELDS, &quot;message=$msg&quot;); //改
	curl_setopt($curl_handle, CURLOPT_USERPWD, &quot;$uid:$pwd&quot;);
	$buffer = curl_exec($curl_handle);
	curl_close($curl_handle);
	// 檢查結果
	return chkresult($buffer,&#039;&lt;ok&gt;1&lt;/ok&gt;&#039;);
}</pre>
<p><strong>plurk 發文函式：</strong></p>
<pre class="brush: php">// 發文到plurk
// 2008/07/19 改
// $nick_name 是顯示名稱，如 klcintw
// $uid 是使用者代號，藏在網頁原始碼裡，如：&quot;user_id&quot;: 30140
function post_plurk($nick_name, $pwd, $uid, $msg) {
	$curl_handle = curl_init();
	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
	// 認證
	curl_setopt($curl_handle, CURLOPT_COOKIEJAR, &#039;cookie.txt&#039;);
	curl_setopt($curl_handle, CURLOPT_COOKIEFILE, &#039;cookie.txt&#039;);
	curl_setopt($curl_handle, CURLOPT_URL, &#039;http://www.plurk.com/Users/login&#039;);
	curl_setopt($curl_handle, CURLOPT_POSTFIELDS, &quot;nick_name=$nick_name&amp;password=$pwd&quot;);
	curl_exec($curl_handle);
	// 發文
	curl_setopt($curl_handle, CURLOPT_URL, &#039;http://www.plurk.com/TimeLine/addPlurk&#039;);
	curl_setopt($curl_handle, CURLOPT_POSTFIELDS, &#039;qualifier=%3A&amp;content=&#039; . urlencode($msg) . &#039;&amp;lang=en&amp;no_comments=0&amp;uid=&#039;.$uid);
	curl_exec($curl_handle);
	curl_close($curl_handle);
	return;
}</pre>
<p>認證失敗的回傳字串：login:/Users/showLogin?nick_name=ooxx&#038;error=incorrect_login<br />
認證成功的回傳字串：login:/user/ooxx<br />
重覆PO文的回傳字串：anti-flood-same-content</p>
<p>2008/07/07 補充：因修改Permalinks造成<a href="http://funp.com/t253291" target="_blank">FunP</a>的推數消失。<br />
2008/07/08 補充：如果你是使用<a href="http://www.apachefriends.org/zh_tw/xampp.html" target="_blank">XAMPP</a>要開啟 curl 模組，只要修改xampp目錄（預設是c:\xampp）下的 /apache/bin/php.ini , /php/php.ini 將「extension=php_curl.dll」取消註解並重新啟動apache即可。<a href="http://www.xt-commerce.cn/docu/index.php/%E5%AE%89%E8%A3%9D%E5%95%8F%E9%A1%8C%E6%8E%92%E9%99%A4" target="_blank">參考資料</a><br />
2008/12/05 補充：由於Plurk系統更新，原來的功能無法使用，現改用 <a href="http://code.google.com/p/rlplurkapi/" target="_blank">RLPlurkAPI-0.5.0-0</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://klcin.tw/net/po3/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

