Facebook アプリ作成で必要な curl

第四回Web APIを使ってWebアプリケーションを作る勉強会
に参加しました
とはいっても、仕事の関係上、録画していただいたものをみながら行っています
今回、つまづいたところとしては、
SSL通信可能なサーバーを用意するところでした
実際にはSSL通信可能なサーバーは、以前からいろいろと
VMware Player で構築してあったので、これについては問題なくできたのですが
問題は、ここではなく
その後のアプリへのアクセスでおきました
SSLの証明書作成や Web サーバー構築などについては問題ないのですが
キャンバスページへアクセスすると
Fatal error: Uncaught exception ‘Exception’ with message ‘Facebook needs the CURL PHP extension.
というエラーが発生します
原因は、エラーにあるように、curlがないためでした
このため、以前 VmwarePlayer で作成した fedora13 を使うことにしました
この仮想マシンには XAMPPでいろいろと 日経Linux を参考に
Web アプリをインストールしてありましたので、こちらを使うことで解決しました
XAMPP で WordPress
Webメールアプリ RoundCube
スクリプトを混ぜたサーバー構築実験
Piwigo でWeb フォトアルバム
ClipBucket
といった過去に掲載した内容がこれには構築してあるため、実験には最適でした
なお、今回の勉強会では
レンタルサーバーを用意して行っていましたが、XAMPPや自宅サーバーでも
再現はできるようです
(今回はXAMPPで行いました)
xampp で実験する場合、
/opt/lampp/htdocs/
の中に
mkdir /opt/lampp/htdocs/facebook
として
facebook というディレクトリを作成
必要なファイルの編集が終わったら、FTPソフト、FileZila
もしくは scp コマンドで転送することですすめることができます
今回の場合、キャンパスURLには
http://192.168.10.141/facebook/
セキュリティで保護されたキャンパスURLには
htts://192.168.10.141/facebook/
というようにしました
セキュリティで保護されているほうは
https となりますのでご注意
ちなみに、XAMPPの場合、permission 関連でエラーになることがあるので
そのときには
chown で権限を変更することが必要になります
今回は、scp でコピーしたときに root 権限になっていたので、
URLへアクセスしてもエラーになりました
対策として
chown wiki -R /opt/lampp/htdocs/facebook/
として
権限を root から一般ユーザへと移す必要がありました

Google Map API の有料化

google アラートを使ってマッシュアップや API関連を
メールで届くようにしていますが
気になるものが送信されてきました
それは Google Map API の来年からの有料化
とはいっても、使うと課金ではなく、関係するのは 開発者サイド
このため、Google Map をつかったサイトが少し減るかもしれません
情報ソースは
Google Maps API有料化の詳細発表、該当ユーザーは2012年初めに強制課金開始
Android アプリ作成で使っている場合、どうなるのか調べてみようと思います

Facebook 開発者登録

第1回 Facebookアプリを開発する前に必要な予習と準備とは
と、ネットでの検索を使って登録してみた
基礎から分かる、Facebookアプリの作り方
にも載っているけど、
ITPro のほうが内容が新しいのでいいかもしれない
ただし、こちらの記事の内容は
PHPと Eclipse プラグインが必要
Windows Azure SDK が必要
Facebook アカウントがすでに取得済みという条件付き
今回は、開発者登録のみなので、
facebook にログインして、一番下にある 開発者 をクリック
次に、画面の上にある アプリ をクリック
パスワードを聞かれるので Facebook のパスワード入力
最初にログインしたときには、
基本データへのアクセスを許可するか聞かれるので、許可する
をクリック
これで、開発者登録は完了となります
ただし、いままでやってきたものとは大きく違うところは
アプリを登録するのには条件が難しいかもということです
アカウントを作成してから一定期間以上経っていること
そして、
アカウントに携帯電話、またはクレジットカード情報を登録する
この2つが必要な条件になっています
しばらくは、Facebook アプリとマーケティングの勉強のため
facebook を使って見ようと思います

円高というようりドル安

