異邦人になってみた~~上海生活写真ブログ

中国上海市在住です。もう10年を超えました。休日は星空(天の川)撮影やポートレート撮影等、連休時はカメラを持って中国各地を旅行してます。最近は内モンゴル自治区によく行っています。

 このブログについて(about)
  中国旅行/観光/写真記事一覧(省別)

中国からPHPでフェイスブックアプリを作ってみた。

簡単なフェイスブックアプリですが、中国で作るのは大変だと感じました。
まず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.
まあこんなしょぼしょぼアプリなんじゃダメか。。。
暇見つけてバージョンアップして行こうかと思いますが、
もう飽きたという説もあります。。。


使用がころころ変わってるのも問題ですね。
今書いているけど、またしばらくすると変わっていくかもしれませんね。