2006/11/29

[技術系]   blogサービスに投稿するXML-RPC API関連情報

at 17:21JST
Seesaa BLOGだけでなくMovable Typeとかにも共通する話だが。けっこうまとまってる情報がないような気がする。

さくっとググってまとめてみた。つーか、デスクトップに溜まるショートカットの整理用。

・XML-RPCでのblogへのアクセス

XML-RPCという通信手順を土台に、各サービスに用意されているAPIを利用するとblogへの記事投稿などが可能になる。APIは歴史的な背景から
- Blogger XML-RPC API
- metaWeblog XML-RPC API
- Movable Type XML-RPC API
があり、これらを組み合わせて使う。ただし、どのAPIに対応しているかはサービスによって異なる。

各サービスの対応APIは mt.supportedMethods で問い合わせることで確認できる。
http://memo.hirosiki.jp/article/28518030.html

・標準的なAPI

ふつうはだいたい下記のものに対応している。

Movable Type 3.2 プログラミングインターフェイス
http://www.sixapart.jp/movabletype/manual/3.2/mtmanual_programmatic.html

英語版にはPerlのサンプルコードがある。

Six Apart Developer Documentation - Movable Type API
http://www.sixapart.com/developers/xmlrpc/movable_type_api/

metaWeblogのAPIはMSN Spaceが対応している関係かMSDNが詳しい。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msnspaces/MetaWeblogAPI_Introduction.asp

・Perlでの利用

PerlではXMLRPC::Liteモジュールを使う(モジュールはもうひとつあるが不評)。

PODを読みましょう。
http://search.cpan.org/~kulchenko/SOAP-Lite-0.55/lib/XMLRPC/Lite.pm

・API呼び出し用のエンドポイント

各サービスでAPIを呼び出すには、呼び出し用エンドポイントのURLを知る必要がある。

Seesaaの場合はココ:
http://info.seesaa.net/article/443093.html

・そのほかサンプル

metaWeblog.newPostメソッドのMovable Type拡張あたりとかよくわかんないときは下記のスクリプトを参考に。最後の引数がハッシュだったり、日付がフォーマット必要だったりするので。

「旅行びと日記」日記: はてブのブックマークを自動的にBlogへ投稿するスクリプト
http://tdiary.seesaa.net/article/14158954.html

[技術系]   管理blogの一覧とカテゴリ一覧を取得する

at 12:08JST
けっこうめんどうだな、おい。というか、perlのハッシュの使い方で混乱して泣きそうになっただけなんだけど。

これを永続化しておいて使う、簡単な投稿フロントエンド画面をつくろう。

#!/usr/bin/perl

# in EUC-JP, LF にほんご

use XMLRPC::Lite;
use Data::Dumper;
use Unicode::Japanese qw(unijp);
use FileHandle;

#eval {
my $C = GetIniConfig( 'showcats.ini' );
#die( "No config file" );

# 管理blog一覧取得
my $refBlogs = XMLRPC::Lite
->proxy( $C->{endpoint} )
->call(
'blogger.getUsersBlogs',
'nonesense', # APIkey
$C->{userid},
$C->{password},
)->result;
my $blogs;
foreach my $h ( @$refBlogs ) {
my $id = $h->{blogid};
$blogs->{ $id }->{name} = unijp( $h->{blogName} )->euc;
$blogs->{ $id }->{url} = $h->{url};
# カテゴリ取得
my $refCategories = XMLRPC::Lite
->proxy( $C->{endpoint} )
->call(
'mt.getCategoryList',
$id,
$C->{userid},
$C->{password},
)->result;
foreach my $i ( @{$refCategories} ) {
$i->{categoryName} = unijp( $i->{categoryName} )->euc;
}
$blogs->{ $id }->{cats} = $refCategories;
# @{$blogs->{ $id }->{cats}}
# = [ { categoryId, categoryName } ... ]
}
#keys( %{$blogs} )
#};
if ( $@ ) {
print "ERROR: $@\n";
}
exit( 0 );

sub Slurp {
my $fn = shift @_;
my $str = do {
local $/;
my $fh = FileHandle->new( $fn, 'r' );
local $_ = <$fh>;
$_;
};
$str =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
return $str;
}

sub GetIniConfig {
my $fn = shift @_;
my $cnt = Slurp( $fn );
my $C;
foreach my $line ( split( /\n/, $cnt ) ) {
$line =~ s/^\s+//;
$line =~ s/\s+$//g;
my( $k, $v ) = split( /\s*=\s*/, $line );
$C->{$k} = $v;
}
return( $C );
}

[技術系]   Seesaa BLOGのXML-RPC対応

at 09:14JST
って、エンドポイントURLすら情報がきちんと掲載されてないってどないやねん! …サポートしたくないんだろうなあ。

ここにしか書いてない。

ubicastBloggerがSeesaaブログに正式対応しました
http://info.seesaa.net/article/443093.html

