Yahoo!Pipesにフォームからキーワードを入力して渡すページ

Yahoo!Pipesを勉強中。Hiroさんのブログがとてもわかりやすくてなんとなくイメージがつかめた。後半はかなり難しくなるのだが、とりあえず、今自分で出来る範囲で、自分自身でもYahoo!Pipesを作っていこうと思う。

まずは、キーワードを入力してそのキーワードを元にYahooSerachで検索、結果を表示するというアプリケーションを作ってみる。この場合、キーワード入力をJavascriptとhtmlで作成、キーワードからYahooSerachで検索し結果を出すというところがYahoo!Pipesとなる。

まずは、YahooPipesの作成から

”User Input”と”Yahoo!Search”のウインドウをD&D。項目を下記のスクリーンショットのとおり入力。それをそのまま”Output”に接続

Pipes: editing 'Temp070501'

すると、結果はこんな感じ。

Pipes: editing 'Temp070501'

Pipe名をTemp070501としてSaveする。

Runpipeの結果は、

Pipes: Temp070501

で、これのキーワードを自分でウインドウから入力して表示させることができるようにしてみる。

“Get as a Badge”をクリックして、このコードを所得

Pipes: Temp070501

 

XOOPScubeのブロックとして使うので、”Embed”を選択。

 

Pipes: Temp070501

コードが生成されるので、これをコピー

<script src="http://l.yimg.com/a/i/us/pps/listbadge_1.4.js">{"pipe_id":"5fa5222fee96c7dcbc7dc966609fec0a","_btype":"list","pipe_params":{"keyword":"\u30d0\u30ca\u30ca"}}</script>

この中から、$json用の”{}"の中のコードとsrc=の部分を分割する。
$json = '{"pipe_id":"5fa5222fee96c7dcbc7dc966609fec0a","_btype":"list","pipe_params":{"keyword":"\u30d0\u30ca\u30ca"}'

<script src="http://l.yimg.com/a/i/us/pps/listbadge_1.4.js">

これらを、@suinさんの作成してくれた、yahoo_pipes.phpに入れればフォームから入力したキーワードをYahoo!Pipesに渡すページが作成できます。

<?php

$json = '{"pipe_id":"5fa5222fee96c7dcbc7dc966609fec0a","_btype":"list","pipe_params":{"keyword":"\u30d0\u30ca\u30ca"}}';

$data = json_decode($json, true);

if ( isset($_GET['keyword']) === true )
{
$data['pipe_params']['keyword'] = $_GET['keyword'];
}

$json = json_encode($data);

?>

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script src="http://l.yimg.com/a/i/us/pps/listbadge_1.4.js"><?php echo $json ?></script>
<form action="" method="get">
keyword <input type="text" name="keyword" value="" />
<input type="submit" value="apply" />
</form>
</body>
</html>