2

シンプルな iframe ベースの Facebook アプリを作成しています。iframe のサイズを変更する次のコードがあります。

FB_RequireFeatures(["Connect"], function(){
  FB.XdComm.Server.init('/xd_receiver.htm');
  FB.CanvasClient.startTimerToSizeToContent();
  FB.CanvasClient.syncUrl();
});

ユーザーがアプリ定義の画像/リンクをユーザーの壁に投稿できるようにするポップアップを表示するリンクを追加したいと考えています。最初に物事を機能させるために、クリックイベントで次のコードを使用してみました:

FB.Connect.streamPublish('');

しかし、何も起こりません。私は追加しようとしました:

FB.init(<?=API_KEY?>, '/xd_receiver.htm');

FB_RequireFeatures関数内、その前、後の両方...運が悪い。何も起こりません。エラーはスローされません。何もない。何か案は?

4

4 に答える 4

1

Connect を使用して iFrame アプリで Stream パブリッシングを設定するための完全な手順については、このページを参照してください。

http://thetechnicalexperience.blogspot.com/2010/02/how-to-use-fbconnectstreampublish.html

于 2010-02-12T15:55:08.007 に答える
0

次のものがあることを確認してください:(http://wiki.developers.facebook.com/index.php/Connect/Setting_Up_Your_Site#Referencing_Facebook_Connect_on_Your_Siteからの一部)

  • xd_receiver.htmを作成し、それがドメインのルートにあること
  • ドキュメントの本文の上部にFeatureLoader.js.phpを含めました
  • 質問のJavaScript(FB_RequiresFeaturesなど)をドキュメントの下部に追加しました

私のアプリで現在正常に実行されているコードの例:

<script type="text/javascript">
   window.onload = function() {
        FB_RequireFeatures(["XFBML", "Connect"], function() {
           FB.Facebook.init("...my api key...","xd_receiver.htm");
           FB.CanvasClient.syncUrl();
        });
   };
</script>

FB_RequireFeatures呼び出しから「XFBML」を省略し、パスをxd_receiver.htmに変更することもできます。これで、問題なく動作するはずです。

さらに、アプリケーションの接続URL(Facebookの開発者アプリを介して設定)がxd_receiver.htmファイルの親を指していることを再確認します。したがって、アプリがhttp://www.mydomain.comでホストされている場合、コード例を見ると、xd_receiver.htmはhttp://www.mydomain.com/xd_receiver.htmにあり、次のようになります。接続URLとしてhttp://www.mydomain.comが必要です。

それでも機能しない場合は、Firebug(または同様のツール)をインストールして、ネットトラフィックを確認してください。これを機能させていたとき、Facebook Javascript APIはサイレントに失敗し、Facebookが私のConnect URLを気に入らなかったことに気付いたのは、リクエストを何度も調べただけでした。

それがすべて機能していることをテストするために、私は使用したくなるでしょう

FB.Connect.streamPublish();

投稿した行ではなく、ダイアログがポップアップするはずであり、実際の例として明確に示されています。空の文字列を引数として渡すだけではどうなるかわかりません。

最後に、IFrameベースのFacebookアプリはたくさんあります。好きなことをしているアプリを見つけたら、いつでもJavascriptを見て、どのようにそれを達成したかを知ることができます。言い換えれば、FacebookはサンプルのIFrameアプリコードでいっぱいです。

于 2010-01-12T01:18:53.813 に答える
0

JavaScript ライブラリを使用するには、接続 URL を設定する必要があります。ブックマークの URL をhttp://apps.facebook.com/yourappに設定してみて、問題が解決するかどうかを確認してください。

于 2010-02-09T22:57:20.673 に答える
0

@サイフス

はい、「アプリにアクセスする」とは、Facebook のアプリのページ (apps.facebook.com/myapp) にアクセスすることを意味します。現在、コールバック URL をキャンバスのみに設定しています。キャンバスと Connect URL の両方にコールバック URL を使用しようとするとすぐに、Facebook 内の iframe にロードする代わりにアプリにアクセスしようとすると、実際のコールバック URL 自体にリダイレクトされました。サーバーから直接リクエストすることはありません。これは、Facebook アプリを使用する目的を多少損なうためです。

于 2010-02-10T15:20:46.047 に答える