Q&A サイトの情報表示

Yahoo知恵袋を任意のキーワードで検索し
ベストアンサーを表示するというもの
使うAPIは
質問検索API

Yahoo知恵袋
http://chiebukuro.yahoo.co.jp/
ここの質問を回答データから
キーワード検索して
マッチするQ&Aのデータを取得、表示する
カテゴリとか並び方もパラメータ指定できるため
サイトや記事に関連するキーワードで検索して
最新口コミ情報とかQ&Aサイトのようにできる
もう少しスキルがあがってくれば
おそらくはもっといろいろな情報収集ツールに改造できそう
アプリ開発とかweb サービス関連の開発のヒントになるかもしれない
ただ、このAPIを使うためには
ニューストピックのときのように
Yahooデベロッパー登録して
アプリIDを取得する必要がある
このYahooデベロッパー登録は
http://developer.yahoo.co.jp/
から取得可能
あと、提供元は
質問検索API
http://developer.yahoo.co.jp/webapi/chiebukuro/chiebukuro/v1/questionsearch.html
になります
あと
Yahoo!知恵袋Web APIは、
24時間中1アプリケーションIDにつき
50000件のリクエストが上限となっています
使いすぎには注意が必要です

Simple API Wikipedia API

ベースURLは
http://wikipedia.simpleapi.net/api
リクエストパラメータは
keyword
キーワードの指定
q
キーエアー℃の指定
実はkeyword と同じ
output
データの出力形式を指定
デフォルトはXML
レスポンスフィールドの
フィールド名は
url
wikipedia の項目ページのURL
title
項目のタイトル
body
本文のダイジェスト
length
本文の長さ
となっている
これらを使って
wikipedia から任意のキー輪小渡にマッチした
記事を検索し、その内容を表示するようにする
このためには、まずリクエストURLを作成する
ベースURLの
http://wikipedia.simpleapi.net/api
にリクエストパラメータをつなげて
データ取得用のリクエストURLを組み立てる
ただし、keyword に指定する値については
日本語対応するために
URLエンコードする
URLエンコードには
urlencode() を使う
取得するデータ出力形式は
wordpress で処理しやすいようにPHPにする
これらを考慮し、リクエストURLを作成すると
http://wikipedia.simpleapi.net/api?keyword=URLエンコードしたキーワード&output=php
となる
あとは、取得したレスポンスフィールドのうち
使うものを echo で表示していく
表示する時には
foreach() で1つずつ代入しながらループして
繰り返し表示していく
表示内容は
項目ページのURL
result->url
項目のタイトル
result->title
本文ダイジェスト
result->body
となる

wikipedia の情報を表示

これはキーワードを固定して
wikipedia に掲載された情報を検索、表示するう
これは専門用語辞典などの作成に向いている
これも、ユーザ登録はなしで使える
Simple API Wikipedia API
これが wikipedia の項目から検索して
マッチする項目のデータを取得表示できるAPI
ちなみに wikipedia のURLは
http://ja.wikipedia.org/
記事関連のキーワードでデータ取得して表示するけっど
取得できるのは
項目の冒頭部のダイジェストのみ
画像、表組みなどは再現できないので注意
ユーザ登録不要、商用、非商用どちらも
できるらしいので、使い道は多そうです
もっとも、途中から規約が変わる可能性もありますが
ちなみに、このAPIは
wikipedia 公式APIではなく
株式会社ユーザーローカルが運営するサービスのAPI
のため
最新の wikipedia のデータとは内容が異なることもあるので注意
Simple API WIkipedia の提供サイトは
http://wikipedia.simpleapi.net/

wordpress でソースコード表示を便利にするプラグイン

wordpress でソースコードを表示するときに楽になる
プラグイン
それが
SyntaxHighlighter Evolved
今回参考にさせていただいたのは
WordPressでソースコードに色をつけるプラグインの使い方:SyntaxHighlighter Evolved
です
プラグインを新規追加して
SyntaxHighlighter Evolved
をインストールし、有効化するだけです
あとは、ソースを書き込むときに
各プログラミング言語のショーとコードで囲みます
ショートコードに関しては
「SyntaxHighlighter Evolved」で利用できるショートコード一覧
を参考にさせていただきました

yahoo! ニュースWeb API実践

