Home > サービス
サービス Archive
Wordpressを使っておすすめ記事をレコメンドするTwitterBotを作ってみた - NoTechnoNoLife
haseco氏になんとなくあったら面白いかも!と言われたのでサイトの宣伝がてらに作ってみました。
基本的な機能は、
「@NoTechnoNoLife 宛にキーワードをポストすると、そのキーワードからNoTechnoNoLifeを検索し、オススメの記事をレコメンドするbot」
ですっ!
それっぽく動けばいいや〜と思っていたのですが、いろいろ作っていると面倒なことがちょいちょいあったのでここにメモとして残しておきます。
WordpressにJSONを返すAPIを作成したい!っが・・・
まずはキーワードを元に、該当する記事のタイトルやURLを返すAPIを作ります。
はじめ、テーマのディレクトリに適当な名前でphpファイルを置いて、/hoge.phpでアクセスしてみたんですがうんともすんとも言わないので、
MTみたいにデザインのテンプレートにファイルを追加するだけでは作れないんだと分かりました。
必要な作業は、
- 新規ページの作成(これがAPIのURL)
- テンプレートにphpファイルを追加(検索機能)
ぐらいです。
もっと他によい方法があるのかもしれませんが、今回はとりあえずこんな感じで行きますよー!
(以下、僕が作成した環境になりますので、適宜自分の好きなファイル名や文言などに置き換えて読んでください。)
Wordpressのテーマディレクトリに.phpファイルを配置する
自分のサーバーのテーマディレクトリに「recommend_entries.php」というphpファイルを作成します。
中身は以下のようにしました。
このTemplate Nameが次のステップのページを作成するときに洗濯するテンプレート名になります。
Wordpressのページを新規作成する
次にAPIとして提供するためのページ(URL)を作成します。
管理画面の左側ペインから「ページ」→「新規作成」で新規作成ページを開きます。
タイトルに「Recommend Entries」と入力して、
属性という表示項目のところのテンプレートを、さきほど作成したテンプレートを指定する。
これでAPIとしての準備はできた!
あとはコーディングだ。。。
記事をレコメンドするphpファイルを書いてみる
このphpファイルがAPIの機能を主に担う。
ここで重要なのが、あるキーワードがこのAPIに投げられたら、そのキーワードを元に本来Wordpressが持っている検索処理を走らせないのだが、
GETパラメータに「s=ほげ」としてしまうとsearch.phpが呼ばれてしまい、このphpファイルが呼ばれない。
これはおそらくWordpressが内部的にこのパラメータがある場合はこのphpとかやってるんでしょうね。
よって、「s」というパラメータは使えないので、今回は「re」を使う。
reを使うんですが、検索機能を使うためにはsにキーワードを入れる必要があるので、結果的に以下のようになった。
さらにちょっとややこしかったのが、Wordpressは特殊文字を実体参照に変換するっぽいので、記事のタイトルに「-(←ハイフン)」があると「–」に変換されてしまう。
なのでmb_decode_numericentity関数を使って復元している。(PHPあまり分からないのでこれで合ってるのかな。。。)
APIのソースコード
json_encode関数の存在を知らなかったので、普通にJSONを組み立ててたらパースできなくてすごいハマった。。。
テンプレートを参考にすると、the_titleやthe_permalinkなんてタグを見かけるんですが、これは中でechoしているので今回は使えません。
代わりに、get_the_titleやget_permalinkを使って取得しています。
この辺のタグについては以下のページが参考になります。
テンプレートタグ - WordPress Codex 日本語版
■GitHub
・gist: 612770 - GitHub
Replayを元にオススメするTwitterBotを作る
APIは出来たのであとはbotだっ!(botはRubyで書いてみました。)
twitterというモジュールを使っています。
ちょっと補足として、replayの取得はTwitter::Base.mentionsメソッドを使って取得するんですが、twitter0.7.0にはこのメソッドがないみたいなのでtwitter0.8.0以降をお使いください。
twitterに関しては以下に詳しく書かれています。
Greenbear Laboratory - Ruby Twitter Gem簡易リファレンス
それと事前にTwitter / アプリケーションを登録でbot用にアプリ申請をしておく必要があります。
これをしないとOAuthが使えないので。
TwitterBotのソースコード
5分前よりも後にreplayされていたら、そのtweetからキーワードを抽出して(正規表現分からなかった...)WordpressのAPIに投げ、結果をつぶやく。
■GitHub
gist: 612998 - GitHub
ちなみにcronは5分毎に実行されるように設定しています。
なのでリアルタイム性はちょっと弱いですね。。。
今は単語だけですが、MeCabなどの形態素解析を使って文章の中からキーワードを引っ張り出して検索しても面白いかもしれません。
Rubyで形態素解析してみた - unnecessary words
(サイトに行って検索テキストボックスにキーワード入力すればいいんじゃない?って言わないでくださいね!)
また一つ無駄なものを作ってしまった...
今回の作品
もしよければフォローしてくださいな。
NoTechnoNoLife (NoTechnoNoLife) on Twitter
■参考リンク
・僕とヒロムとWEB戦争 » WordPressで従来型のページ作成
・Character entity references in HTML 4
・WordPress ページテンプレートについて - tail -f /var/log/こうちかずお.log
- Comments (Close): 0
- TrackBack: 0
こくばんで描かれるタモリさん
- 2008-08-27 (水)
- サービス
追記:
サーバーが重いときにOnLoadがいつまで経っても始まらなかったので、続きに移動しました。
- Comments (Close): 0
- TrackBack: 0
Flickr Proの支払いでエラーが出た
- 2008-08-01 (金)
- サービス
そろそろProにして1年が経つので契約をアップデートしようとしたら、いくらやっても以下のエラーが出て契約確定できなかった。
Sorry, there is a temporary problem. Please try again later. If the problem persists, please contact Yahoo! Customer Care.
とりあえずyahoo.comに行って、ログインしてみたら当分ログインしていなかったのでどうやらアカウントが無効?になっていたみたい。
Flickrにはログイン出来てましたが・・・
再度契約ボタンを押しても、また同じエラーが出てきた。
ちょっとうんざりしていたら、思い出した!
「クレジットカードが新しくなったのを。」
なのでアカウントからクレジット情報を修正したら、あっけなく引き続きProのアカウントを購入できた。
英語だから雰囲気で読んでたのがいけないのかもしれないが、こうゆうのって意外とハマる。
- Comments (Close): 0
- TrackBack: 0
JSON同士を比較できるWebサービス - JSON Diff
- 2008-07-01 (火)
- サービス
AjaxでJSON形式を扱うときに、デバッグとして使えるかもしれない。特にボリュームの大きいJSONならその効力は絶大だと思います。