最近は、円高で戦後最高値更新が報道されています
しかし、ドルに対しては高値更新中ですが
ユーロやポンド、オーストラリアドルなどに対しては
むしろ円安傾向です
これは、ユーロなどの通貨には、クロス円という計算になるためです
クロス円の計算は、以前書いたように、対ドルレート x ドル円レート
になります
ここ最近、ドル円レートはほぼ動きませんが
ユーロやポンドなどに対してはドル安となっているため
必然的にユーロ円などは上昇していきます
もし、対ドルでのレートを維持したまま
ドル円が円安になると、クロス円は大幅に円安になります
計算としては、ユーロ円の場合
76 x 1.41 = 107.16
77 x 1.41 = 108.57
78 x 1.39 = 108.42
というように計算できます
円が投機的ともいわれていますので、月曜日のIMM通貨ポジションなどを
参考に、どれくらい円ロングが積み重なっているかをみたほうがよさそうです
ちなみに、米国の景気が悪いからドル安というより
ほぼゼロ金利になっていて、続きそうなので
キャリートレードでドル安というかんじです
過度のドルキャリーは、以前の円キャリーの巻き戻しのような
逆流現象を引き起こしますので、値動きには注意しましょう

AmazonEC2 Elastic IPs

AWS にログインし、EC2 の中にある
Elastic IPs をクリック
Allocate New Address
をクリック
Are you sure you want to allocate a new IP address?
と聞かれ、
ELP used in で EC2 か VPC を聞かれるので
今回はAmazonEC2 なので、EC2を選択肢
Yes,Allocate
をクリック
これで、Adress のところに 固定IPが表示されます
次に、
取得した固定IPアドレスにチェックを入れてから
Associate をクリックし
固定IPをつけたいインスタンスを選択して
Associate をクリックします
これで選択したインスタンスの情報がでてくればOKになります
次は Value Domain で独自ドメインを取得してみようと思います
今回は、Amazon EC2で固定IPを取得する
を参考にさせていただきました
画像入りなので、とてもわかりやすかったです

YouTube の Data API

Google Android WebAPIプログラミング入門
を参考に、今回は Youtube API について勉強してます

今回、書籍に載っているのは、この Data API を
Android アプリに利用したもの
できることは、
動画の検索、
標準フィードの取得、
関連コンテンツ表示
動画アップロード
評価、コメントの投稿、削除
などなど
動画検索には、
http://gdata.youtube.com/feeds/api/videos
にパラメータを付加して検索するとのこと
レガシー API と新しい API の違い
に違いが載っていました
レガシーAPIを使うには、デベロッパーIDが必要になるみたいです
動画検索意外にも関連動画、動画レスポンス、標準フィールド
ユーザのお気に入り、再生リストも同じように検索するようです
http://gdata.youtube.com/feeds/api/standardfeeds/top_rated
で評価の高い動画の標準フィードを取得して表示できます
日本語フィードのみ取得するには
http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated
というように、JPを追加します
フィードをJSON形式で受け取る場合は alt パラメータに
json を指定します
デフォルトはXML形式らしいです
参考サイトは
YouTube Data APIで取得可能なフィード
です
http://gdata.youtube.com/feeds/api/users/default/playlists?v=2
で現在ログインしているユーザのプレイリストを表示
そして
http://gdata.youtube.com/feeds/api/users/username/playlists?v=2
というように
default を username(実際にはYoutube のユーザ名を指定)
にすれば、特定のユーザのプレイリストを表示できるようです
こちらは
デベロッパー ガイド: Data API プロトコル – 再生リスト
を参考にしました
一番使いそうなのは
特定の最新投稿をみたいときに使う
http://gdata.youtube.com/feeds/api/playlists/プレイリストID
http://www.youtube.com/view_play_list?p=50653251EDB4E764
というように、最後にプレイリストIDをつけることで
できるようです
参考サイトは
YouTube のRSSフィードリスト
です
プレイリストの調べ方は
再生リストIDの確認方法
に載っていましたので、こちらを参考にさせていただきました
あと、興味深かったのが
YouTubeの様々なフィードの購読方法(公式ページには載ってません)
に載っていたフィードの作り方です

YouTube API 動画活用

クロムレスプレイヤーを使うことで
再生バーやコントロールバーのない動画の埋め込みができるようになります
参考サイトとしては
YouTube Player を Flash に埋め込む
とか
feb19.jp blog – life is creative!
AS3 で Flash コンテンツに YouTube Player を埋め込む