wordpress へ組み込みたいので
さっそくサンプルを使って実験
すでにサンプルファイルはダウンロードしてあるので
これを使います
以前、WebAPI勉強会でできるだけ最初のころは
コピペのほうがミスもしないし
動かないところで迷う時間ももったいないので
まずはそこから始めたほうがよい
とのアドバイスもありましたので
まずは、やれるところだけ改造して動かします
ダウンロードしたサンプルは圧縮されているので
unzip で解凍すると
wp_webapi_sample
ができるので、この02フォルダにある
topics.php を編集し
実験します
とりあえず、vim でテキストファイルを編集
1234567890
となっている部分を取得した
yahooのアプリIDへ変更
変更したら
cp 02/topics.php /var/www/wordpress/wp-content/themes/twentyeleven/
でファイルをコピー
こういうときに ubuntu とか Linux だと
操作がしやすくていいと思います
これだけじゃ反映されないので
cd /var/www/wordpress/wp-content/themes/twentyeleven/
で移動して
<?php get_template_part(‘tenki’); ?>
の下あたりに
<?php get_template_part(‘topics’); ?>
を追記します
次に wordpress で新規投稿を追加
題名は適当に Yahoo ニュースなどなど
カスタムフィールドを追加して
名前を
category
値をsports
として公開すればsスポーツ関連記事の
ニューストピックスがでます
ちなみに、
値を sports から economy にすれば
経済関連のニュースになります
今回の参考書席は
WordPressプラグイン & WebAPI 活用ガイドブック [Version 3.x対応]

なのですが、P134の値がなぜか category でなく
news_category になっていました
ここだけ注意すれば、あとは普通に動きます

yahoo! ニュースWeb API

yahooニュース Web API のトピックAPIを使うことで
Yahooニュースに掲載されているニューストピックを取得、表示できる
ちなみに、URLは
http://headlines.yahoo.co.jp/hl
リクエストパラメータを指定すれば
国内、海外、経済、スポーツなど
特定カテゴリに絞って表示したり
キーワードにマッチしたトピックのみ表示できる
これを使えば、株の情報とかを集めるときに
企業のニュースを表示したり
研究開発関連の情報を集めることもやりやすくなるかもしれない
ただ、このトピックAPIを使うには
Yahooデベロッパー登録しないとダメ
http://developer.yahoo.co.jp/
から登録可能
トピックAPIについては
http://developer.yahoo.co.jp/webapi/news/news/v2/topics.html
に解説があります
トピックAPIのベースURLは
http://news.yahooapis.jp/NewsWebService/V2/topics
リクエストパラメータは
前回のお天気情報のときと異なり
かなり必須項目が増えています
必須なのは
appid
アプリID
topicname
カテゴリより細かい分類基準
category
表示するニュースのカテゴリ
pickupcategory
ニュースが掲載されたカテゴリ
query
指定したキーワードでトピック検索し
部分一致したトピックのデータが返される
sort
ニュースの並び順
results
表示件数の指定
サンプルリクエストURLが載っていて
http://news.yahooapis.jp/NewsWebService/V2/topics?appid=<あなたのアプリケーションID>&topicname=earthquake
となっているので
おそらく
必須パラメータは
appid アプリID
topicname トピック名
になるみたい
トピック名は
サンプルだと earthquake になっているし
書籍だと
weather になっている
これを調べるには
http://dailynews.yahoo.co.jp/fc/list/
の中の記事をクリックすると
でてくるURLの末尾のところを指定する
例えば、今回のサンプルの場合だと
http://dailynews.yahoo.co.jp/fc/domestic/earthquake/
は地震をクリックしたときのURLのところで
書籍のは
天気情報をクリックした時に
http://dailynews.yahoo.co.jp/fc/domestic/weather/
となっているため、これを使っている
あと
APIには一日の上限が決まっていることが多く
Yahoo!ニュースWeb APIは、
24時間中1アプリケーションIDにつき
5000件のリクエストが上限
となっています

Weather Hacks お天気Web サービス

参考書籍にはXML形式で載っていたけど
サイトで確認してみたら、3月下旬にXML形式でのAPI
提供はもうすぐ終了してしまうらしい
とはいっても、勉強には使えるので
メモしてみた
まず、XML形式での
ベースURLは
http://weather.livedoor.com/forecast/webservice/rest/v1
こんどはJSONになるようだ
こちらの場合のベースURLは
http://weather.livedoor.com/forecast/webservice/json/v1
違いは、rest から json になっているということ
それでも、変更になるまでは参考にすることができます
ということで、今回はXMLのほうでみてみました
JSONのほうはまた機会をみて勉強していきます
まず
わかりやすいサンプルを見るために
http://weather.livedoor.com/forecast/webservice/rest/v1?city=113&day=tomorrow
へアクセスします
するとXMLの階層をみることができます
この時に Google Chrome を使っているなら
Alt + E で F でページない検索ができるので、
これで XMLタグを探すことで、効率的に階層を
理解することができます
このXMLの階層のページがレスポンスフィールドになります
参考までに書いておくと
location の are=が地方名 pref=が県名
city は地域名
telopは天気
image は画像関連で
title が天気
link が天気情報のURL
width が天気の画像の横幅
heightが天気の画像の縦幅
temperatureは気温関連で
maxが最高気温
min が最低気温
となっています
リクエストパラメータを取得するに必要なのは
XMLのときだと
city 地域のID番号
day 天気予報を見たい日
を指定します
http://weather.livedoor.com/forecast/webservice/rest/v1?city=113&day=tomorrow
なら、
city=113
day=tomorrow
がこれに該当します
基本的に web API は
ベースURLに
?の後に
パラメータを&でくっつけて
データ取得用のリクエストURLを作成します
今回なら
http://weather.livedoor.com/forecast/webservice/rest/v1
がベースURL
city=113&day=tomorrow
がパラメータの部分です
&でくっつけているところがわかると思います
もし、東京の今日の天気をみたいなら
http://weather.livedoor.com/forecast/webservice/rest/v1?city=63&day=today
となります