使い方は簡単で2つのJSONを入力し、「Compare」ボタンを押すだけ。
すると画面の下のほうに比較し色付けまでしてくれた状態で表示されます。
[via]
Ajaxian
- Comments (Close): 0
- TrackBack: 0
Twitter、Mozilla、Flickrなどなどのオフィスの写真
- 2008-01-28 (月)
- サービス
めちゃめちゃ見たかった写真がずらり。
普段ボクらが使っているサービスを作ってる会社さんのオフィスが見れるなんてなんだか楽しい。
最近ではオフィスもこだわった会社が日本でも多くなってきて、きっと仕事もそうだけど、どんだけ楽しい環境で仕事ができるかがその会社に入りたい度を増すと思う。
気になった写真をピックアップしてみました。

おお!オサレな感じだな~。
しかも机が広い。こりゃ快適だわ。

やっぱりMacなのねん。
ボクもMacで仕事がしてみたい。
続きで他にもピックアップしています。
- Comments (Close): 0
- TrackBack: 0
Yahoo!Pipesで自分のFlickr写真を検索してみた
- 2008-01-25 (金)
- サービス

Yahoo!Pipesはすばらしいマッシュアップサービスだと思う。前にMSマッシュアップ用ツールサービス「Popfly」を使ってみた - HouseTectで紹介したサービスと同じようなUIでWebサービスを加工することができる。
よく例に使われているのはあるブログとあるブログの2つのRSS Feedを統合してTitleでソートすることができる。それで何が楽しいの?と言われそうだが多数のブログを持つブロガーが、自分の持つブログすべてのRSS Feedを一つにまとめて配信すれば見るほうも楽チンで喜ばれるかもしれない。
でもブログのRSS Feedはどうやらまだ日本語対応されていないようです。↑の画像の下のほうがRSS Feedの表示ですが、英語のTitleは表示されているが日本語は全滅・・・

これだと楽しくないのでFlickrとマッシュアップしてみました。
- Comments (Close): 0
- TrackBack: 0
flickrの写真を名刺にできる「MOO」が割引してたので注文した
- 2008-01-20 (日)
- サービス

Going My Wayさんのところで割引について紹介されていたのでついつい注文してしまった。
前にも注文しようとしたことがあったんだけど、そのときはflickrにアップロードした枚数が少なくて選びきれなかったので、やっとある程度溜まった今がチャンスということで注文。
MOOのサービスでは名刺のほかにもポストカードやシールなんかも作れちゃう。しかも結構安い。
100 mini calling-cards made with photography or design: $19.99
via: MOO.com | MiniCards
約20ドルくらいですね。
それと送料を合わせて割引率の10パーセント引いた額が支払いのお値段。
ボクは名刺と名刺入れ(赤)もセットで購入したので30ドルちょいでした。

