2012年9月15日土曜日

FlexでFacebookアプリを作ろうとして挫折

■発作的にとりあえずやってみた■

初めてのFlexおよびFacebookアプリケーションの作成 – パート1:ローカルでのビルドとテスト

以下パート4までありますが、執筆者の肉食系キメ顔にびびらないで続ければ
  • Facebookアプリを登録
  • Flex/AIRで作ったアプリから氏名、誕生日、ステータスなどを取得
  • 同 メッセージをポスト
  • 同 アプリをデプロイメント
  • AIRアプリをFlashに変更
  • Facebook上でFlashが動くように処理

というところまでさくさくたどり着けます。このチュートリアルはとてもよく出来ていて、APIなどの探し方まで示してくれてます。素晴らしい。

ここまでは順調でした。

■Graph APIで大ハマり■

さて、Facebookアプリというからには、独自のプロパティに書き込みができないといけません。これについて上記チュートリアルには記述がありませんので、自力でなんとか。

まず、例によってfacebook developerページからオープングラフ>Getting Startedを選び、ActionとObjectを登録し「スタート」ボタンをクリックします。

この辺は「FacebookのOpen Graphアプリを作り App Centerに登録するには」が参考になります。言語は違いますが、とりあえずfacebookへの登録方法やAPIの構成は同じですので。


そんなこんなで、上のようなOpen Graphを作りました。で、画面の左側をみるとGet Codeというのがあります。ここを参考にすれば良いのかと思ったのがハマりの最初。こんなコードを書いて見たものの、エラーで先に進めません。


var data:Object = new Object();
data['fb:app_id'] = "xxxxxxxxxxxxx";
data['og:type'] = "taretest:bp_high";
data['og:title'] = inputTitle.text;
data['og:description'] = inputDescription.text;
FacebookDesktop.api("/me/taretest:record",submitPostHandler, data, "POST");

結局、これは完全に勘違いでした。以下のコードでとりあえずエラーは出なくなり、数値データは書き込まれないもののactivityとしてFacebookのタイムライン上に表示されるようになりました。

data['bp_high'] = 'http://samples.ogp.me/yyyyyyyyyyyyyyyy';
FacebookDesktop.api("/me/taretest:record", submitPostHandler, data, "POST");

ちなみに以下はどうやってプロパティを指定すれば良いか試行錯誤した痕跡です。書き込む側が悪いのか、表示するための設定が悪いのか…その辺はまた明日。

data['bpHigh']           = '1';
data['bpLow']            = '2';
data['bp_High']          = '3';
data['bp_Low']           = '4';
data['taretest:bp_High'] = '5';
data['taretest:bp_Low']  = '6';
data['bp_high:bpHigh']   = '7';
data['bp_high:bpLow']    = '8';



■凡ミスで大ハマり■

しかし、朝、作業を再開しようとするとFacebookDesktop.initとloginが失敗するようになってしまいました。リポジトリから古いソースを引っ張り出してもダメ。Macを再起動してもダメ。

いろいろ調べたところ、「アカウントでアプリを削除すると、トークンが無効になってしまうので取り直さないとダメ」ということが判明。そういえば、ゆうべ寝る前にテストデータが山盛りになってしまったアプリを「一度消しておくか」と気軽に削除したのでした。これが原因。

さて、それから、登録されてしまったトークンを削除する方法を探したのですが、SDKのAPIにはそれらしいものは見つからず、おそらくSharedObjectとして保存されていると思うのですがファイル名が暗号化されているので見つからない。

新しいFacebookアプリを作ったら動きましたがそんなのは解決策じゃないし、とりあえず先に進んだとしても本気でアプリ作った時に同じコトでハマる可能性大なので、とりあえず対処方法が見つかるまで保留することにしました。

とほほ。まぁ、でも、「AIRでFacebookアプリ?できますよ!」とか請けちゃってからハマるよりかはマシ…とポジティブに考えておきます。ポジティブでもないか。

では、またいつか。

0 件のコメント:

コメントを投稿