天気予報の表示

天気予報の表示
Weather Hacksお天気WebサービスAPIを使い
livedoor 天気情報で使われている
天気予報
最高気温、最低気温の情報を取得して表示できる
表示できるのは、最大で
今日
明日
明後日
まで
リクエストパラメータで、
全国142ヶ所から地域を指定して情報の取得ができる
これを
wordpress のカスタムフィールドを使うことで
記事毎に天気予報の地域を使い分けることができる
位置情報関連と組み合わせれば
現在地に応じて天気予報をだすこともできそう
ちなみに、このAPIはユーザ登録不要で使える
webサイトで使うなら
サイドバーで表示するといいかもしれない
ちなみに
webAPIの提供元は
お天気Webサービス(Livedoor Weather Web Service / LWWS)

WebAPIとwordpressのテンプレ

WebAPIとwordpressのテンプレ
TwentyElevenテーマの場合
context-single.php
は、投稿記事のタイトル、本文などの部分を生成する
テンプレート single.php
からインクルードされている
ほかの多くのテーマの場合、
single.php
の中にコードを挿入することになる
このときwordpressのループの中に挿入する
ループは、テンプレートファイル内の
wordpressに特徴的な繰り返しの構文
別名
Wordpressループ
The Loop
ソースは、
<?php while(have_posts()): ?>
<?php the_post(); ?>
<h1><?php the_title(); ?></h1>
<div class=”entry-content”>
<?php the_content(); ?>
</div>
<p><?php echo post_custom(‘key_name’); ?></p>
<?php endwhile; ?>
個別の記事ページを出力するための
single.php
の中にあるループは、一つの記事分だけだけど
トップページ部分になる
index.php
home.php
そして、アーカイブページ部分になる
date.php
author.php
category.php
archive.php
では、デフォルトだと
10回繰り返すようになっている
これら、テンプレートの詳細については
テンプレート階層

WordPressをカスタマイズするなら絶対覚えておきたいテンプレートファイルの使い方
が参考になります

wordpress で Web API

以前、
本格ビジネスサイトを作りながら学ぶ WordPressの教科書
を見ながら、ローカル環境に wordpress を導入し作成していきました
今回は
WordPressプラグイン & WebAPI 活用ガイドブック [Version 3.x対応]
の内容を実践していくため
一度テンプレートをデフォルトのものへ戻しました
管理画面で 外観 > テーマ で
Twenty Eleven
を有効化すれば、もともとあったテンプレートになります
もし、 wordpress のテンプレートを、ビジネスサイトへ戻すなら
おなじ要領で、テンプレートを変更することで元に戻ります
今回、元に戻したのは、テンプレートファイルを改造するところがあるためです
まず、実験につかったのは Weather Hacks お天気サービスのサンプルです
これなら、IDなどを取得せずにすぐに実験できるためこちらを使いました
カスタムフィールドの作成などは書籍でもわかるのですが
テンプレファイルを変更するのは少しわかりにくいので
メモしてみました
まず、てっとり早く実験するため、サンプルファイルをダウンロードしてきます
圧縮ファイルを
unzip で解凍し、その中にある tenki.php を使います
今回は、
get_template_part()
で呼び出してみました
cp tenki.php /var/www/wordpress/wp-content/themes/twentyeleven/
でテンプレのディレクトリに
PHPファイルをコピーします
ちなみに、テンプレ関連は、
wp-content/themes/
以下にあります
そして、
vim content-single.php
で設定ファイルを編集します
このときに、vim を使っているなら
/\.entry-content
とすれば、編集するところまでたどり着けます
あとは、この下の部分へ
<?php get_template_part(‘tenki’); ?>
を記述します
ちなみに、
get_template_part(‘tenki’);
というように、ファイルの拡張子は含めずに指定します
これで、後は書籍どおりにいろいろとテストできるようになります