簡単なフェイスブックアプリですが、中国で作るのは大変だと感じました。
まずVPNにつないだ状態じゃないとフェイスブックが見れない。
テストしようにもVPNがある環境じゃないとテストできない。
VPNに接続するとこんどは中国側では見れないサイトが出てくる。。。。
さらにVPNにつないでいるとFTPに繋げない、FTPに繋ぐときはVPNを切り。。。
めんどくさすぎる。。。
フェイスブックアプリ自体は、枠だけ?なので
PHPのサンプルはたくさんあります。
ただ、フェイスブックAPIの仕様がころころ変わってるのか?
サイトによって書き方が違ってたり動かなかったりします。
なのでどれが正しいのかよくわからない。。
ユーザ名とウォールに投稿機能だけ付けるのに結構時間かかりました。
それじゃ何なので、前に作成したHSKの問題ページを埋め込んでみました。
ウォールに登校部分は最初JAVASCRIPTだけでPOSTするつもりだったんですが
JAVASCRIPTのつかいかたよくわかんね、というかデバックできんのか。。
面倒なのでPHPで書きました。
途中、以下のエラーが出てどうやって解決するのかよくわかりませんでした。
An active access token must be uesd to query information about the current user
(アクティブアクセストークンはカレントユーザーに関する情報を訪ねるように使用するに違わない?)
英語よくわかんないのでどうも意味不明。。
いろいろ調べると、
$facebook = new Facebook(array('appId' => FACEBOOK_APP_ID,'secret' => FACEBOOK_SECRET,));
で作成した$facebookインスタンスを使いまわす必要があるらしい。。
アクセストークンを渡せば問題ないという回答もあるみたいですが、それもうまくいかないので、
これはセッションに入れるしかないということで、やってみました。
index.php
//セッションにfacebookを格納
$_SESSION['facebook'] = serialize($facebook);
として、
post.php
//セッションからfacebookを取得
$facebook = unserialize($_SESSION['facebook']);
で受け取って使ってみた。
後、ポストする際にアクセストークンが必要なのか必要でないのかもよくわからない。。
$result = $facebook->api('/me/feed', 'POST',array( 'message' => $textmessage));
がこれでメッセージは自分のウォールに書き込むことができました。
公開しようと思ったらダメだって。。。モードかえないとだめなのかな。。
自分では確認できるんだけど、ほかの人が見れるかどうか、ダミーのアカウント作るしかないのか。。。
Your app does not have high enough ratings and user engagement to be eligible for the App Center at this time.
まあこんなしょぼしょぼアプリなんじゃダメか。。。
暇見つけてバージョンアップして行こうかと思いますが、
もう飽きたという説もあります。。。
使用がころころ変わってるのも問題ですね。
今書いているけど、またしばらくすると変わっていくかもしれませんね。