SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend FrameworkでGoogleアプリケーションを使い倒す

Zend_GDataでYoutube動画検索アプリケーションを作成しよう

Zend FrameworkでGoogleアプリケーションを使い倒す(1)


YouTubeで動画検索

 それでは、サンプルを作成しながらZend_GdataがどのようにGoogle Data APIと連携しているのかを見ていきましょう。今回はYouTube Data APIを利用して、GoogleサービスであるYouTubeの動画を検索するアプリケーションを作ります。

図2:検索結果画面
図2:検索結果画面
図3:再生画面
図3:再生画面

サンプルコード

 以下が上記のようなアプリケーションを作るサンプルコードになります。

[リスト1]youtubeSearch.php
<html>
<head>
    <title>Youtube検索</title>
<head>

<body>
<h1>Youtube検索</h1>

<!-- ユーザーの入力データを受け取る -->
<!-- 検索フォーム -->
<form method="POST">
    <input name="keyword" type="text">
    <input name="submit" type="submit" value="検索">
</form>
<hr>

<?php

require_once 'Zend/Loader.php';
// Zend Frameworkのクラス自動読込
Zend_Loader::registerAutoload();

// 検索用関数
function searchVideo($keyword)
{
    // [1]サービスオブジェクトの生成
    $youtube = new Zend_Gdata_YouTube();
    // [2]クエリオブジェクトの取得
    $query = $youtube->newVideoQuery();
    // [3]クエリオブジェクトにパラメータを与える
    $query->videoQuery = $keyword;
    $query->orderBy = 'viewCount';
    $query->MaxResults = 10;
    // [4]フィードの取得
    $feed = $youtube->getVideoFeed($query);

    // [5]取得数表示
    echo '【 '.$keyword.' 】の検索結果【 '.$feed->getTotalResults().' 】件<br />';
    echo '<br />';

    echo '<table class="videoList" border>';
    echo '<tbody width="100%">';

    // エントリーごとに処理
    foreach ($feed as $entry) {
        // [6]取得結果表示のための情報取得
        $contentUrl = $entry->mediaGroup->content[0]->url;
        $thumbnailUrl = $entry->mediaGroup->thumbnail[0]->url;
        $videoTitle = $entry->mediaGroup->title;
        // [7]取得結果表示
        print <<<END
        <tr>
        <td width="130"><img src="${thumbnailUrl}" /></td>
        <td width="100%">
        <a href="#"
            onclick="window.open('${contentUrl}','${videoTitle}','width=500,height=300');">
            ${videoTitle}
        </a>
        </td>
        </tr>
END;
    }
    echo '</table>';
}

// 検索ボタン押下時処理
if(isset($_POST['submit']))
{
    searchVideo($_POST['keyword']);
}

?>

</body>
</html>

 100行足らずと意外に少ないと思いませんか。Zend_GdataがGoogleサービスから取得した情報を簡単に利用できるクラス、メソッドを提供しているからです。

 それでは詳細を解説していきましょう。

ユーザーの入力データを受け取る

 ここはhtmlの範囲になります。検索ボタンが押された際に、検索ワードをフォームから「keyword」という変数名として送信します。

[リスト2]フォーム
<form method="POST">
    <input name="keyword" type="text">
    <input name="submit" type="submit" value="検索">
</form>

 ここはPHPの処理です。検索ボタンが押された場合、変数「keyword」を引数とした「searchVideo」という自作関数を呼び出します。

[リスト3]フォーム
if(isset($_POST['submit']))
{
    searchVideo($_POST['keyword']);
}

次のページ
searchVideo関数

この記事は参考になりましたか?

Zend FrameworkでGoogleアプリケーションを使い倒す連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 森山 絵美(モリヤマ エミ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3695 2009/04/20 11:23

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー