Posts Tagged ‘API’

    はてなブックマーク - Ustream Data APIの使い方
    このエントリーをはてなブックマークに追加

    ダーツの、Dartsliveのレーティングは9、PHOENIXのレーティングは12、の山本です。
    親にはゴルフをしろと言われてますが、休日は打ちっぱなしより投げっぱなしです。
    お父さん、すんません。

    さて、タイトルが、前の杉本によるエントリーと似ていてすみません。
    が、似て非なるもののご紹介です。

    Ustream Data APIは、Flash Client APIとは異なり、動画に関する情報やユーザーに関する情報がXML形式やJSONなど、計4種類の形式で受け取れますので、どんな言語にも組み込むことができます。PHP形式もありますので、PHPで組み込む場合はすごく親和性が高いのではないのでしょうか。

    API key の発行

    developer.ustream.tvから、開発者用のアカウントを作成する必要があります。
    登録するとAPI Keyが発行されます。

    ユーザー情報を取ってみる

    基本中の基本といえば、ユーザーの情報を取ってくることでしょうか。
    そのアドレスは以下のようになります。

    http://api.ustream.tv/xml/user/ya_ma23/getInfo?key=APIKEY

    ROOTのURL直下にある「xml」は、xml形式で返して表示することを示します。ここを、「json」「php」「html」のいずれかに変えることができます。

    「ya_ma23」に当たるところがユーザー名を指定します。
    そして、APIKEYの部分に、取得したAPIキーを入力します。

    これは私個人の情報になりますが、XML形式だとこんなふうに返ります。

    <xml>
      <results>
      <id>1134298</id>
      <userName>ya_ma23</userName>
      <registeredAt>2009-04-07</registeredAt>
      <url>http://www.ustream.tv/user/ya_ma23</url>
      <gender>male</gender>
      <website></website>
      <about></about>
      <imageUrl></imageUrl>
      <rating>0.000</rating>
      <numberOf>
        <comments>0</comments>
        <friends>1</friends>
      </numberOf>
      </results>
      <msg></msg>
      <error></error>
      <processTime>TRUE</processTime>
      <version>mashery-r10</version>
    </xml>

    テスト用アカウントのため、何とも寂しい情報しかありませんが、プロフィール情報等が取得できます。

    番組に関する情報を取得する

    番組に関する情報も取得できます。チャンネル自体の情報や、そのチャンネルの埋め込みタグや、投稿されたコメントなどを取得できます。
    ごく基本的な情報の取得のために「getInfo」メソッドがあります。

    http://api.ustream.tv/xml/channel/ya_ma/getInfo?key=APIKEY

    「ya_ma」の部分にチャンネル名を指定します。
    これで取得できる情報をここに書くとすんごく長くなってしまうので割愛しますが、
    このチャンネルを作ったユーザーや、ブラウザで見るためのURL、いつ作られたか、いつ配信されたか、視聴者数、埋め込みタグ、といった様々な情報が得られます。

    録画された全てのチャンネルを取得する

    Ustreamはライブ配信した映像を録画することができます。
    で、その録画したチャンネルのリストというものも、APIで取得できます。
    そのメソッドが「listAllVideos」です。

    http://api.ustream.tv/xml/channel/ya_ma/listAllVideos?key=APIKEY

    ZENPREでは、一度配信したプレゼンをあとでいつでも見れるようにする、同期録画機能を備えてますが、
    その設定画面にて、このAPIを使用しています。
    録画番組の一覧をAPIから取得し、ユーザーはただ選択するだけで済むように負担を軽減しています。

    おわり

    Ustreamは、Flash Client APIと合わせても、結構豊富にAPIを提供しています。
    ただ、そこまで普及していないのかな、という印象です。
    OAuthに対応して、Ustreamサイト以外からでも気軽に視聴や配信ができればなと思います。

    イベント、勉強会、セミナー、討論会、個人的に行なっている活動、など、多くの人に見てもらいたい活動を行うときに、
    テレビやラジオ、新聞等で宣伝するだけでなく、こういったネットでの配信も活用してほしいなあと、いち技術者は思う次第です。

      はてなブックマーク - TwitterAPIの導入について
      このエントリーをはてなブックマークに追加

       まあ、有りますよね、二度目。

       Fusic2年目仁井です。よろしくお願いいたします。

       今回の記事は何にするか悩みました。iPadでゲーム作る記事にするとかダイエットの成功の記事にするとか色々考えたのですが、前回がTwitterでしたので今回も素直にTwitterで行きたいと思います。

       なんだかReturnキーが潰れてきた気がしますがそれは気にせずに。ええ。

      Twitter API

       ツイッターが市民権を得て随分と経ち、それに合わせて様々なツールやアプリケーションが開発されているかと思います。
       そんな開発に必須とも言えるのが、このTwitterAPIなんだよ、ジェシー! そうなのね、マイク!
       そうなんです。
       利用しているものとして想像しやすいのは、Botやクライアントあたりでしょう。
       リプライ、リツイート、フォロー、等々。ツイッターの代表的な機能をこれを使うことで自由に利用できます。
       それではその導入方法について、簡単に説明させていただきます。

      準備編:1

       それでは、TwitterAPIを使う準備を。
       まずクライアント製作者のアカウントでログインした状態でこのページにアクセスしてください。
       作成したクライアントは、この時ログインしているユーザとひもづけられます。
       ここで、アプリケーションの登録を行います。

       まず「新しいアプリケーションを登録する」をクリック。
       必要情報を入力しますが、注意すべきは2点。
      ・「アプリケーションの種類」は「クライアント」
      ・「標準のアクセスタイプ」は「Read&Write」
       をそれぞれ選択してください。間違えてもあとで修正できますので問題ないです。
       特に「標準のアクセスタイプ」を「Read-Only」にすると投稿などができなくなるので注意です。
      Image

      準備編:2

       つづいて、アプリケーション側の準備を。
       今回の環境はPHP5.2です。PHPは5以上で「curl」が使える環境であれば問題ありません。
       PHP環境が準備できたら今度はここの「Download」からファイルをダウンロードしてください。
       ファイルを解凍して、twitteroauthの中の「OAuth.php」と「twitteroauth.php」を取り出してください。この2つのファイルを使用します。

      実装編

       それでは実装について。
       以下のコードを参照してください。

      require_once("./twitteroauth.php");
       
      $to = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
       
      $sendMessage = "さあ、呟いてみませんか";
      $req = $to->OAuthRequest('https://twitter.com/statuses/update.xml', 'POST', array('status' => $sendMessage));
       
      header("Content-Type: application/xml");
      echo $req;

      このスクリプトを実行すると、自分のアカウントに「さあ、呟いてみませんか」というツイートが投稿されます。
      なんとなく、botの姿が見えてきた感がありますね。
      ここで肝になるのが、オブジェクトの生成の時に与えている引数です。

      CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET

      この4つの値は全て、先ほどアプリケーション登録を行ったページから参照することができます。
      もう一度先程のページにアクセスします。
      すると「現在登録されているアプリケーション一覧」の中に、先ほど登録したアプリケーションが並んでいることと思います。
      それをクリックすると、下の方に「Consumer key」と「Consumer secret」の値が。
      さらにページ内の「My Access Token」のリンクの先には「Access Token」「Access Token Secret」があります。
      この値をそれぞれ引数にあたえるだけです。

      これで、Twitter APIを利用したツイートの投稿が可能になりました。

      注意点

       便利なTwitterAPIですが、注意点もございます。
       各機能には、それぞれ制限が設けられています。
       例えば、1時間の間に呟ける回数や、フォロー出来る人数など、それぞれに回数制限が存在しています。
       オーバーしたりするとアカウントを凍結されてしまうおそれも有りますので、使用の際は十分に注意をしてください。
       botを作って、誰彼構わず反応するようにしていると、あっという間に制限数を超えてしまうかも。
       ちなみに前回紹介した検索機能は
      ・1時間に150回
      ・1日に1000回
       の使用制限がIPベースで設けられています。

      最後に

       APIを使用することで、タイムラインの取得も可能です。
       そのなかから、自分に対するリプライや、リツイート等も取得可能です。パラメータの与え方次第で必要な情報をうまいこと集めましょう。
       ここまで出来るようになると、Twitterクライアントの作成も不可能ではありません。いえ、私はやりませんが。
       こちらのドキュメントの日本語訳が分かりやすく、大変お世話になりました。
       いい加減Returnキーの潰れ具合が腹に据えかねて来たので、このへんで筆を置く事と致します。
       それでは。クリスマス爆発しろ。仁井でした。

      { 2010.11.9 }

      SlideShare APIを使う

        はてなブックマーク - SlideShare APIを使う
        このエントリーをはてなブックマークに追加

        PHP Matsuri が一段落しましたので、ここでrubyの登場です。
        どうも、ヤマモトです。
        MA6も締切りが過ぎてしまいましたね。
        僕も何か応募したいと思いつつ、ありきたりのサービスしか思いつかなく結局なにも応募せず。。。

        MA6には当然入ってないんですが、スライド共有サービスの最大手であるSlideShareも、実はAPIを公開しています。
        今回はそのAPIの、APIキーの発行からキーワード検索までについて紹介したいと思います。

        SlideShare API
        www.slideshare.net/developers

        APIを利用するには、ユーザー登録が必要です。
        すでに登録している方でも、APIキー発行を行なってください。
        Apply for API Key
        から行ないます。
        発行処理を行うと、「APIキー」と「シークレットキー」がメールで届きます。
        これらを使って、APIを利用します。

        APIメソッドには様々な種類がありますが、基本的な「IDに紐づくデータの取得」をやってみます。
        そのメソッドは、「Get Slideshow Information」で、
        URLは、「http://www.slideshare.net/api/2/get_slideshow」
        必要なパラメータは、

        ・api_key
        ・ts
        ・hash
        ・id

        です。
        上3つは、どのメソッドにも必要な認証のためのパラメーターです。

        「api_key」はメールで送られたAPIキー。
        「ts」は「タイムスタンプ」のことで、現在の時刻をUNIXのTimestamp型に変換したものを付与します。
        最後の「hash」が若干手間で、「メールで送られたシークレットキー」+「現在の時刻のUNIX Timestamp」を、「SHA1でハッシュ値化したもの」です。
        「ts」に付与する現在の時刻と、「hash」に使用する現在の時刻は同一でないといけませんが、厳密に現在の時刻でなくてもいいようです。

        さらに、「id」を付与することで、そのIDに紐づくデータがxmlで返却されます。

        ruby(rails)で書いたソースを下に表示します。

        api_key = "API_KEY"
        secret_key = "SECRET_KEY"
        now_time = Time.now.to_i
        hash = Digest::SHA1.hexdigest("#{secret_key}#{now_time}")
        Net::HTTP.start('www.slideshare.net', 80) {|http|
          response = http.get("/api/2/get_slideshow?api_key=#{api_key}&ts=#{now_time}&hash=#{hash}&id=XXX")
          @xml_object = REXML::Document.new response.body
        }
        respond_to do |format|
          format.xml  { render :xml => @xml_object }
        end

        これで該当のIDに関するデータがXMLで表示されます。
        これを応用すれば、他のウェブサービスにも組み込んで、以下のようなキーワードにヒットするデータをサムネイル付きで表示する画面も作れます。

        MA6のAPIリストにSlideShareがもし入っていたら、何らかの面白いサービスができたのかもしれません。