PHP SDK の使い方 その4

次は、ログイン処理の実行です
ログイン処理には、
Facebookクラスの getLoginUrl()
を使います
ソースで書くと
$url =$facebook->getloginUrl(
array(‘redirect_url’=>$canvasurl)
);
echo ““;
そして、このメソッドで必要な
アクセス権限を設定します
になみに
PHP SDKの ver3.0以降の場合
redirect_url に Facebookでの
キャンバスページのURLを指定しないと
ログイン後にfacebookの
フレームが解除されます
こうなると、php入門書にあるような
真っ白なページに表示されるという
状態になりますので注意しましょう

PHP SDK の使い方 その3

引き続き PHP SDKの解説です
今回はアプリ初期化から
アプリ初期化は
new で Facebookクラスのインスタンスを
生成します
ソースを書くと
$facebook = new Facebook(
array(‘appId’=> ‘アプリケーションID’,
‘secret’=>’シークレットキー’));
となります
new を使った初期化は
androidでも使うため、覚えておくと便利です
あと、facebookではなく
大文字で、Facebookになっているので
注意しましょう
PHP SDKを使う場合
シークレットキーが必須なのも
注意しましょう
続いて、ログイン状態のチェックです
これは、
FacebookクラスのgetUser()で取得します
 
ソースで書くと
$user =$facebook->getUser();
getUser()は
ログイン済みならユーザIDを返し
ログインしていないなら0を返します
このメソッドの返り値を使い
if文で判定すれば
ログイン状態がチェックできます

PHP SDK の使い方 その2

引き続き、PHP SDK関連です
以下は、お決まりの文面ですが
まとめるため簡単に解説です
ます、キャンバスページのURLを格納します
$canvaspage=’apps.facebook.com/App Namespace/’;
この App Namespace/を
自分で取得したものに変更します
ちなみに、App Namespace/は
アプリ開発のときに登録したものです
次に、プロトコルの判別
$protcol=isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] == ‘on’
?’https://’
:’http://’;
これは、プロトコルを格納するのですが
isset()で判別しています
isset()は
指定した変数がセットされているかを
調べます
今回、調べているのは
$_SERVER[‘HTTPS’]
これにより
現在の通信状態の確認をしています
参考サイトは
http://dhive.jp/blog/yama/?p=271
?’https://’
:’http://’;
の部分は
三項演算子
で、if elseの別バージョンみたいなものです
つまり
サーバーの通信状態がhttpsで
Httpsが onなら
プロトコルは
https://
そうでないなら
http://
となるようにしています
あとは、これらを組み合わせ
ログイン後にリダイレクトするページのURLにします
$canvasurl = $protcol.$canvaspage;
これで、キャンバスページのURLが
$canvasurlに格納されます
.はPHPでは文字列連結に使うため
http://キャンバスページのURL
もしくは
https://キャンバスページのURL
になります

PHP SDK の使い方 その1

facebook PHP SDK の使い方
でダウンロードと展開方法を書きました
次に
facebook PHP のSDK の処理
で処理の流れを書いたので、今回はちょっとまとめてみようと思います
まず PHP SDK読み込みから
PHPで外部ファイルの読み込みをするには
include()
include_one()
require ()
require_one()
のどれかを使います
これを使ったサンプルを見たい場合、参考書籍としては
PHP逆引き大全 516の極意

などを参考にすると、関数についても説明が載っていてわかりやすいと思います
また、これらをつかったAPIとして
Web サービス API 勉強会があります
Ustream でも動画配信されていましたので、実際に動画をみながらおこなうと
よりわかりやすいと思います
PHPのマニュアルを見たい場合には
http://php.net/manual/ja/index.php
にのっています
使い方のソースを書くと
PHP SDKの読み込みは
require_one ‘./src/facebook.php’;
となります

sed コマンドを使ってファイル編集

sed コマンドを使うことで、ファイルの編集ができます
編集だけなら vim でも十分なのですが
sed コマンドを使い編集ができるようになると、
スクリプトにして処理することができるようになります
一番活用できるのは、サーバーの設定をするとき
仮想環境でサーバー構築するときに、毎回 vim でファイルを開いて
編集し。コマンドを打ちつづけるのはかなりのロスがでてきます
また、手打ち入力は練習にはよいのですが
入力ミスなどでエラーがおきる可能性も高くなります
このため、sed コマンドを組み入れたスクリプトを使うことで編集のミスを
減らし、構築の手間を減らします
以前。スクリプトを混ぜたサーバー構築実験
で簡単ながらもいちおうは設定できるスクリプトをつくりました
この中で
#7行めに追記(自FQDN名を指定)
sed -i “77i myhostname = mail.linuxwiki.com” /etc/postfix/main.cf
のように文字列を挿入することがあったため
応用で複数行の文字列を挿入できないか調べてみました
検索キーワードは
Linux ファイル編集 sed
あたりで行って見ました
複数行の追記については
sed aコマンド、 iコマンドの動作(指定文字列の挿入、追加) 【Linuxコマンド】
を参考にさせていただきました
sed ‘3a\ABC\
> DEF’ sample.txt
というように\
コマンドで入力するときのように改行して行うか
もしくは
sed ‘3a\ABC\nDEF’ sample.txt
というように\nで改行すればよいようです
ちなみに、このサイトを参考にさせていただいて
気づいたのですが
i だと行の前
r だと行の後
になるようです
sed ‘3a\ABC\nDEF’ sample.txt
だと3行目の後
sed ‘3i\ABC\nDEF’ sample.txt
なら3行めの後になるようです
そして、今回。もっとも探していたもののヒントが見つかりました
sed rコマンドの動作(ファイル読み込み) 【Linuxコマンド】
に載っていました
これを使うことで、よくある設定ファイルのところに
追記する内容というものをスクリプトで処理できるようになりそうです
sed ‘1r read.txt’ sample.txt
とすることで
sample.txt の
1行めの後に read.txt の内容を追記できます
ただし、このままではファイルの編集はされていません
このため、
sedコマンドでファイルを上書き編集
を参考に
sed ‘1r read.txt’ sample.txt

