<?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>ぱんぴーまっしぐら &#187; twitter</title>
	<atom:link href="http://blog.cheki.net/archives/tag/twitter/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.cheki.net</link>
	<description>悲しみの果てに</description>
	<lastBuildDate>Wed, 13 Jul 2011 02:39:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>twitter日本語ハッシュタグの対応</title>
		<link>http://blog.cheki.net/archives/2364</link>
		<comments>http://blog.cheki.net/archives/2364#comments</comments>
		<pubDate>Wed, 13 Jul 2011 02:39:08 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2364</guid>
		<description><![CDATA[Twitterブログ: ＃日本語ハッシュタグ こちらの対応。 以前はハッシュタグの対応に正規表現を利用していたかと思いますが、最近はstatusからハッシュタグ情報がとれます。 GET statuses/show/:id [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.jp.twitter.com/2011/07/blog-post.html">Twitterブログ: ＃日本語ハッシュタグ</a><br />
こちらの対応。</p>
<p>以前はハッシュタグの対応に正規表現を利用していたかと思いますが、最近はstatusからハッシュタグ情報がとれます。<br />
<a href="https://dev.twitter.com/docs/api/1/get/statuses/show/%3Aid">GET statuses/show/:id | Twitter Developers</a><br />
include_entities=trueでhashtagsがとれてその中にハッシュタグ情報が。</p>
<p>APIのバグかと思われますが、「ー」で終了しているタグがhashtagsにはいってきません。<br />
<a href="http://api.twitter.com/1/statuses/show/90961863306772481.xml?include_entities=true">api.twitter.com/1/statuses/show/90961863306772481.xml?include_entities=true</a><br />
バグレポートすればそのうち直るのかな。</p>
<p>searchAPIにはそもそもハッシュタグ情報が含まれないので現状では解決策なし。<br />
<a href="https://dev.twitter.com/docs/api/1/get/search">GET search | Twitter Developers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2364/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Androidでtwitter4jを利用してOAuth認証(ブラウザ)</title>
		<link>http://blog.cheki.net/archives/2359</link>
		<comments>http://blog.cheki.net/archives/2359#comments</comments>
		<pubDate>Mon, 04 Jul 2011 05:07:36 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitter4j]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2359</guid>
		<description><![CDATA[他のIntentから遷移し、URL表示しないブラウザを立ち上げ認証したらhogehoge。 public class OAuthActivity extends Activity { final private Stri [...]]]></description>
			<content:encoded><![CDATA[<p>他のIntentから遷移し、URL表示しないブラウザを立ち上げ認証したらhogehoge。</p>
<pre>
public class OAuthActivity extends Activity {
    final private String CONSUMER_KEY = "xxxxxx";
    final private String CONSUMER_SECRET = "xxxxxx";

    private String CALLBACK_URL = "myapp://oauth";
    private OAuthAuthorization oauth;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WebView webview = new WebView(this);
        setContentView(webview);

        Configuration config = new ConfigurationBuilder().build();
        oauth = new OAuthAuthorization(config);
        oauth.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
        oauth.setOAuthAccessToken(null);
        try {
            String url = oauth.getOAuthRequestToken(CALLBACK_URL).getAuthorizeURL();
            webview.loadUrl(url);
        } catch (TwitterException e) {
            Toast.makeText(this, R.string.twitter_failed, Toast.LENGTH_LONG).show();
            finish();
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        Uri uri = intent.getData();
        if (uri != null &#038;&#038; uri.toString().startsWith(CALLBACK_URL)) {
            String verifier = uri.getQueryParameter("oauth_verifier");
            try {
                AccessToken at = oauth.getOAuthAccessToken(verifier);
                Log.d(getLocalClassName(), "screen_name = " + at.getScreenName());
                Log.d(getLocalClassName(), "access_token = " + at.getToken());
                Log.d(getLocalClassName(), "access_token_secret = " + at.getTokenSecret());
                // hogehoge
                Toast.makeText(this, R.string.twitter_login_success, Toast.LENGTH_LONG).show();
                finish();
            } catch (Exception e) {
                Log.w(getLocalClassName(), e.getMessage());
                Toast.makeText(this, R.string.twitter_login_failed, Toast.LENGTH_LONG).show();
                finish();
            }
        }
    }
}
</pre>
<p>AndroidManifest.xml該当箇所。<br />
lunchModeで多重起動させない。<br />
あとヒストリー残さない。<br />
ブラウザから「myapp://oauth」でIntentが起動するように。</p>
<pre>
        &lt;activity
            android:name=&quot;.OAuthActivity&quot;
            android:launchMode=&quot;singleTask&quot;
            android:noHistory=&quot;true&quot;
            &gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
                &lt;data android:scheme=&quot;myapp&quot; android:host=&quot;oauth&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2359/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twitterのリストでリスト名に日本語が通るようになっていた</title>
		<link>http://blog.cheki.net/archives/2324</link>
		<comments>http://blog.cheki.net/archives/2324#comments</comments>
		<pubDate>Thu, 13 Jan 2011 08:33:32 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2324</guid>
		<description><![CDATA[UTF-8の範囲、BMP外はダメっぽい。 文字数はUTF-8で23文字までっぽい。 日本語 http://twitter.com/cockok/%E6%97%A5%E6%9C%AC%E8%AA%9E 日本語-18 htt [...]]]></description>
			<content:encoded><![CDATA[<p>UTF-8の範囲、BMP外はダメっぽい。<br />
文字数はUTF-8で23文字までっぽい。</p>
<p>日本語</p>
<p>http://twitter.com/cockok/%E6%97%A5%E6%9C%AC%E8%AA%9E</p>
<p>日本語-18</p>
<p>http://twitter.com/cockok/%E6%97%A5%E6%9C%AC%E8%AA%9E-18</p>
<p>☃</p>
<p>http://twitter.com/cockok/%E2%98%83</p>
<p></p>
<p>http://twitter.com/cockok/%EE%98%BE</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2324/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitterのstatus IDが64bitになったことによる問題と対策</title>
		<link>http://blog.cheki.net/archives/2308</link>
		<comments>http://blog.cheki.net/archives/2308#comments</comments>
		<pubDate>Sun, 07 Nov 2010 05:03:06 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2308</guid>
		<description><![CDATA[Snowflake: An update and some very important information &#8211; Twitter Development Talk &#124; Google グループ Twitte [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/6a16efa375532182?pli=1">Snowflake: An update and some very important information &#8211; Twitter Development Talk | Google グループ</a><br />
<a href="http://blog.fkoji.com/2010/10201250.html">TwitterのIDが64bitになるとJavaScript等で問題が出るので対策を &#8211; F.Ko-Jiの「一秒後は未来」</a></p>
<p>事前に告知されていましたが、日本時間で11月5日の朝6時にstatus IDが41bitまでの値を利用するようになりました。</p>
<pre>
     29535221410 以前
1036396793962496 以後
</pre>
<p>桁が大分増えましたね。</p>
<p>10月20日からレスポンスにstatus IDの文字列である「id_str」が含まれるようになりました。<br />
2週間という短い期間での移行、そもそも告知自体知らない人も多かったかも知れませんが、対応せず「id」の値を利用していた場合不具合が生じる場合があります。</p>
<p>言語、OSによって内部で利用するstatus IDである「id」の型が異なると思いますが、32bitOS環境のPHPでJSONのデコードにjson_decode関数を利用している場合、「id」はfloat型としていました。<br />
float型、浮動小数点数はマニュアルにあるように、<a href="http://jp.php.net/manual/ja/language.types.float.php">およそ 10 進数で 14 桁の精度</a>であり、新しいstatus IDは正確には扱えず以下のようになります。</p>
<pre>
$ php -r 'var_dump(1036396793962496);'
float(1.0363967939625E+15)
</pre>
<p>この値をMySQLのinteger型に保存すると、1036396793962500となります。</p>
<p>対策として、「id」ではなく「id_str」を利用するのですが、修正箇所が多く容易ではなかったため、一時しのぎとして取得したJSONに手を加え、「id」自体を文字列型として扱うことにしました。</p>
<pre>
$json = preg_replace('/"(id|in_reply_to_status_id)":(\d+)/', '"$1":"$2"', $json);
</pre>
<p>ツイート文字列にも影響がありますが、まず無いであろうと思われる文字列と、近いうちに「id_str」を利用するよう修正するということで。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2308/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>twitpicへの画像投稿</title>
		<link>http://blog.cheki.net/archives/2300</link>
		<comments>http://blog.cheki.net/archives/2300#comments</comments>
		<pubDate>Sat, 30 Oct 2010 12:26:05 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[twitpic]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2300</guid>
		<description><![CDATA[twitter利用時に画像ストレージとして利用されることが多いTwitPic。 以前は、twitterのID、パスワードを投げる仕様でしたが、OAuth対応後は、token、keyを投げる仕様となっていました。 toke [...]]]></description>
			<content:encoded><![CDATA[<p>twitter利用時に画像ストレージとして利用されることが多いTwitPic。<br />
以前は、twitterのID、パスワードを投げる仕様でしたが、OAuth対応後は、token、keyを投げる仕様となっていました。<br />
token、keyをまんま投げたら認証キーを削除できる程度で、ID、パスワード投げるのと変わらないんですけどね。</p>
<p><a href="http://dev.twitpic.com/docs/2/upload/">TwitPic Developers &#8211; API Documentation &#8211; API v2 » upload</a></p>
<p>v2ではtwitterとOAuth認証で利用するヘッダを「X-Verify-Credentials-Authorization」として、リクエストURIを「X-Auth-Service-Provider」としてヘッダに含めることでAPIを利用できるようになりました。</p>
<p>以下、PEAR::HTTP_Request2とPEAR::HTTP_OAuthを利用したサンプル。</p>
<pre>
&lt;?php
require_once &#039;HTTP/OAuth/Consumer.php&#039;;

define(&#039;OAUTH_CONSUMER_KEY&#039;,    &#039;xxxx&#039;);
define(&#039;OAUTH_CONSUMER_SECRET&#039;, &#039;xxxx&#039;);
define(&#039;OAUTH_TOKEN&#039;,           &#039;xxxx&#039;);
define(&#039;OAUTH_TOKEN_SECRET&#039;,    &#039;xxxx&#039;);
define(&#039;TWITPIC_KEY&#039;,           &#039;xxxx&#039;);

try {

  $consumer_request = new HTTP_OAuth_Consumer_Request();
  $consumer_request-&gt;accept(new HTTP_Request2());

  $consumer = new HTTP_OAuth_Consumer(OAUTH_CONSUMER_KEY,
                                      OAUTH_CONSUMER_SECRET,
                                      OAUTH_TOKEN,
                                      OAUTH_TOKEN_SECRET);
  $consumer-&gt;accept($consumer_request);
  $resp = $consumer-&gt;sendRequest(&#039;https://api.twitter.com/1/account/verify_credentials.json&#039;, array(), HTTP_Request2::METHOD_GET);

  $headers = $consumer-&gt;getLastRequest()-&gt;getHeaders();

  $http_request = new HTTP_Request2();
  $http_request-&gt;setHeader(&#039;X-Auth-Service-Provider&#039;, &#039;https://api.twitter.com/1/account/verify_credentials.json&#039;);
  $http_request-&gt;setHeader(&#039;X-Verify-Credentials-Authorization&#039;, $headers[&#039;authorization&#039;]);
  $http_request-&gt;setUrl(&#039;http://api.twitpic.com/2/upload.json&#039;);
  $http_request-&gt;setMethod(HTTP_Request2::METHOD_POST);
  $http_request-&gt;addPostParameter(&#039;key&#039;, TWITPIC_KEY);
  $http_request-&gt;addPostParameter(&#039;message&#039;, &#039;test&#039;);
  $http_request-&gt;addUpload(&#039;media&#039;, &#039;/path/to/image&#039;);
  $resp = $http_request-&gt;send();
  $body = $resp-&gt;getBody();
  $body = json_decode($body);

  var_dump($body);

} catch (Exception $e) {

  var_dump($e-&gt;getMessage());

}
</pre>
<p>twitterとのOAuth認証に必要なAuthorizationヘッダを生成するだけでよいので、実際はtwitter側にリクエストする必要はないのですが、ソース読んだところいろいろ面倒なのでとりあえずこんな形で。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2300/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEAR::Services_Twitterのパッチ</title>
		<link>http://blog.cheki.net/archives/2218</link>
		<comments>http://blog.cheki.net/archives/2218#comments</comments>
		<pubDate>Tue, 24 Aug 2010 10:22:28 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2218</guid>
		<description><![CDATA[Services_Twitter_r302262.diff 7904 byte [md5] 89930ad5cf340af7a101ed74261d4a34 修正 sendOAuthRequest()メソッドでHTTP_ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.cheki.net/Services_Twitter_r302262.diff">Services_Twitter_r302262.diff</a><br />
7904 byte<br />
[md5] 89930ad5cf340af7a101ed74261d4a34</p>
<p>修正<br />
sendOAuthRequest()メソッドでHTTP_OAuth_Exceptionがthrowされる問題<br />
serchメソッドでhttp://search.twitter.comを利用しない問題<br />
blocks/createメソッドでuser_id、screen_nameを指定できない問題<br />
blocks/destroyメソッドでuser_id、screen_nameを指定できない問題<br />
テストでOAuthの場合sourceはアプリケーションになる問題<br />
テストでutf8テストが二重投稿になる問題<br />
テストでOAuthの場合オブジェクトがHTTP_OAuth_Consumer_Responseになる問題</p>
<p>追加<br />
blocks/bloking/idsメソッド (call $t->blocks->blocking_ids())</p>
<pre>
$ svn export -r 302262 http://svn.php.net/repository/pear/packages/Services_Twitter/trunk Services_Twitter
$ wget http://blog.cheki.net/Services_Twitter_r302262.diff
$ cd Services_Twitter
$ patch -p0 < ../services_twitter.diff
patching file Services/Twitter.php
patching file data/api.xml
patching file tests/900-exceptions.phpt
patching file tests/910-options.phpt
patching file tests/920-utf8.phpt
patching file tests/data/utf8-2.dat
patching file tests/setup.php
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2218/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEAR::Services_Twitterをforkした</title>
		<link>http://blog.cheki.net/archives/2207</link>
		<comments>http://blog.cheki.net/archives/2207#comments</comments>
		<pubDate>Wed, 18 Aug 2010 17:35:58 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2207</guid>
		<description><![CDATA[Services_Twitter 以前パッチが取り込まれたけど、Basic認証でしか確認してなくて、OAuthだとDELETEメソッドで問題がでてました。 その他なんか迷走してる感じだったので、パッチ送りたいなとPEAR [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pear.php.net/package/Services_Twitter/">Services_Twitter</a><br />
以前パッチが取り込まれたけど、Basic認証でしか確認してなくて、OAuthだとDELETEメソッドで問題がでてました。<br />
その他なんか迷走してる感じだったので、パッチ送りたいなとPEARアカウントを取得しようと申請したのですがレスポンスがないので、とりあえずgithubにぶち込んだ次第です。<br />
バグレポートもパッチ投げるにもPEARアカウントないと半匿名な感じになるので。</p>
<p><a href="http://github.com/cockok/Services_Twitter">cockok&apos;s Services_Twitter at master &#8211; GitHub</a></p>
<p>リリース最新は0.6.2ですが、trunkが変更されてたのでそちらをfork。<br />
あいきゃんとすぴーくいんぐりっしゅ。<br />
もちろん書くのも。</p>
<p>ちなみに、DELETEメソッドででる問題は、RFC2616に以下のようなところ。</p>
<blockquote><p>The DELETE method requests that the origin server delete the resource identified by the Request-URI.<br />
<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7">HTTP/1.1: Method Definitions</a></p></blockquote>
<p>こっちはPEAR::HTTP_OAuthの問題。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2207/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPでクライアントベースのOAuth認証</title>
		<link>http://blog.cheki.net/archives/2193</link>
		<comments>http://blog.cheki.net/archives/2193#comments</comments>
		<pubDate>Fri, 06 Aug 2010 19:32:17 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2193</guid>
		<description><![CDATA[まさに誰得。 ブラウザベースは情報いっぱいあったんだけど、クライアントベースが見つからなかったので。 取得したaccess_token、access_token_secretを利用の仕方は下記で。 PEAR::HTTP_ [...]]]></description>
			<content:encoded><![CDATA[<p>まさに誰得。<br />
ブラウザベースは情報いっぱいあったんだけど、クライアントベースが見つからなかったので。<br />
取得したaccess_token、access_token_secretを利用の仕方は下記で。<br />
<a href="http://blog.cheki.net/archives/1630">PEAR::HTTP_OAuthでxAuth – ぱんぴーまっしぐら</a></p>
<pre>
#!/usr/bin/env php
&lt;?php
require_once &#039;HTTP/OAuth/Consumer.php&#039;;

define(&#039;CONSUMER_KEY&#039;,    &#039;xxxxxxxxxxxxxxxxxxxx&#039;);
define(&#039;CONSUMER_SECRET&#039;, &#039;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#039;);

try {

  $http_request = new HTTP_Request2();
  $http_request-&gt;setConfig(&#039;ssl_verify_peer&#039;, false);

  $consumer_request = new HTTP_OAuth_Consumer_Request();
  $consumer_request-&gt;accept($http_request);

  $consumer = new HTTP_OAuth_Consumer(CONSUMER_KEY, CONSUMER_SECRET);
  $consumer-&gt;accept($consumer_request);

  $consumer-&gt;getRequestToken(&#039;http://twitter.com/oauth/request_token&#039;);
  $url = $consumer-&gt;getAuthorizeUrl(&#039;http://twitter.com/oauth/authorize&#039;);

  if (!$stdin = fopen(&#039;php://stdin&#039;, &#039;r&#039;)) {
    throw new Exception(&#039;stdin open failed&#039;);
  }

  echo &#039;Visit the following URL in your browser to authenticate twitter: &#039;;
  echo $url.&quot;\n&quot;;
  echo &#039;Enter Twitter OAuth PIN: &#039;;
  $pin = trim(fgets($stdin, 64));
  $consumer-&gt;getAccessToken(&#039;http://twitter.com/oauth/access_token&#039;, $pin);

  echo &#039;access_token: &#039;.$consumer-&gt;getToken().&quot;\n&quot;;
  echo &#039;access_token_secret: &#039;.$consumer-&gt;getTokenSecret().&quot;\n&quot;;

} catch (Exception $e) {

  echo $e-&gt;getMessage().&#039; in &#039;.$e-&gt;getFile().&#039; line &#039;.$e-&gt;getLine().&quot;\n&quot;;
  exit(1);

}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2193/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ツイート非公開時のTwitterAPIの挙動</title>
		<link>http://blog.cheki.net/archives/2171</link>
		<comments>http://blog.cheki.net/archives/2171#comments</comments>
		<pubDate>Tue, 20 Jul 2010 08:26:29 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2171</guid>
		<description><![CDATA[ツイート非公開時のTwitterAPIの挙動が一部違う。 ツイート非公開時に、取得しようとした時、共通のエラーが返されるAPI一覧。 Retweet周りは触ったことがないので、知っている限り。 Twitter API W [...]]]></description>
			<content:encoded><![CDATA[<p>ツイート非公開時のTwitterAPIの挙動が一部違う。</p>
<p>ツイート非公開時に、取得しようとした時、共通のエラーが返されるAPI一覧。<br />
Retweet周りは触ったことがないので、知っている限り。</p>
<p><a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-user_timeline">Twitter API Wiki / Twitter REST API Method: statuses user_timeline</a><br />
<a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends">Twitter API Wiki / Twitter REST API Method: statuses friends</a><br />
<a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0followers">Twitter API Wiki / Twitter REST API Method: statuses followers</a><br />
<a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-favorites">Twitter API Wiki / Twitter REST API Method: favorites</a></p>
<p>返ってくるステータスコード</p>
<pre>401</pre>
<p>返ってくる文字列</p>
<pre>Not authorized</pre>
<p>statuses showだけ返る結果が違うので注意が必要。<br />
<a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0show">Twitter API Wiki / Twitter REST API Method: statuses show</a></p>
<p>返ってくるステータスコード</p>
<pre>403</pre>
<p>返ってくる文字列</p>
<pre>Sorry, you are not authorized to see this status.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2171/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Services_Twitter::sendOAuthRequest</title>
		<link>http://blog.cheki.net/archives/2137</link>
		<comments>http://blog.cheki.net/archives/2137#comments</comments>
		<pubDate>Wed, 14 Jul 2010 03:30:41 +0000</pubDate>
		<dc:creator>cockok</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.cheki.net/?p=2137</guid>
		<description><![CDATA[Services_Twitter::sendOAuthRequestではHTTP_Request2_Exceptionをcatchしていますが、実際はHTTP_OAuth_Exceptionをcatchしなきゃいけない。 [...]]]></description>
			<content:encoded><![CDATA[<p>Services_Twitter::sendOAuthRequestではHTTP_Request2_Exceptionをcatchしていますが、実際はHTTP_OAuth_Exceptionをcatchしなきゃいけない。</p>
<p>Services_Twitterはベーシック認証周りは大丈夫だと思いますが、OAuth周りはまともにテストされてないので、結構バグあります。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cheki.net/archives/2137/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

