エンジニアが「好き」と伝えるためのAPIがついに完成[続報] エンジニアの頭の中を覗いてみた

4月19日に公開された技術者のためのトークライブイベント「TechLION vol.12」のレポート記事を受け、早速「エンジニアが『好き』と伝えるためのAPI」が実装された。

» 2013年04月22日 19時31分 公開
[太田智美,@IT]

 技術者のためのトークライブイベント「TechLION vol.12」が、4月18日に開催された。イベントでは、「私のこと好き?」と聞く文系女子に対し、「APIを用意するから、不安になったらそこにアクセスしてよ」とまっすぐに答える「エンジニア思考」が注目を集めた。後日公開したレポート記事でも大きな反響があり、ついにはこんなコメントが寄せられた。

 こうして、4月21日、「エンジニアが『好き』と伝えるためのAPI」が完成した。API開発者の@oh_sky氏によれば、「いつ彼女ができても大丈夫なように、このAPIを実装することにした」という。仕様・ソースコードは以下のとおり。

APIへのリクエスト方法とレスポンス
<?php
App::uses('AppController', 'Controller');
class YoshioriController extends AppController {
	public function index() {
		$message = '';
		$lang = 'ja';
		if(
			isset($this->request->query['q'])
			&& preg_match('/love/',$this->request->query['q'])
		){
			//英語対応
			$lang = 'en';
			$message = 'I love you.';
		}
		else if(
			isset($this->request->query['q'])
			&& preg_match('/((好|す)き|愛してる)[\??]?/u',$this->request->query['q'])
		){
			//レスポンスのデフォルトは日本語
			//レスポンスにランダム性を持たせる
			$message_ary = array(
				'好きだよ。',
				'愛してる。',
			);
			$message = $message_ary[mt_rand(0,count($message_ary)-1)];
		}
		else{
			$message = 'ん?';
		}
    $response = array(
			'lang'=>$lang,
			'message'=>$message,
    );
		//jsonで返す
		$this->set('response',$response);
		$this->viewClass = 'Json';
		$this->set('_serialize','response');
	}
}

 実際に、API使用例として挙げられている http://oh-sky-ohsky.sqale.jp/yoshiori?q=do+you+love+me にアクセスすると、 {"lang":"en","message":"I love you."} とレスポンスがある。また、日本語にも対応しており、「私のこと、好き?」と聞くと {"lang":"ja","message":"\u597d\u304d\u3060\u3088\u3002"} と日本語で返してくれるのも特徴だ。

 現状の大きな問題点としては、不特定多数の人に「I love you.」「好きだよ。」とレスポンスしてしまうため人間関係のもつれが想定されるほか、質問内容の解析が不十分なため「リカコのこと、好き?」などと他の女性の名前を入力すると「好きだよ。」と浮気をあっさりと認めてしまうことだ。

 文系女子は覚悟を。エンジニアの頭の中は、わけが分からなくて面白い。詳細は、GitHubに公開されている。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。