この名刺入れが何気にほしかった一品。
フェルト地で出来ているので手触りもよさそう。6.99ドルなのでflickrの写真のお供にはもってこいですね。
さぁこれでいつでもオフ会に行けるぞw
あとはフリーで動いていると自分個人の名刺がないので、それもかねて作ってみました。
到着が楽しみ~。
以下に割引の仕方が書いてあります。
Going My Way: moo.com から日本向けにバレンタインプレゼント。moo Minicard が 1/31 までの注文で 10%引き
- Comments (Close): 0
- TrackBack: 0
Twitterオフに使えるTwitterネームテンプレート
- 2007-12-22 (土)
- サービス

パーティの名前、メンバーのリストを入力してSubmitすればTwitterネームプレートの出来上がり。
PDF化されているので、ダウンロードしてから印刷ですな。
- Comments (Close): 0
- TrackBack: 0
はてなハイクで遊んでみた
- 2007-12-18 (火)
- サービス
「はてなハイク」正式公開 3日で1万近い書き込み - ITmedia News
はてなハイクがやっと正式に公開されたようです。やった~。
beta版のときは一足遅れてアカウントとれなかったもので・・・
とりあえず書いてみた。

すいません、プルップルです。
ちょいちょい書いていきますw
hisasann - はてなハイク
- Comments (Close): 0
- TrackBack: 0
ブログに手軽なリボンを付けられるサービス「Website Ribbon」
- 2007-10-09 (火)
- サービス

さっそくNoTechnoNoLifeこっちとDigitalGrounder.COMこっちに付けてみた。
これはいいですね。
手軽にリボンを付けれるし、装飾という観点でなんか楽しい。
このイメージはリンクにもなっているので、双方のブログをリンクし合う感じにしてみました。
ブログをちょっといじりたいな~と思っている人はこのサービスを試してみるのもいいかもしれません。
Free Website Ribbon Generator - For Your Site Or Blog
[via]
100SHIKI.COM
- Comments (Close): 0
- TrackBack: 0
いまさらながら脳内メーカーをやってみた
- 2007-10-05 (金)
- サービス

hisasannの脳内
ほんといまさらだけど・・・
結果は食と秘が大半を占めている(笑)
たしかにDigitalGrounder.COM(デジタルグラウンダー), 海外のニッチな情報ブログこんなブログやNoTechnoNoLife, 海外のテクノな情報ブログこんなブログをやっていれば秘の部分が多いのは頷ける。
- Comments (Close): 0
- TrackBack: 0
Flickrをプロアカウントにしてみました
- 2007-08-19 (日)
- サービス

見てるだけで楽しいFlickrはボクが日々チェックする写真サイトですが、今まで無料アカウントだったので200枚しかアップロードできないという縛りがありました。
なんかずうっと使う気がするFlickrだけに、プロアカウントに加入してみました。
お陰で胸につかえていた何かが消えたような気がする。
これで思う存分2GBまでアップロードし続けようっと。
以下のサイトを参考にさせてもらいました。詳しく画像付きだったので分かりやす~い。
stone::tamaki: flickr pro account
以下ボクのFlickrです。お見知りおきを。
Flickr: Photos from hisasann
あとトップの上あたりにFlickrの写真をランダムに表示するようにしました。
Flickrの写真をランダム表示するには? - #BLOG
- Comments (Close): 0
- TrackBack: 0
梅田望夫氏、茂木健一郎氏対談「フューチャリスト宣言」を読んだ