がソースも載っているので参考になります
検索キーワードをクロムレスプレイヤーにすると、いろいろとでてくるので、調べる価値ありです

YouTube API の種類

いろいろと参考になりそうなのが
JavaScriptで、HTMLに貼り付けた(埋め込み)YouTube動画をコントロールする方法
(YouTube JavaScript Player API/SWFObject使用)

動画検索コントロール
で検索するとかなりでてくる
まず、ウィジェットについて
これは、We4b ページで配置する javaScrptit コンポーネント
このAPIはサーバーサイドで何らかのコードを各わけではなく
ブログ、CMS静的なHTMLページなどで配置するもの
(たぶん、ブログパーツとかAmazonのアフィリの貼り付けるものみたいなものだとおもわれます)
2011年3月の時点で使えたのは、動画バーと、動画検索コントロール
次に、カスタムプレーヤー
このカスタムプレーヤーは
自由に再生する動画を変更できる動画プレーヤー
配信する動画を変更する手間が省けるので、更新頻度が高いwebページに利用できる
ちなみに、再生できる動画は
1、自分の YouTube チャンネルに登録したすべての動画
2、お気に入り登録したすべての動画
3、特定のカスタム再生リストに登録したすべての動画
でも、再生リストを用意しておく必要性あり
で、次が興味をもった Player API
この Player API には、いろんな Webページで見かける埋め込みプレーヤーと
コントロールがないクロムレスプレーヤーの2つのAPIがある
で、注目なのがクロムレスプレイヤー
これ、以前動画マーケティングでみた再生やコントロールバーが
ない動画をつくることができるものに非常に似ている
多分、これをつかっているんじゃないかなぁと思っています

twitter のアプリ作成時のエラー

twitter のサンプルアプリを実行したときに
エラーになり、解決に時間がかかったので、対策をメモ
今回の原因はいくつかあり、
必要なパッケージが入っていなかったこと、そして
VMware Player で動かしていた ubuntu の時間がずれていたことが原因
まず、パッケージについては
php5-curl
が入っていないのが原因
なので、synaptics を起動して
検索で
php で調べ、
php5-curl をインストール
libcurl も必要なので、依存パッケージごとインストール
これで、パッケージ関連は問題無し
XAMPPでcurlやopensslなどのPHPエクステンションを有効にする方法
に記載されていた記事を参考にさせていただきました
ちなみに、今回は XAMPP ではなく ubuntu に apache2 をインストールしたものなので
微妙に違います
必要なパッケージをインストールしたら、
vim /var/www/test.php
でファイルを作成し
<?php
phpinfo();
?>
を記述して
:wq
で保存しコピー
firefox を起動し
http://localhost/test.php
へアクセスし
curl と openssl が使えること(enable になっていること)
を確認します
本来なら、これで解決なのですが
今回の場合は、まだこれだけでは
Could not connect to Twitter. Refresh the page or try again later.
となり、接続不能でした
原因を探るべく、検索した結果
Abrahamでエラー。
の時刻が調整されていないのでしょうか?
の言葉を見て思い出したのが、API 関連に関する制約でした
いろいろなAPIがありますが、Amazon や Youtube などには
一日にアクセスできる最大回数が決まっていたりします
(これの対策として、キャッシュ機能をつかうようなのですが、詳しいことはまだ不明です)
つまり、今回、日時がずれていて、この制約に引っかかったのではないかと思われます
ubuntu の時刻設定を修正したあと、再度アクセスした結果、無事にアプリの認証へと
すすむことができました

twitter のアプリ登録

https://dev.twitter.com/
へアクセスし
右上にある Sign in をクリック
すると、ログイン画面がでてくるので、
username にID
Password にパスワードを入力する
Please type the two words below.
とかかれているところの2つの単語をスペースで区切って
入力
ちなみに、最初にやったときに何度もログインしようとしても
エラーになるので、かなり悩んだが、ただ単に
登録が不完全だったようで、一度確認のメールを
自分のメールアドレスに向けて送り、
確認のURLをクリックしたら
あっさりといけるようになりました
あとで検索してみたらわかりやすい説明が
Twitterアプリケーション登録の仕方
に載っていました