sed -i -e ‘1r read.txt’ sample.txt
とすることで、上書きすることができます
これに加えて
http://d.hatena.ne.jp/anmino/20090809/1249786160
のような処理を加えるとかなり効率的な操作ができるようになりそうです
最終行への追記も考えました
$を指定すれば最終行へ追記することができます
sed -i -e ‘$r read.txt’ sample.txt
とすれば、sample.txt の最終行へ
read.txt の内容が追記されます

JavasScript SDKの使い方 その3

引き続き、ログイン関連についてです
アプリへのログイン状態を
FB.getLoginStatus() で取得します
この関数は、ユーザのログイン状態に応じてレスポンスオブジェクトを返します
ログインの状態は
このレスポンスオブジェクトの
authResoponse オブジェクトの値をIF文で判定してチェックします
続いて、アプリのログイン処理です
アプリのログイン処理には FB.login() を使います
そして、このメソッドでアクセス権を設定します
アクセス権は Permissions というプロパティで
Linux サーバーなどではお馴染みのパーミッションのようなかんじです
で、このFB.login() ですが
ダイアログボックスが ポップアップ表示なので
ブラウザのセキュリティで消してしまうことが多いのです
これを回避するには
ボタンをクリックするとかいうように、何らかのユーザのアクションに結びつける
ようにします
いちばん使われるのは、たぶん、ボタンクリックあたりだと思いますが

JavasScript SDKの使い方 その2

続いて、アプリの初期化です
アプリ初期化は
FB.init()
で行います
ソースを同期するほうで書くと
$(function(){
appId: “アプリケーションID”,
cookie: true,
oauth: true
});
非同期なら
window.fb.AsyncInit を使って
window.fb.AsyncUbur = function(){
FB.init(){
appId: “アプリケーションID”,
cookie: true,
oauth: true
});
};
というようになります
認証が必要なアプリについては
appId: “アプリケーションID”
が必要になります
FB.init() には様々なプロパティがありますが
oauth: true を指定して OAuth2.0 を有効にする必要があります
主要なプロパティとしては
appId
アプリのIDの設定
cookie
クッキーサポート
logging
ロギングの設定
session
セッションオブジェクトの利用
status
ステータスのフェッチ
xfbml
XFBML タグのパース
channelUrl
カスタムURLチャンネルファイルのURL指定
oauth
OAuth2.0 を有効にする
となります
次はログイン状態のチェックをまとめてみます

Java Script SDK の使い方 その1

facebook アプリを作るときに
JavaScript SDK をつかう時の処理の流れを書いてみました
まず、最初に JavaScript SDK ライブラリファイルをロードします
これは、Facebook のサーバーにあるライブラリファイルを
Script 要素でロードすることで使えるようになります
ちなみに、ライブラリファイルのURLは
http://connect.facebook.net/ja_JP/all.js
これをSSL対応するなら
https://connect.facebook.net/ja_JP/all.js
ただし この JavaScript SDK を使うにあたって
id 属性が fb-root の divタグが必要です
ソースでかくと
<div id=”fb-root”></div>
これがないと動作しませんので要注意です
で、次に読み込ませかた
これは2種類あり、APIなどを使っているとお馴染みの
同期読み込みと、非同期読み込みの2つになります
twitter アプリなどをつくるときにはよくでてくる用語です
サンプルなどだと、非同期の場合が多いかも
非同期の場合
ライブラリファイルをロード完了してから
window.fb.AsyncInit() が実行されるため
アプリの初期化処理とかは
window.fb.AsyncInit() の中に記述します
* window であって windows じゃないですよ
同期の場合には
src 属性にライブラリファイルのアドレスを指定した script 要素
つまり
<script type=”text/javascript”
src=”http://connect.facebook.net/ja_JP/all.js”>
<script>
これを <header> もしくは <body>
タグの中に書き込みます
とりあず、これがライブラリのロードです
次回はアプリの初期化をまとめてみようと思います

オリンパス、上場維持の可能性

巨額の損失隠しにより、最近の話題となっていたオリンパス
東証はオリンパスの上場を維持するようです
しかし、いままでの粉飾決算をしてきた会社は
上場廃止になっていたのに対して、大きな会社だから
上場が維持されるのなら、透明性や公平性にかけるのでは?
本日届いたメルマガに、
中学生にもわかるライブドア事件
というページへのリンクがありましたので
興味深いものがあったので、載せてみました
テレビなどでは詳しく報道されないため、自分なりに
ネットなどを使って情報を集めることが重要になっていきそうです
そういえば、サブプライム関連も
日本の株式市場が上昇し、円安だったことと関連があります
なんらかの高成長や景気拡大がある場合、
理由がありますので、それに基づくバブル崩壊を避けるためにも
情報収集が重要となってきます

ゲーミフィケーションとFBアプリ

最近の話題としてでてくるようになってきた
ゲーミフィケーション
これを使っているので、おもしろいものがFBアプリにはいろいろと
あります
今回の検索結果で興味深かったのが
診断アプリはもう古い?4つのFbアプリからみるファン獲得には留まらないコミュニケーション
診断アプリなどもおもしろいのですが
今後は企業のマーケティングの一環として
いろいろとキャンペーンアプリがでてきそうです
いままでは、CMといえばテレビなどがメインでしたが
今後はこういったゲームなどを使って認知度をあげる手法が
多くなりそうです
というわけで、現在FBアプリ作成の勉強中です