九龍的ヘブンズ・ドアー
mindia九龍的ヘブンズ・ドアー見出し語

mindia的技術文書

九龍 · 2010-07-29 更新 · 1 ポイント

極秘.png

概要

mindiaに関する非公式な技術文書
自分まとめ+誰かのために。

基本PHPです。

WordpressプラグインpublishToMindiaをリリースしたら、その時の開発を参考にmindiaをちょめちょめする情報を書いて行く予定。
色々やりながらの平行作業なので気長に御待ち下さい。

基本情報

mindiaに関する基本情報、URL、パラメータ、各所の情報。

URL

各URLの役割や意味、機能(ユーザ名は任意)。
例:http://mindia.jp/book/kowloon

(1)トップページ
http://mindia.jp/book/ユーザ名
ユーザのトップページ(プロフィール、ブックの説明など)が表示される。

(2)キーワード
http://mindia.jp/book/ユーザ名/keywords/num/数字
ユーザのキーワード一覧を表示。
数字部分は1〜60で指定可能、デフォルト値は40。
0を指定すると全一覧表示される(バグ?)。

http://mindia.jp/book/ユーザ名/keyword_edit/キーワード名
キーワード作成の編集画面を表示。
キーワード名は任意に変更可能(例キーワード名をtestにすればtestの編集画面になる)。

http://mindia.jp/book/ユーザ名/keyword_new
キーワード作成。
POSTデータとして下記のパラメータを付与。
__token :トークン(ソースにhideとして表記されている)
title :キーワード名
version :'0'を指定
body :本文
tags :タグ(¥r¥nを区切り文字として利用(未確認))
picture_1 :画像データ
picture_2 :画像データ
picture_3 :画像データ
quick_save:'更新'を指定

(3)日記
http://mindia.jp/book/ユーザ名/entries/display/show
ユーザの日記一覧を表示

(4)設定
http://mindia.jp/book/ユーザ名/pref
ユーザの設定(自信のユーザ名やパスワードを変更等々)

パラメータ

PHP

PHPで色々やってみる場合。
下記コードの戻り値やなんかをecho or print_rとかで動作をきちんと確認していくと理解が速いかもしれません。

ログイン

>|PHP|
<?php
/* ログイン__token取得 */
$options = array('http' => array(
'method' => 'GET',
));
$loginHtml = file_get_contents('http://mindia.jp/login', false, stream_context_create($options));
preg_match('/<input type="hidden" name="__token" value="(.*?)" id="form___token" \/>/', $loginHtml, $loginToken);

/* ログイン */
$data = array(
'__token' => $loginToken[1],
'password' => 任意のパスワード,
'preserve_key' => '0',
'ref' => '',
'submit' => 'ログイン',
'username' => 任意のユーザ名,
);
$options = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
));

file_get_contents('http://mindia.jp/login', false, stream_context_create($options));

$cookies = array();
foreach ($http_response_header as $r) {
if (strpos($r, 'Set-Cookie') === false) {
continue;
}
$c = explode(' ', $r);
$c = str_replace(';', '', $c[1]);
$cookies[] = $c;
}
/* マイページ */
$options = array('http' => array(
'method' => 'GET',
'header' => implode("\r\n", array(
'Cookie: ' . implode('; ', $cookies)
))
));
$userHtml = file_get_contents('http://mindia.jp/my', false, stream_context_create($options));

echo $userHtml;
?>
||<

大まかにログインする場合は

(1)ログイン画面をGETで取得
(2)取得したHTMLからトークン部分をスクレイピング
(3)トークン+その他情報をPOST

です、ログイン後はログイン時に返されるCookies情報をヘッダにつけて各ページを取得していきます。

キーワード登録

キーワード削除

キーワード編集

日記登録

日記削除

日記編集

関連Link

【本家】
http://mindia.jp/
【中の人達】
http://mindia.jp/book/nishiko
http://mindia.jp/book/satoko
http://mindia.jp/book/akkun
http://mindia.jp/book/ogiyasu
http://mindia.jp/book/takeshi_kato

関連する見出し語

コメント

西小倉パンデイロ · 2010-07-26

欲しいAPI形式とかってありますか~?
あとオフ会もよければ~!

九龍 · 2010-07-26

オフ会ドーナツ持参で参加したいんですけど、見事にバイトです。すんません。
10月までにはLLP作るので出来たら名刺持って遊びに行きます!てか行かせて下さいw

APIは欲しいのありまくりなんで、ちょっと考えてどっかに書いておきます。