1

私の最初の Facebook webapp を書いていますが、いくつか質問があります。新しい Graph API + JS ライブラリを使用しています。

アイデアは、私の webapp を使用するために、ユーザーは Facebook ページ A に「いいね」する必要があるということです。

ユーザーがログインしているとします。彼がページ A を「気に入った」かどうかを確認する必要があります。ユーザーがそのページを気に入らない場合は、次の方法で「ファン ボックス」を表示します。

FB.XFBML.parse('<fb:fan profile_id="A's id" stream="0" connections="0" width="450"></fb:fan>');

これで、「いいね」ボタンのあるこのファン ボックスは、src が facebook ドメインに設定された iframe でレンダリングされます。

問題: Web アプリケーションの残りの部分を表示できるように、ユーザーが [いいね] ボタンをクリックしたタイミングを知りたい。私が考えることができる唯一の可能な解決策は、本当に悪いFacebookグラフサーバーを毎秒ポーリングすることです。

  • そのボタンに「onClick」イベントを添付できません。これは、Facebook ドメインを指す iframe 内にあるためです (JS を使用してまったくアクセスできません)。
  • サーバーからこの iframe のコンテンツを取得し、その要素にアクセスできるように空の src プロパティで iframe に表示しようとしましたが、機能しません。ファン ボックスがめちゃくちゃです。
  • ユーザーに代わって「そのページを気に入りたい」というリクエストをグラフサーバーに送信する方法を私が知っている方法はありません。

私は困惑しています。ポーリングがこの問題を解決する正しい方法であるとは本当に思えません:)

4

1 に答える 1

2

iframe コードの代わりに、いいねボタンの fbml コードを使用して onclick イベントを取得できます。

Facebook は FB.event.subscribe を提供しています。これは、誰かがボタンのようにクリックしたときにトリガーされます。

完全なチュートリアルはこちらです。あなたの場合、いいねボタンのクリックでページを更新するコードを書くことができます。ページの読み込み時に同様の状態を確認します。現在のユーザーがそのページを気に入った場合は、そのユーザーをアプリケーション ページにリダイレクトできます。

于 2011-04-12T11:43:19.723 に答える