なんと言うか衝撃的だった。
実際まだ梅田望夫氏のWeb進化論は読めていないのだが、まずはフューチャリスト宣言から読んでみた。
この本の楽しいところは梅田望夫氏と茂木健一郎氏の対談が一冊の本になった感じでとっても読み易い。
そしてこのお二人のお話はついつい朝方までかかっても読んでしまいたいほど、魅力のある話をされていて本当にバイブルになった。恐らくWeb進化論もそうなるだろうが。
お二人ともGeekなネットヘビーユーザーだからこその意見。Googleに対しての意見、はてなからのメッセージなど、本当にこっちが好きな人には堪らないないようになっている。
いつまでも応援していたいお二人です。プロフェッショナル今日も見ましたよ。茂木さん!笑
【関連リンク】
・茂木健一郎 クオリア日記
・My Life Between Silicon Valley and Japan
- Comments (Close): 0
- TrackBack: 0
ライブドアリーダーをこよなく愛するようになった1つの理由
- 2007-07-18 (水)
- サービス
あなたがライブドアリーダーにスイッチする3つの理由。でライブドアリーダーの良さがうまくまとまっていました。
ここ最近見るブログが多くなってきて、それを午前中にざっと読むのは結構骨が折れる作業。とくにお気に入りのブログをいちいちブクマして、その場合もフォルダ分けしなきゃいけないしね。
それがあまりにも面倒だし、ブラウザのブクマをマシンごとに共有するのもバカらしい作業だと思っていた。
まぁFirefoxのプラグインで同期化はしているが、やっぱりブログを1個ずつ開くのは面倒な作業といえる。
RSSリーダーはもともと使っておらず、使ったとしてもはてなRSSを使っていたといった感じ。
別にはてなのRSSリーダーでも問題はないのだけど、livedoorのリーダーは不便なRSSフィードの管理やインターフェースも優れてい、最近流行ってるブログなどもリストアップされていて便利すぎるから、ついつい3ヶ月ほど前に乗り換えてしまいました。
今では仕事場について1時間くらいはフィード眺めて、技術的に面白いのははてブするといった感じで落ち着いてきた。
あんまりやってると怒られそうだがね。笑
ここでボクがlivedoorリーダーの最もすぐれている点を思えるのは、上記URLでの紹介されているが、携帯からみれるのと、ピンをつけて後でPCから気になった記事をじっくり読めること。
だから電車の通勤とかで、気になった記事を見つけては、自宅などで後でチェックする。
便利すぎる!
みなさんも是非livedoorリーダーを使ってみて、その便利さを体感してみるのもありだと思う。
- Comments (Close): 0
- TrackBack: 0
nanacoを使い始めてみた
- 2007-07-16 (月)
- サービス

見た目もかわいいnanacoを先日セブンイレブンで購入してみました。
購入ってことは買うの?と思われる方もいるかと思いますが、買います!笑
300円掛かりましたが、今なら初期ポイントサービスとして200ポイント付いてくるので100円で購入ということになりますね。
うちの近所にはセブンイレブンが結構あるので、雑誌とかを買いに行ったときはnanacoで買います。
チャージしつつ購入するので、店員さんとしてはちょっとウザがってるかもしれないけど、まぁそれぐらい許して頂戴。
ちなみにnanacoを読み取り機にあてがうと「パラッポロッ」みたいな音がしてかわいい。
あの音は他のサービスにはない音だから、翳してみたくなっちゃう。
今後他のお店でも使えるようになれば便利だな~。
それに期待します。
- Comments (Close): 1
- TrackBack: 0
Home > サービス
- Tag cloud
-
-
ActionScript
addon
Ads
Ajax
Algorithm
Amazing
Android
Anime
Apache
AppleScript
Application
Aptana
baby
Blog
Bloger
BlogParts
Book
Book Review
Bookmark
Bookmarklet
bot
Box2d
browser
Camera
Canvas
Catalyst
Chrome
CM
Communication
Cool
CPAN
CSS
CSS3
DB
design
Dinner
DJ
DOM
DS
Eclipse
Editor
Electro
Emulator
Engineer
English
Firebug
Firefox
Flash
Flex
Flickr
Food
Freesoft
Funny
Gadget
Game
Geek
Generator
git
Google
Google Wave
GoogleAnlytics
Greasemonkey
Grow
Hacker
Haml
hatena
HTML
HTML5
iBatis
IDE
Idea
IE
IE6
IE7
IE8
Image
ImageMagick
Interface
iPad
iPhone
iPod
IT
Item
iTunes
Java
JavaScript
jQuery
jQueryMobile
jsDeferred
JsUnit
Keyboard
Lanch
Language
LifeHack
Lightbox
Mac
MacBookPro
MacPorts
Mash-up
MeCab
Mobile
Monitor
MOO
Motivation
Movalble Type
Movie
Music
MySql
Netscape
News
nginx
Nikki
node.js
OpenSource
Opera
Oracle
Papervision3D
Pasta
PC
Perl
Photoshop
PHP
PL/SQL
Plugin
Presentation
Program
Progression
prototypeJS
Python
QUnit
Ramen
Rhino
RSS
Ruby
Ruby On Rails
Safari
Sakura
Sanitizing
Search
Seasar2
Security
SEO
Shell
Shortcut
Sinatra
Skill
Smartphone
SMO
SNS
Spring
SQL
SSH
SSL
Struts
SVN
Test
TextMate
Tomcat
Tool
Tumblr
Twitter
Unix
Vim
Vista
VMware
VPS
Web
Web2.0
Webkit
WebService
Wii
Wiki
Windows
Word
WordPress
Work
Workshop
WTP
XAMPP
XCode
XMLHttpRequest2
XSS
XUL
Yahoo
YouTube
YUI
Zen-Coding







