PHP

2013年06月06日

youtubechannelautoplay

Youtubeって再生リストの連続再生はできるけどチャンネルの連続再生は出来ないぽかったので、好きなチャンネルを次々と自動再生するサービス作りました。上のボックスにチャンネルID入れてボタン押せば使えます。

Youtube Channel Autoplay
※右上の?をクリックすると使い方が見れます。

技術的に勉強できたのは、
・ブックマークレットの作り方(外部js利用とか)
・Youtube Data API と Youtube Player API の簡単なこと
・Facebook OGP の書き方

こんなもんかしら?難しいことやったというより、簡単なことを割と丁寧に作った感じです。やー楽しかったー。我ながら結構使える感じにできたと思いますので、動画好きの方ご利用下さい。あとこれは外部プレイヤーだからだと思うんだけど、うっとおしいCMが全く流れないというのが、個人的にアツいです。流れないよね?たまたま?

今後の予定としては、シャッフル再生とよりたくさんの動画読込(現状50件まで)を実装するつもりです。デバッグ協力してくれた @playlogjp@SteveMai666 ありがとう!

13.6.7 22:07 追記
更新状況などのお知らせ用に、Twitterアカウント @VIDECTnet 作りました。

sarustar at 20:53|PermalinkComments(5)TrackBack(0)このエントリーをはてなブックマークに追加 mixiチェック Clip to Evernote

2012年08月08日

beans

作ってみたいwebサービスがあって、色々調べた結果グラフデータベースというものを扱えると捗るぽいという事が分かったので、オープンソースのグラフデータベースneo4jについてうっすら勉強しています。当方1年ほど前までは「ActionScript以外分かりません!」という状況でした。という前提で、ここ1年ほどの間に分かったことを、ちょっと書くのが恥ずかしいレベルの話までまとめておこうと思います。間違ってる所もあるかと。後から間違ってることが分かった場合随時更新するつもりですが、「間違ってるけどまぁそう思っておけば特に問題はないよ」ってのはスルーする方向。

  1. htmlは構造と内容、CSSはデザイン、jQueryは大ヒットJavaScriptライブラリ。

  2. divなりなんなりに名前つけてcssでデザイン整えたりjQueryで操作したりする。

  3. ライブラリはソースを便利にまとめたもの。機能群。

  4. WordPressはphpで作られた製品というか。ブログ向けだけどサイト作るにも便利で、そういう時はWordPressをCMSとして使う、という言い方をする。

  5. Ajaxは非同期通信。まず外観と機能をロードして、データは随時更新して内容を変える。

  6. phpはサーバー上に置いておいて、アクセスしたら動く「サーバーサイドスクリプト」

  7. phpはhtmlとかxmlとか時にはjpgとかを「書き出すための言語」 ファイルというよりプログラム。

  8. 細かくhtmlspecialchars

  9. phpはMySQLとの接続が簡単→ASからは直接データベースに接続できないので、データベース→phpでxml(or JSON)を書き出す→ASで解釈という流れを取る

  10. form action="hoge.php"でデータを渡す先を指定。action=""で自分にデータ渡して再読込。
    input name="hogege" でデータを渡し、$_REQUEST('hogege') $_POST['hogege']でデータを受け取る。

  11. phpでログイン情報とか一定期間保持したい情報はセッション使う

  12. xmlはhtmlタグみたいな構造。JSONはCSSみたいな構造。構造が違うだけで同じようなもの。

  13. CakePHPはPHPのフレームワーク。骨組み。

  14. Smartyはごちゃごちゃになりがちなビューとロジックの分離。tumblrとかブログサービスのカスタマイズみたいな。強いて言うならDreamWeaverのテンプレート使った時の操作感というか。

  15. MySQLはリレーショナルデータベースと呼ばれるデータベースの一つ。オープンソースで人気。

  16. クエリーはデータベースへの要求。

  17. リレーショナルデータベースは表みたいなデータベース。行→レコード、列→フィールド(=カラム)

  18. XAMPPは擬似サーバ。ローカルにMySQLデータベースを作ったりPHPを動かしたりできる。

  19. リレーショナルデータベースの他に、グラフデータベース、オブジェクトデータベースとか色々ある。NoSQL。

  20. Graphというのは人とかモノ同志の「繋がり関係」を表す。mixi graphとかfacebook graph api とか。

  21. neo4jはオープンソースのグラフデータベース。

  22. neo4jにアクセスしやすい言語は現状JAVAやRuby。

  23. JAVAは色んな用途があるけど、Webアプリ作る場合は「サーブレット、JSP」が大事。

  24. サーブレットはサーバーで働くJAVAプログラム。JSPはhtmlに書き出すための仕組み。

  25. サーバー上のflashプレイヤーみたいな、JAVA実行環境(=サーブレットコンテナ)をサーバーにインストールする必要がある。

  26. 有名なサーブレットコンテナはtomcat。

  27. バイトコードはJAVAプログラムを半分だけコンパイル(flashでいうパブリッシュ)した状態のコード。

  28. JAVAアプレットはhtmlに埋め込むJAVAプログラム。swfファイルみたいなもの。

  29. Eclipseは統合開発環境。JAVA書くならこれ。

  30. tomcatとかneo4jとかいけるレンタルサーバーはあまりない。Kagoya FLEX?

  31. Githubつかうとカッコイイと思います。

  32. ActionScript3はキレイな言語だと思います。

  33. デザインしながら要件定義→プログラミング意識しながらコーディング→プログラミング


