ブログサービスからブログ出版局へのデータのアップロード方法
- Posted by: gnn • 2007/12/02
概要
ブログ出版局には、ブログサービスのプログラムから直接ブログデータをアップロードするための窓口が用意されています。 これを利用することで、ブログサービスのユーザーが一旦ブログデータファイルをダウンロードしてブログ出版局にアップロードする、という手間を省くことができます。
実装例としてMovableType 4向けのプラグインが用意されています。
データの送信方法
以下のアドレスにHTTP multipart/form-data形式(RFC2388)でPOSTしてください。各パラメータはUTF-8でエンコーディングしてください(ブログデータ本体を除く)。
http://print.cssj.jp/2/info/if/incomming.php
ファイル
必ず1つ以上のブログデータファイルを送信する必要があります。
ファイルは data_file というパラメータ名で送信してください。
ZIPで圧縮したファイルを送ることもできます。 Content-Typeがapplication/zipであるか、ファイル名が.zipで終わる場合ZIPファイルと認識されます。
複数のファイルを送る場合はパラメータ名を data_file[] としてください。 なお、ZIPファイルを複数送ること、ZIPファイルとZIP形式以外のファイルを混ぜて送ることはできません。
パラメータ
以下のパラメータを適宜加えてください。パラメータはいずれも省略可能です。
パラメータ名 | デフォルト | 説明 |
---|---|---|
encoding | UTF-8 | ブログデータのキャラクタ・エンコーディング "UTF-8", "EUC-JP", "Shift_JIS", "ISO-2022-JP"が利用可能です。 |
uri | ブログURL | |
title | ブログの題名 | |
author | 著者名 | |
mail_address | メールアドレス | |
return | ブログサービスへの戻り先URL |
|
domain | ブログサービス識別用文字列 | |
mode | 1 | 連携モード("1", "2"または"3") |
encodingはブログデータのキャラクタ・エンコーディングをブログ出版局が正しく認識するためのものです。
uri, title, author, mail_addressは、ブログ出版局の見本作成ページで、最初から入力された状態にするためのものです。省略した場合は空欄になるか、あるいはCookieに保持されたデータから以前の入力が復元されます。
見本PDFが作成された時、あるいはエラー発生時にデータを再登録するためのページへのリンクがお客様に案内されますが、通常はブログ出版局の見本作成ページに誘導されます。ブログシステムの管理画面など、別のページに誘導したい場合は、returnパラメータにそのページのURLを入れておいてください。
domainはアフィリエイト等のために、呼び出し元ブログサービスを弊社が識別できるようにするためのものです。通常は、ブログサービスのドメイン名(foo.com等)を入れてください。
modeは、省略するか"1"の場合はブログ出版局のサイトで、利用者がレイアウトオプションを設定します。modeを"2"または"3"に設定すると、ブログサービス側で本のレイアウトオプションの設定画面を用意することが出来ます。詳細は、本文レイアウトオプションの送信の解説をご覧下さい。
送信後の処理
ファイルの送信後、ブログ出版局側の処理結果はUTF-8エンコーディングのXML形式で返されます。 POSTに対するレスポンスは以下のいずれかです。
エラーの場合
<?xml version="1.0"?> <response> <error>1</error> <message>[エラーメッセージ]</message> </response>
エラーの場合、ブログサービスは[エラーメッセージ]の内容をユーザーに表示してください。
成功した場合
<?xml version="1.0"?> <response> <error>0</error> <redirect>[URL]</redirect> </response>
成功した場合、ブログサービスはリダイレクト等の手段で[URL]のアドレスに利用者を誘導してください。
multipart/form-dataの実装に関する情報
HTML
手っ取り早くテストする場合は、次のようなHTMLファイルを用意し、手元のブラウザで表示してください。
<form action="http://print.cssj.jp/2/info/if/incomming.php" method="post" enctype="multipart/form-data"> mode: <input type="text" name="mode" value="1" /> encoding: <input type="text" name="encoding" value="UTF-8" /><br /> data_file: <input type="file" name="data_file" /><br /> <button type="submit">送信</button> </form>
Perl
LWP::UserAgentが利用できます。
MovableType 4向けのプラグインは実際このライブラリを使っています。プラグインに含まれるlib/PrintCSSJ.pmのコードを流用して頂いても構いません。
PHP
PEAR HTTP_Requestが利用できます。
Java
Apace HTTP Clientを利用できます。
その他
cURLをコマンドラインで実行する方法があります。