Archive

Posts Tagged ‘twitter’

PEAR::Services_Twitterのリスト対応

3月 1st, 2010

※3/2 更新
パッチファイル
http://blog.cheki.net/Services_Twitter.patch.gz

追加メソッド一覧

Methods                 Documentatation name        tests
----------------------- --------------------------- ---------------------------------------
trends/available                                    840-trends-available.phpt
trends/location                                     850-trends-location.phpt
lists/create            POST lists      (create)    153-lists-create-delete.phpt
lists/update            POST lists id  (update)     151-lists-update.phpt
lists/list              GET lists        (index)    150-lists-list.phpt
lists/show              GET list id      (show)     152-lists-show.phpt
lists/delete            DELETE list id (destroy)    153-lists-create-delete.phpt
lists/statuses          GET list statuses           160-lists-statuses.phpt
lists/memberships       GET list memberships        161-lists-memberships.phpt
lists/subscriptions     GET list subscriptions      162-lists-subscriptions.phpt

list_members/list       GET list members            181-list_members-list.phpt
list_members/create     POST list members           180-list_members-create-delete.phpt
list_members/delete     DELETE list members         180-list_members-create-delete.phpt
list_members/show       GET list members id         182-list_members-show.phpt

list_subscribers/list   GET list subscribers        191-list_subscribers-list.phpt
list_subscribers/create POST list subscribers       190-list_subscribers-create-delete.phpt
list_subscribers/delete DELETE list subscribers     190-list_subscribers-create-delete.phpt
list_subscribers/show   GET list subscribers id     192-list_subscribers-show.phpt

ファイル全部

http://blog.cheki.net/Services_Twitter.tar.gz

パッチは現段階での最新である295629に当ててください。

$ svn co -r 295629 http://svn.php.net/repository/pear/packages/Services_Twitter/trunk Services_Twitter
$ wget http://blog.cheki.net/Services_Twitter.patch.gz
$ gzip -d Services_Twitter.patch.gz
$ cd Services_Twitter
$ patch -p0 < ../Services_Twitter.patch
$ php tests/AllTests.php
PHPUnit 3.4.11 by Sebastian Bergmann.

..................................................

Time: 4 seconds, Memory: 10.25Mb

OK (50 tests, 0 assertions)

OK, but incomplete or skipped tests!
Tests: 50, Assertions: 0, Skipped: 1.

tests-config.phpセット後。

$ php tests/AllTests.php
PHPUnit 3.4.11 by Sebastian Bergmann.

..........S....F.......S.....S..........S.....F.S.

Time: 42 seconds, Memory: 10.25Mb

There were 2 failures:

1) /home/cockok/projects/Services_Twitter/tests/460-account-update_profile_image.phpt
--- Expected
+++ Actual
@@ @@
-bool(true)
+bool(false)

/home/cockok/projects/Services_Twitter/tests/AllTests.php:56
/home/cockok/projects/Services_Twitter/tests/AllTests.php:72

2) /home/cockok/projects/Services_Twitter/tests/470-account-update_profile_background_image.phpt
--- Expected
+++ Actual
@@ @@
-bool(true)
+あなたが設定した背景用の画像に問題があるようです。おそらく大きすぎです。 (code: 403, call: http://api.twitter.com/1/account/update_profile_background_image.json)

/home/cockok/projects/Services_Twitter/tests/AllTests.php:56
/home/cockok/projects/Services_Twitter/tests/AllTests.php:72

FAILURES!
Tests: 50, Assertions: 0, Failures: 2, Skipped: 5.

画像周りでエラーでてるけどもともと出てるんでシラン。

PHP , ,

TwitterAPIを利用したプロフィール画像更新はcontent-typeがimage/*じゃないとコケる

2月 3rd, 2010

TwitterAPIを利用したプロフィール画像更新はcontent-typeがimage/*じゃないとコケる。
正確にはステータス200が返ってくるけど、更新されないからもっとタチが悪い。

Twitter API Wiki / Twitter REST API Method: account update_profile_image
curl、rubyによるサンプルコードが載ってるけど、「Expect」ヘッダは不要。

PEAR公式のServices_Twitterを利用していたが、update_profile_imageが上手くいかない。
まだドキュメントが整理されていないので、ソースを読むかテストをみて、利用法を確認したが問題なし。
リクエストをトレースしてみたところ、content-typeが「application/octet-stream」だったのが気になったので「image/jpeg」にしてみたところ、画像の更新に成功。
PEAR::HTTP_Request2でmime-typeが取得できなかった場合、「application/octet-stream」がセットされていたというオチ。

pecl::Fileinfoかmime_content_typeを利用するようになっていたけど、–with-mime-magicとかコンパイル時に指定していなかった件。

PHP , ,

Services_Twitter

2月 3rd, 2010

PHPでtwitterを利用する場合にはServices_Twitterが便利です。
このServices_Twitterですが、公式のPEAR公式と野良(?)版が存在します。

openpear版はさっき見つけたけど、ちょっと使う気になれないので選択肢としてはPEAR公式か悠希さん版。
環境がCentOS5系、PHP5.1系だったので、悠希さん版を検討したのですが、CodeReposに入れられてるもののほとんど更新されておらず、APIが増えてる現状を考えると作業量的に厳しいということでPEAR公式を利用することに。

Services_Twitter-0.1.0 betaがリリースされたので日本のと比較してみた – 肉とご飯と甘いもの @ sotarok
この頃と状況は結構変わっていて、json必須ではない(でも速度の関係でpeclのjsonを利用)、HTTP_Request2でsocket通信とかになっています。
結構珍しい造りになっていて、api群はdata/api.xmlで管理されています。
pearコマンドを利用せずに利用する人は注意が必要。

PHP , ,

pecl_httpでtwitterのユーザータイムラインを取得する

1月 8th, 2009

先日のAM3:00以降のデータを取得する。

PHP
<?php
$request = new HttpRequest();
$request->setUrl('http://twitter.com/statuses/user_timeline.json');
$request->enableCookies();
$request->setOptions(array(
    'timeout' => 3,
    'httpauth' => 'user:passwd',
    'httpauthtype' => HTTP_AUTH_BASIC,
    'redirect' => 1,
    'unrestrictedauth' => true,
    'referer' => '',
    'useragent' => 'wp_twitter API/1.0',
    'compress' => true,
    'encodecookies' => true,
    'lastmodified' => mktime(0, 0, 3) - 60*60*24,
));
$request->setContentType('application/x-www-form-urlencoded');
$request->setMethod(HttpRequest::METH_GET);
$response = $request->send();
$json = $request->getResponseBody();
var_dump(json_decode($json));

via pecl_httpでtwitter
via Twitter API 仕様書 (勝手に日本語訳シリーズ)

PHP , ,