創作文芸見本誌会場HappyReadingに書誌情報APIを実装しました

2016/1/20 [23:35:34] (水) 天気

APIといえるかどうかはともかく。

創作文芸同人誌のプレビュー・立ち読みサイトのHappyReadingの作品ページに掲載されている書誌情報をXMLで提供するようにしました。

『創作文芸見本誌会場HappyReading』http://books.doncha.net/happy-reading/


今さらですが、HappyReadingはけっこうな量の入力項目があります。

にも関わらず登録いただいてるので、入力された情報をHappyReading以外(たとえばサークルや個人のサイト)で使えれば、読者さんへの告知の幅も手軽に広げることができるのではないかということでXML。


平たく言っちゃうと、自分のサイトやブログでも紹介したいのにまた同じことを書くのは面倒くさい!ということでXMLでの情報取得のAPIもどきをでっち上げました。


XMLで提供する登録情報は以下

image

・HappyReadingのページURL

・登録したアカウントID

・本のID

・タイトル

・発売日

・ページ数

・判型

・印刷形式

・頒布価格

・キャッチ

・著者(イラストレーター、編集者、デザイナーなど)

・サークル名

・サイト

・サイトURL

・アマゾンのASIN

・カテゴリ

です。

※表紙画像や立ち読みの情報は提供していません。


http://books.doncha.net/xml.pl?bookid=839

↑このURLにbookidを指定してアクセスすると書誌情報のXMLを返します

(Firefoxなどでアクセスしてもらえるとどんなものか見えます)


http://books.doncha.net/happy-reading/detail.pl?uid=14879977&bookid=839

↑bookidというのはHappyReadingの作品個別ページのURLのbookidのことです。


このXMLを取得してページに合わせて加工することになります。


http://books.doncha.net/happy-reading/detail.pl?uid=14879977&bookid=566

このHappyReadingのページのXMLをperlで取得、アレンジして表示したのが以下です。

image

http://hino-yutaro.doncha.net/?happyreading=566

※表紙画像と立ち読みは別途用意してます。


phpやperlを使って取得&加工するのが手っ取り早いですが、javascriptが使えればHappyReadingのXMLを取得できます。


はてなやFC2といったブログの場合は「HTML編集」などにしてページの好きな場所に以下のコードをコピー&ペーストすればXMLを取得してページに表示します。

先頭の「data-book="XXX"」の部分にHappyReadingのbookidを記入。


<ul id="happy-reading" data-book="XXX"></ul>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript" src="http://books.doncha.net/happy-reading/xml-happy-reading.js"></script>
<script type="text/javascript">getHappyReading();</script>


「はてなブログ」で確認。

・「編集 見たまま」でアップロードした画像を貼り付けたり、記事を作ります。

・「HTML編集」でHappyReadingの登録情報を掲載したい部分に上記のコードを(bookidを記入して)貼り付けます。

image

・「プレビュー」

image

素気ないリストでの表示なので、スタイルシートでデザインします。

・id が #happy-reading のリスト(ul)となっていて。

liに「title」「creator」「size」「printing」「pages」「price」「published」「category」「catch」「circle-name」「site-url」「amazon」「to-happy-reading」というクラスをつけてます。

表示or非表示や文字サイズ、色などをCSSでカスタマイズできます。

(わたしはデザイン力がないのでテンプレートを作る気力が…)



ハマったところがあったんでメモ。


Javascript、ajaxで別ドメインにあるXMLを取得するためにはjQuery側とサーバー側で設定が必要だった。


・jQueryのajaxのパラメータ「crossDomain」を true にする。

・サーバー側(今回の場合xml.pl)スクリプトのHTTPヘッダに

「Access-Control-Allow-Origin:*」

「Access-Control-Allow-Headers:Origin, X-Requested-With, Cotent-Type, Accept」

の2行が必要だった。


(スクリプトに付加したヘッダはなにやらセキュリティ的に不穏な感じなので、formデータのチェックを厳密にしておいた)

<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031
検索:

【最近の20件】