ふーとりあえずこんなもんかしら。

ActionScript3に慣れてきた僕からすると、html周りのことって煩雑な印象を持ってしまいますね。単純に用語が多すぎるというか。でもこの煩雑さが世界なんだろうなと思ったりもします。日々精進でがんす。

sarustar at 21:35|PermalinkComments(0)TrackBack(0)このエントリーをはてなブックマークに追加 mixiチェック Clip to Evernote

2012年07月21日

facebook

今更だけどPHPでFacebookアプリ作ったのでメモ。タイトルに日付入れたのは、Facebookアプリ制作やった人なら御存知の通り、Facebookさんがしょっちゅう仕様変更するからです。調べてやっとたどり着いた情報が使えないとか何度あったことか。制作の手順としては、まずHTMLとCSSでデザイン作って、必要ならjQueryとかあてて、最後にPHPを組み込んでいきました。facebook sdk for PHP は
コチラからダウンロードして下さい

今回のアプリの仕様は、
「良いね!押してもらって、アルバム作成して、そこに画像を複数枚投稿する」
という感じです。

ということでまず。いいね!を押さないと先に進めないようにする。

require 'facebook.php'; //facebook php sdkまでのパス。
$facebook = new Facebook(array( //2~5行目は外部化したほうがスマート。
'appId' => 'アプリID',
'secret' => 'シークレットキー',
));
$signedrequest=$facebook->getSignedRequest();

if($signedrequest['page']['liked']) {
//ここに「いいね!」してもらった時のソースを書く
}else{
//ここに「いいね!押して下さい」的なソースを書く
}
こんな感じ。いいね!を押したら勝手にリロードされるので、これで動作します。とっても良い感じ☆

次いで、アルバム作成と画像アップロード。

require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'アプリID',
'secret' => 'シークレットキー',
'fileupload'=>true
));
$user = $facebook->getUser();

//アルバム作成とアルバムID取得-------------------------------------------------------------
if($user){
try{
$album=$facebook->api('me/albums','POST',array( //アルバム作る
'name'=>'アルバム名',
'message'=>'アルバムのメッセージ。ウォールに書き出される'
));
$albumJSON=$facebook->api('me/albums','GET'); //アルバム一覧のJSONデータを取得
$albumID=$albumJSON["data"][0]["id"]; //アルバム一覧の0番目(最後に作ったアルバム)のidを取得
}catch(FacebookApiException $err){
exit($err);
}
}

//画像を4枚投稿-------------------------------------------------------------------------
$postImgArr=array('1.jpg','2.jpg','3.jpg','4.jpg'); //投稿する画像のパスの配列
$capArr=array('キャプション1','キャプション2','キャプション3','キャプション4'); //画像キャプションの配列
if($user){
for($k=0;$k<4;$k++){ //画像投稿を4回繰り返す
try{
$post=$facebook->api(
$albumID."/photos", //指定アルバムに
"POST", //投稿
array(
"source"=>"@".$postImgArr[$k], //@が大事みたい
"message"=>$capArr[$k] //画像キャプション
));
}catch(FacebookApiException $err){
exit($err);
}
}
}
こんな感じです。アルバム作成の辺りは、アルバム作って全アルバムデータ取得して...って感じなので、結構無駄がある気がします。が、動いているのでおk。しかしこの情報もいつまで有効なのだろうか...怖い...

