2010年8月30日月曜日

ubuntu 10.04 + emobile D02HW

まず結論。
ううまくいきません。

USBに接続してもデバイスを認識せず。ストレージとしては認識できてるから、何かあるんだろうね。
ノートにubuntu入れてモバイル通信できる環境にしたいのに、全然無理ッス。
とりあえず、野良wlanポイント探すしか。

twitter::update_profile_image で 500エラー

うーん。最新版のtwitterライブラリに更新したらLIST機能が使えたのは僥倖。

しかし、プロフィール画像の更新がうまくいかない。
関数は、画像ファイルへのパスを渡して呼び出すだけの簡単仕様。
なのに、呼び出しても 「500 Internal server error」が返ってくるだけで更新されない。
Google先生によると、うまくできてる例はいっぱいあるのに。

ライブラリのバグかなぁ・・・・?

2010年8月17日火曜日

MovableType XMLRPC-API で投稿してみる!

基本は FC2ブログと同じなので、まぁ問題ないかと思いますが、問題がいくつか。
マニュアルがわかりにくいってのが問題なんだけど、MovableTypeのblogIdとパスワードについて。

blogIdってのは、MovableTypeの管理ツールを端から端まで見て回ってもどこにも書いてませんでした。
なので、blog作成して、そのblogの管理画面を開いたときにURLに付いてるパラメータを参照します。
たとえば、
http://サイトURL/mt.cgi?__mode=view&_type=entry&id=3&blog_id=3
こんな感じ。
"blog_id=3"って書いてあるから、ここでは"3"がblogIdになります。
あと、パスワードは管理画面にログインするパスワードではない。
システム>ユーザー>WEBサービスパスワード
で設定したパスワードを指定します。

これでPOSTできるようになった。
ただ、今のところ、
metaWeblog.newPost
を使ってるんだけど、投稿日時が1月1日になっちゃう。

で調べてみたところ、
http://www.na.rim.or.jp/~tsupo/program/blogTool/mt_xmlRpc.html
ここの情報で
dateCreated は、ISO.8601 形式で表記してください (ただし、省略することも可能です。 省略した場合は現在時刻を指定したものとみなされます)。
 なんだそうな。
2008-05-16T11:25:30+09:00
みたいな表記にしないといけないらしい。
めんどくさいから省略しちゃお。

2010年8月4日水曜日

アメブロへの投稿 via API

WSSEヘッダの生成でハマったのでメモ。

最初、前任者が livedoorへの投稿で使ってたやり方を踏襲して、

$nonce       = pack('H*', sha1(md5(time().rand().uniqid())));
$created     = date('Y-m-d\TH:i:s\Z');
$digest      = base64_encode(pack('H*', sha1($nonce . $created . strtolower(md5($password)))));
$wsse_text   = 'UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"';
$wsse_header = sprintf($wsse_text, $username, $digest, base64_encode($nonce), $created);

ってやってた。そしたら全然401エラーから先に進まないの。
参考になるサイトみても、理論上間違ってないし、これで通らない理由がわからん。
で、ふと気付いて。
$nonceの値、なんでこんなややこしいやり方で作ってんの?
どうにも不可思議だったので、極力シンプルに、

$nonce = sha1(md5(time()));
にしてみた。

・・・・・・・・・・・・ 認証通った。


なんじゃそりゃーーーー!!!!!

つわけで、今は記事投稿したら 403になるエラーに遭遇してハマっております。
困ったもんだ。

ブログ API のエンドポイント

 http://sozai.7gates.net/blog/docs/blogapi/
こんだけ集めてくれてると便利。
以下魚拓コピー。

●XML-RPC

goo ブログのエンドポイント
 http://blog.goo.ne.jp/xmlrpc.php
PwBlogのエンドポイント http://www.pwblog.com/xmlrpc
DTI ブログのエンドポイント http://blog.dtiblog.com/xmlrpc.php
FC2 ブログのエンドポイント http://blog.fc2.com/xmlrpc.php 
NetLaputa ブログのエンドポイント http://blog.netlaputa.ne.jp/rpc/mt-xmlrpc.cgi
News-Handler http://blog.nettribe.org/xmlrpc.php
Seesaa ブログのエンドポイント
http://blog.seesaa.jp/rpc (ssl経由は https://ssl.seesaa.jp/blog/rpc 
ココログのエンドポイント http://app.f.cocolog-nifty.com/t/api
ドリコムのエンドポイント http://blog.drecom.jp/api/xmlrpc
269gのエンドポイント http://269g.jp/rpc
プチモールブログのエンドポイント http://www.petitmall.jp/xmlrpc.php
News Handlerのエンドポイント http://blog.nettribe.org/xmlrpc.php
JUGEMのエンドポイント http://*****.jugem.jp/admin/xmlrpc.php
wordpress.comのエンドポイント http://ユーザー名.wordpress.com/xmlrpc.php
ヤプログのエンドポイント http://www.yaplog.jp/xmlrpc
ブログ人のエンドポイント http://app.blog.ocn.ne.jp/t/api xml-rpc形式
さくらのブログのエンドポイント http://blog.sakura.ne.jp/rpc/
so-net ブログのエンドポイント
http://blog.so-net.ne.jp/_atom/blog (記事用)
http://blog.so-net.ne.jp/_atom/image(画像用)

MovableTypeのエンドポイント
http://ドメイン/mtディレクトリ/mt-xmlrpc.cgi
XOOPSのエンドポイント
http://ドメイン/XOOPSのディレクトリ/modules/wordpress/xmlrpc.php
Nucleusのエンドポイント
http://ドメイン/nucleusディレクトリ/xmlrpc/server.php
WP(Word Press)のエンドポイント
xmlrpc.php までのパス ブログのURL/xmlrpc.php


●Atom (REST SOAP)
 
ライブドアのエンドポイント http://cms.blog.livedoor.com/atom
ブログ人のエンドポイント https://app.blog.ocn.ne.jp/t/atom/weblog atom形式
Bloggerのエンドポイント https://www.blogger.com/atom
アメブロのエンドポイント http://ameblo.jp/servlet/_atom/blog


参考:MT実装のXML-RPCメソッド
http://www.sixapart.jp/movabletype/manual/3.2/mtmanual_programmatic.html

2010年8月3日火曜日

simple_xml + serialize

いつもー苦労する。
SimpleXMLクラスってなんであんなに使いにくいの!
使いにくい一番の原因は serializable じゃない、って事。

twitterのAPI叩いてStatusをxmlで取得するんだけど、普通にこれをDBに保存しときたいのね。
で、毎回、この変なクラスからスタンダードな、シリアライズできるオブジェクトに変換する関数を書いてたんだけど。ここにきれいに書かれてるソースがあったから、メモ。
http://techblog.yahoo.co.jp/web/yahoo/post_1/

ちゃんと使えそうであります。

(注)
最近は、serializeを使った簡単クラス変換 でやってますwww