なぜFacebook Actionscript API init()かなくなりますか?
質問
私は呼び出し com.facebook.グラフで表示します。Facebook.init(APP_ID,loginHandler);
ログインfacebookを利用actionscriptのapiているように、ユーザーによるチュートリアル: http://www.adobe.com/devnet/facebook/articles/flex_fbgraph_pt4.html).がないようなものです。
のAPI源のとはJSで ExternalInterface.コ('FBAS.init',JSON.エンコード(オプション));
のjavascriptライブラリである必要は
http://connect.facebook.net/en_US/all.js
FBJSBridge.js
しかし、見当たらないので参考にFBASこれらの図書館です。私も、正しい図書館?しおりを付けることができ理由のい理由としては、FBASの作品がありますか?でもなぜ呼Facebook.init()何も行いません?
解決
FBJSBridge.jsはSDKに埋め込まれています。 com.facebook.graph.core.FacebookJSBridge.asを見て、あなたはFBJSBridge.jsたのjavascriptのブロック全体がcom.facebook.graph.Facebook.asのコンストラクタでのExternalInterface上に仮止めされていることがわかります。
私は一日これで苦労してきました。 I)は、HTTPがFacebook.init(によって生成されるGET見ていると、それだけで別のGETが起動された時点でタイムアウトするまで待つように見えます。これは、通常は戻ってくることはありません。私はAPPID、そこにAPIKEYとパラメータの組み合わせのすべての並べ替えをしようとしたが、私はそれが戻ってきて見たことがありません。私はその仕事に意味どのようにその者を締結しなければなりません。そうでない場合には、それはそれは仕事をしてみましょう。 : - /
とにかく、initはFacebook.handleSessionChangeを(トリガー「auth.sessionChange」イベント)をサブスクライブすることFacebookJSBridge.asでそのJSブロックにFBASの内側に表示されます。あなたは、コールバックが呼び出された場所な見ることができます。トリックは、それがいつでもsessionChanges呼び出される何であるということです。でもイベントが発生が原因FB.init(からの応答ではないことを次の時間)のであれば、あなたのコールバックは、まだその時点で呼び出されます。
あなたはFacebook.init()を呼び出し、そしてあなたは、クッキーはあなたの後に右発射sessionChangeイベントを取得します作成された後、後にtrueに「クッキー」を設定する前に、「auth.sessionChange」のために、独自のハンドラを設定した場合initを呼び出します。 GET応答を取得したことがないので、初期化のコールバックはまだかかわらず、呼び出されません。
Facebook.addJSEventListener("auth.sessionChange", onSessionChange);
Facebook.init(_appID, onInitFacebookConnect,
{cookie: true,
appId: _appID,
perms: "user_birthday,read_stream,publish_stream"});
あなたが働くかもしれないチュートリアルで見つけることができますが、実際に一緒にアプリを入れたときに使用したいと思うされていないものを例。そうしないと、常にトリガーfbconnectへ]ボタンをクリックしようとしています。 OAuth2がボタンの上に「接続」に、それぞれの時間をクリックする必要がないの所望の動作を取得するための方法になりますように見えます。あなたはのOAuth2からSESSIONKEYを取得し、あなたがやろうとしている何のために最も便利である方に応じて、フラッシュ/ FacebookのGRAPHSDKやJSを使用することができます。
このかもしれないのヘルプ: ます。http://blog.yoz。 SK / 2010/05 / Facebookのグラフ-APIアンドOAuthの-2・アンド・フラッシュ/ の
他のヒント
これが失敗した理由を複数の理由があるように思われます。これらのリンクを参照してください。
http://code.google.com/ P / Facebookの-のActionScript-API /問題/詳細?ID = 165 の
http://www.pastrytech.com/willy/FacebookActionScript3SDKExample.htmlする
私にとっては、スクリプトタグの順序は、Adobeチュートリアルが提供するラッパーファイルに間違っているということでした。
FacebookのJSライブラリはswfobject前に追加されていることを確認してください。即ちあなたのスクリプトタグを確実にこの順序であります:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
交換
embedSWF("MyApp.swf", "flashContent", "640", "480", "9.0", null, null, null, {name:"flashContent"});
と
swfobject.embedSWF("MyApp.swf", "flashContent", "640", "480", "9.0", null, null, null, {name:"flashContent"});
すなわち swfobject. embedSwf
を行い、お客様に魅力!
ここでは、あなたの質問に答えがあります。 http://novacoders.blogspot.com/2011/04 /facebook-graph-api-init-problems.htmlする
私の場合、それはうまくいきませんでしたindex.template.htmlました。必要だった:
FB JS SDKの
1)参照
bodyタグ内の最初のエントリとして2)使用FB-ルートDIV
それは私の問題を解決します。
編集:私は、ユーザーがログインしているときFacebook.initは()のみ動作することを混同して、認証のために、私はFacebook.login
と呼びます。EDIT2:この事を再考...私はないもちろんの呼び出しが別のページに行くと、あなたが応答を受信しない場合は、キャンバスのURLのニーズは、あなたのページに戻って指すようにすることを逃したこの時間。明白な、しかし、それは再び私を襲った......
これは思わFBAS.getSwf()
がdocument.getElementById
への呼び出し内のSWFのの名前を使用しています。
だから、あなたはIDではなく名前を指定した場合は、nullのidを持つ要素のために、その後FacebookJSBridge.asのJavaScriptルックスます。
それとも、あなたは名前ではなくIDを指定した場合、適切な文字列のため、その後FacebookJSBridge.asのJavaScriptに見えるが、そのようなIDを持つ要素が存在してます。
名前と同じIDを指定した場合、それは実際にswfファイルを見つけることができます。
<時間>var appId = "1234567890";
var swfNameAndId = "app_" + appId;
swfobject.embedSWF("/swfs/TestApp.swf", "app_placeholder", 760, 450, "9.0.0", false, { "appId": appId }, { "allowscriptaccess": "always" }, { "name": swfNameAndId, "id": swfNameAndId });