facebookアプリはわりかし面白いこと出来そうというか、ちゃんと反応が見られるので、作っちゃえば楽しいかもと思います。必要なコード量自体はとても少なくて素晴らしいのだけど、動作が安定しなかったりsandboxモードの信頼性が低かったり、facebookさんのやんちゃぶりに振り回されて、結構気の休まらない開発になりました。

今回のサンプルで作ったもの↓
https://www.facebook.com/ladykaga.jp/app_492566150757081

sarustar at 13:51|PermalinkComments(0)TrackBack(0)このエントリーをはてなブックマークに追加 mixiチェック Clip to Evernote

2011年06月23日

wp

先日、
WordPressで覚える、PHPの超基礎!という勉強会に参加するため、大阪行ってきました。朝一で大阪行って深夜バスで東京という強行スケジュール。その後花小金井でブスラジ収録するなどして、今はmiyama cafe@目黒。ルノアールとmiyamaにはお世話になってます。iPodと携帯を充電しながらLivedoorWirelessでPC利用中。

勉強会は参加して良かった。「PHPはずばりHTMLを出力するための言語です」ってお墨付きが貰えたのと、WPテーマをマッサラにして一から組む手順が分かったのと、あとCodexってページの存在&利用法が分かったのが収穫でした。プログラムの文法はASと似てたので、そこはふむふむと。WPが優秀って事なのかもだけど、直感的に分かりやすい言語なのかなーという印象。そういう印象持てたのも良かったです。講師の@HissyNC さんありがとうございました。

今回wordpressをインストールしてみてびっくりしたんだけど、tumblr.の「Share on Tumblr」ブックマークレットみたいなのって、そもそもwordpressに組み込まれてるのね。どっちが先なのかは分からないけど、あの便利機能がさっくり標準装備されてるのって、だいぶ素敵だと思う。一気にWP好きになった。今更かもですけど。

で。

tumblr.の「Share on Tumblr」とかtwitterとかって、要は「分解」のツールだ。この分解ってのは、ここ数年のインターネットのトレンドのように思う。対象者の脳みそからもれ出る呟きをtwitterで切り取って、文章の一部をQuoteで切り取って、偉人の生き様を名言でワンフレーズだけ切り取って、断片を次々に消費する感じ。Youtubeなんて、再生開始時間をURLで指定する事ができる。映像を断片化するようなものだ。そう考えると、サイトをページ単位に分割するのが検索サービスな訳で、ここ数年のトレンドというよりは、ほとんどインターネットそのものだったのかもしれない。

そこから先、じゃぁその断片をどう整理するかというのは、「個人のTL/Dashboardの個性」とか、FBだったら「個人とその友達の関係性」って言葉でしか示されてない。その極地が多分FriendFeedで、あれは全ての断片を、TLでもDashboardでも関係性でもなく「個人」に集約しちゃう、断片化時代の一つの解なのだと思う。やってる事はほとんどデフラグに近い。

そういう、断片の集積がただあるのみって状況は、確かに情報にとって純粋な状況なのかもしれないけど、それはあくまで情報の一側面なのではなかろうかと思うし、情報と向き合う人間にとって、あまり良い状況ではないようにも思う。砂漠でどこどこに水があるって情報は、今自分がどこにいるかって情報とセットにならないと、人間にとって意味が無い。現状のインターネットは、砂漠のど真ん中で「今自分がどこにいるか」って情報とのつながりが無いまま、「どこに水がある」って情報だけが飛び回ってるように見える。そのオアシスは蜃気楼かもしれないのに。

分解された情報の再構築をテーマにしてるサービスを例に挙げてみると、togetterはまさにだし、amazonの「あなたへのオススメ」もそうだし、turntable.fm もそうだと思う。DJって、断片化された音源という情報を再構築して物語を作るのが役割だ。最も、今のところそこで共有される物語って「個人のセンス」でしかなさそうだけど、例えばニコニコやyoutubeの「作業用BGM」みたいな使われ方をすると、それは「作業に適した音楽」という物語を作り、「作業を効率的に/楽しく進める」という価値を生む。

情報は独立したがってるのと同時に、繋がりたがってもいる。PermalinkはHyperlinkを必要としている。バラバラに刻まれた情報をある意図に沿って整頓するサービスは、断片化が進むに連れて、より価値を増すのだと思う。楽しく編集するツールは、インターネットにもっとあっても良いんじゃないかなーと思う。

sarustar at 16:51|PermalinkComments(0)TrackBack(0)このエントリーをはてなブックマークに追加 mixiチェック Clip to Evernote