異邦人になってみた~上海の人 

読者です 読者をやめる 読者になる 読者になる

異邦人になってみた~上海の人 

上海在住です。中国時代劇をよく見ています、中国旅行の事、weiboやQQの設定、一眼レフカメラの写真掲載、上海での日々の生活情報を書いています

 記事一覧表示
スポンサーリンク

中国から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.
まあこんなしょぼしょぼアプリなんじゃダメか。。。
暇見つけてバージョンアップして行こうかと思いますが、
もう飽きたという説もあります。。。


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