#!/usr/bin/perl
use XMLRPC::Lite;
use Data::Dumper;
print
Dumper(
XMLRPC::Lite
->proxy( 'http://blog.seesaa.jp/rpc' )
->call(
'mt.supportedMethods',
)->result
);
print "\n";


[技術系]   feedpathテスト

at 08:17JST
って、あいかわらずfeedpathのバナーが入るんだろうなあ…。 どうなってるだろ。
  generated by feedpath
やっぱ入るなあ。 ビジネスだからしかたないとは言え、これじゃ使い物にならないんだってば…。どこの世界に、ノートに勝手に広告書き込む鉛筆があるよ。 自分でXML-RPC叩くスクリプトを書こう…。

[雑記]   910SHの80番ポート規制

at 04:25JST
やっぱり910SHの内蔵ブラウザでは80番ポートにしか接続できない。まあ、しばらく忘れてたがコレはJ-フォン時代からの制限だからしかたないだろう。

ウチは緊急時にケータイからWindowsサーバのデスクトップをいじれるよう
pink
というツールを使っている。これのHTTPサーバが80番以外を利用しているのでちょっと困る。

しかたないので別の80番で待ち受けているApacheからproxyで仲介することにした。

ProxyPass / http://pink:ポート番号/

するだけだけど。

うまくアクセスできるようになった。ApacheがcoLinux上なのでパフォーマンスがあやしいんだけど、この程度は問題なさそう。

[雑記]   高級ミントはマズい

at 03:30JST
久しぶりに脳内彼女とカフェーでデートしてきた。

20061129mage004.jpg

ここ、来るたびに後悔するんだけど、ケーキがあんまりおいしくないんだよね。モンブランは異常に甘いし、このブルーベリータルトは一口食べるたびにベリーの粒が歯に挟まって悲惨なことになる。単に、よみうりホールのわきにあるがゆえに貸し切りが多いせいで続いてるだけなんじゃないかと。

で、お会計してたらレジの脇に
「ヒントミント」
というミントがあるのを発見。
「おお! これは!」

あれですよ。なんか「セレブ御用達」とかいうケーハクな文句で静かな話題を呼んでいた、アメリカ製高級ミントですよ。ちょっと前は一部のお店でしか通販してなかったのだが。ついでに買って帰る。

20061129mage005.jpg

…んー。パッケージはイイんだけどねえ。

あんまりおいしくなかった。ミント粒が固くて。舐めてるだけじゃ刺激が出ないし。かといって歯でかみ砕くと痛い。

通販でバカ買いしなくてよかった。

[技術系]   910SHのHSIr≒IrSimple

at 03:08JST
Bluetoothで910SHからPCに1MBの画像を転送しようとしたら、途中でエラーが起きた…まじかよ。Class 1なのに…。遅いし…。

ということで、今度は
「赤外線転送でどうにかならんか」
というのを考えてみることにした。

910SHでは、データフォルダに
「HSIrで転送」
という選択肢が出てくる。これは

http://k-tai.impress.co.jp/cda/article/interview/31778.html
認証を得ていませんのでIrSimpleとは呼べませんが、仕様はIrSimpleと同じ4Mbpsの高速通信に対応し、同じプロトコルを使用していますので、「IrSimple」をサポートする機器との互換性は保っています。「IrSimple互換」ということですね


ということで未認証のIrSimpleらしい。

いままでは
「赤外線なんて、メモリーカードがあったら不要」
と思ってたのでフォローしてなかったけど、こいつならもっと快適に転送できるかもしれん。

報道発表資料 : 高速赤外線通信方式「IrSimple」が国際標準規格に採用
http://www.nttdocomo.co.jp/info/news_release/page/20050826.html

1Mの画像を1秒とうたってるしね。IrSimpleの提唱元はシャープなのか。

で、さっそくIrSimple対応のIrDA USBドングルを探してみたのだが…。

赤外線USBアダプター:VFIR/FIR準拠
http://www.cfcompany.co.jp/product/Actisys/ir4010-4020.htm

CFカンパニーのコレしかない。

IrSimpleは純粋にソフトウェアだけで対応可能なのでIrDAアダプタでドライバだけが更新されていればOKなのだけれど、

USB-ir 「Z'QUN」(ズ・キュン)
http://www.iodata.jp/prod/mobile/keitai/2003/usb-ir/

してないなあ…。

それに、よく読んだらCFのは
「IrSimple開発用SDKをおわけします」
ということらしい。

…写真転送するために、オレにドライバから書けというのか!!

つーことで、パソコンでIrSimpleのやりとりをするための環境は、
「実質ない!」
というのがわかった。

ひーん。

いや、まじでなんかソフトつくろうかな…。

というか、そこまでするならS!アプリでデータフォルダを参照して、巨大画像をネット経由転送するものを書いたほうがはやい気がしてきた。
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。