最新 RSS

horiday blog

2011/11/30

[perl] slideshare api を perl から使う

職場で slideshare にあるプレゼンファイルを検索,取得したいとけどどうすれば良いのかという話になっていたので,調べてみました.

まず SlideShare のSlideShare API > Apply for API Keyから申請をして,api_key と secret を取得します.

あとはここに書いてある WebAPI を使うのですが,perl だとWWW::SlideShareが便利そうだったのでこれを使ってみました.

下記のコードは slideshare にあるデータをプログラミングというキーワードで検索したした結果を表示するものです.

#!/usr/bin/env perl
# ss-search.pl
use strict;
use warnings;
use Data::Dumper;
use WWW::SlideShare;
use Unicode::Japanese;
use Unicode::RecursiveDowngrade;

sub main {
  my $api_key = 'orzZzz';
  my $secret = 'mjgZzz';
  my $ss = WWW::SlideShare->new(
				'api_key' => $api_key, 
				'secret' => $secret);

  my $kw = "プログラミング";
  $kw = Unicode::Japanese->new($kw, "euc")->utf8;
  my $h = $ss->search_slideshows({'q' => $kw, page => '1'});

  my $rd = Unicode::RecursiveDowngrade->new;
  $rd->filter(sub {
               Unicode::Japanese->new(shift, 'utf8')->euc
               });
  $h = $rd->downgrade($h);
  print Dumper $h;

}

main;

下記は実行結果…

% perl ss-search.pl
$VAR1 = [
         bless( {
                  '_data' => {
                               'ID' => '4022379
 ',
                               'Slideshow' => '
 ',
                               'Status' => '2
 ',
                               'InContest' => '0
',
                               'ThumbnailSmallURL' => 'http://cdn.slidesharecdn.com/r-100508200327-phpapp02-thumbnail-2
 ',
                               'Format' => 'pdf
 ',
                               'Title' => '普通のプログラミング言語R
 ',
                               'SlideshowType' => '0
 ',
                               'Username' => 'shuyo
 ',
                               'ThumbnailURL' => 'http://cdn.slidesharecdn.com/r-100508200327-phpapp02-thumbnail
 ',
                               'URL' => 'http://www.slideshare.net/shuyo/r-4022379
 ',
                               'Embed' => '<div style="width:425px" id="__ss_4022379"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/shuyo/r-4022379" title="普通のプログラミング言語R">普通のプログラミング言語R</a></strong><object id="__sse4022379" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=r-100508200327-phpapp02&stripped_title=r-4022379&userName=shuyo" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse4022379" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=r-100508200327-phpapp02&stripped_title=r-4022379&userName=shuyo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/shuyo">Shuyo Nakatani</a>.</div></div>
 ',
                               'Language' => 'ja
 ',
                               'Updated' => 'Mon May 10 10:11:23 -0500 2010
 ',
                               'Download' => '1
 ',
                               'DownloadUrl' => 'http://s3.amazonaws.com/ppt-download/r-100508200327-phpapp02.pdf?response-content-disposition=attachment&Signature=m8OizC9neJu82l41jZSX9C53F%2F4%3D&Expires=1322808380&AWSAccessKeyId=AKIAJLJT267DEGKZDHEQ
 ',
                               'Created' => 'Sat May 08 20:03:12 -0500 2010
 ',
                               'Description' => 'Tsukuba.R #7
 '
                             }
                }, 'WWW::SlideShare::Object' ),
...

取得したプレゼンファイルを見ていると,キレイなレイアウトが多くて自分の作るドキュメントにも参考になりそうなものが多そうですね.

関連リンク