1

Facebook のプロフィール ボックスで SWF を自動再生したい。私は現在 FBML ベースのアプリを使用していますが、これを簡単にする任意のタイプを使用することにオープンです。パラメータ waitforclick=false の使用はプロファイル ボックスでは機能しないため、これはオプションではありません。

最初は、AJAXリクエストを使用しないとこれは不可能だと思っていましたが(ドキュメントに書かれていることです)、AJAXを介してこれを実行しようとした後、運が悪かったので、もう少し調査しました. ReverbNation facebook アプリケーション「My Band」で、SWF を自動再生できることがわかりました。彼らがどのようにそれを行うのかはまだよくわかりませんが、SWF をクリックする前とクリックした後に、生成されたプロファイル ボックス コードを調べました。

クリックする前に:

<div id="2405167945_fbswf_4b0b4cce045f91534648943" height="15" width="15" overflow="hidden" class="__fbswf">
 <embed type="application/x-shockwave-flash"    src="http://cache.reverbnation.com/widgets/content/player/facebookOneShot.swf?emailPlaylist=song_2509346&amp;autoPlay=true" 
  style="" id="swf_4b0b4cce049094f82894993" name="swf_4b0b4cce049094f82894993" bgcolor="000000" quality="high" 
  allowscriptaccess="never" fbjs="_id_4b0b4cce046032577161862" wmode="transparent"  flashvars="=&amp;fb_local_connection=_id4b0b4cce046320307815032&amp;fb_fbjs_connection=_id_4b0b4cce046032577161862&amp;fb_sig_profile=527222885&amp;fb_sig_locale=en_US&amp;fb_sig_in_new_facebook=1&amp;fb_sig_time=1259031758.018&amp;fb_sig_added=1&amp;fb_sig_profile_update_time=1239997072&amp;fb_sig_expires=1259038800&amp;fb_sig_user=527222885&amp;fb_sig_session_key=2.FMzt5_mR_LhrqF4nrQLhcg__.3600.1259038800-527222885&amp;fb_sig_ss=gAOI6rA0R_2tlubA5ahK_g__&amp;fb_sig_cookie_sig=2431e415604aec8066fce75f39769356&amp;fb_sig_ext_perms=auto_publish_recent_activity&amp;fb_sig_api_key=c3759de5d7120d6acc4dae494d1928be&amp;fb_sig_app_id=2405167945&amp;fb_sig=4cd04d06aae5296914b98fbae724b2cf&amp;string_table=http://static.ak.fbcdn.net/js_strings.php/t87432/en_US&amp;swf_id=swf_4b0b4cce049094f82894993" 
  width="15" height="15">
</div>

クリック後:

<div id="2405167945_fbswf_4b0b4d42660ba6dbafc86" height="15" width="15" overflow="hidden" class="__fbswf">
 <a height="15" width="15" waitforclick="true" 
 swfsrc="http://cache.reverbnation.com/widgets/content/player/facebookOneShot.swf?emailPlaylist=song_2509346&amp;autoPlay=true" 
 imgclass="rn_button_play_even" 
 imgsrc="http://cache.reverbnation.com/images/facebook/spacer.gif" 
 onclick="swf_4b0b4d426c7a777aed2e2 = new 
 SWFObject("http://cache.reverbnation.com/widgets/content/player/facebookOneShot.swf?emailPlaylist=song_2509346\x26autoPlay=true", 
 "swf_4b0b4d426c7a777aed2e2", 
 "15", "15", ["9.0.159.0","10.0.22.87"], "000000");
swf_4b0b4d426c7a777aed2e2.addParam("allowScriptAccess", "never");
swf_4b0b4d426c7a777aed2e2.addParam("fbjs", "_id_4b0b4d42660c73d7dd160");
swf_4b0b4d426c7a777aed2e2.addParam("wmode", "transparent");
swf_4b0b4d426c7a777aed2e2.addVariable("", "");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_local_connection", "_id4b0b4d42699b33975134d");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_fbjs_connection", "_id_4b0b4d42660c73d7dd160");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_profile", "527222885");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_locale", "en_US");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_in_new_facebook", "1");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_time", "1259031874.4381");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_added", "1");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_profile_update_time", "1239997072");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_expires", "1259038800");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_user", "527222885");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_session_key", "2.FMzt5_mR_LhrqF4nrQLhcg__.3600.1259038800-527222885");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_ss", "gAOI6rA0R_2tlubA5ahK_g__");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_cookie_sig", "2431e415604aec8066fce75f39769356");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_ext_perms", "auto_publish_recent_activity");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_api_key", "c3759de5d7120d6acc4dae494d1928be");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig_app_id", "2405167945");
swf_4b0b4d426c7a777aed2e2.addVariable("fb_sig", "cd50d9ce65cfdac0100fd445fb041e9d");
swf_4b0b4d426c7a777aed2e2.addVariable("string_table", "http://static.ak.fbcdn.net/js_strings.php/t87432/en_US");
swf_4b0b4d426c7a777aed2e2.addVariable("swf_id", "swf_4b0b4d426c7a777aed2e2");
swf_4b0b4d426c7a777aed2e2.fallback_html = "\x3cdiv class=\x22flash_fallback\x22\x3e\x3cdiv class=\x22flash_fallback_border\x22\x3e\x3cdiv class=\x22flash_fallback_header\x22\x3eFlash Player upgrade required\x3c/div\x3e\x3cdiv class=\x22flash_fallback_explanation\x22 id=\x22flash_fallback_4b0b4d426c8fc1a1c5deb\x22\x3eYou must download and install the latest version of the Adobe Flash Player to view this content.\x3c/div\x3e\x3cdiv class=\x22flash_fallback_button\x22\x3e\x3cinput type=\x22button\x22 class=\x22inputbutton\x22 onclick=\x22this.disabled=true;getFlashPlayer();\x22 id=\x22\x22 name=\x22\x22 value=\x22Download Flash\x22 /\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e";
swf_4b0b4d426c7a777aed2e2.write("2405167945_fbswf_4b0b4d42660ba6dbafc86");; (new Image()).src = '/ajax/ct.php?app_id=2405167945&amp;action_type=5&amp;post_form_id=957a92c32bf2dda6d7c4e508685c3718&amp;position=2&amp;' + Math.random(); return false;" href="#" flash="true"><img src="http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=2405167945&amp;v=1&amp;size=p&amp;cksum=57619dca4b62f0b11a83d8c46cf2decd&amp;src=http%3A%2F%2Fcache.reverbnation.com%2Fimages%2Ffacebook%2Fspacer.gif" class="rn_button_play_even" width="15" height="15"></a></div>

この自動再生機能を実現する方法を知っている人はいますか? インターネット上のどこにいてもドキュメントを見つけるのに本当に苦労しています。また、クリック後に生成されたコードが SWFObject コードに変わる理由もよくわかりません。

ありがとう!

4

2 に答える 2

1

Facebook は PROFILE ページにタブを追加する機能を廃止しましたが、FAN ページには引き続きタブを追加できることは注目に値します。これは引き続きサポートされます。自分のページの種類をどのように知ることができますか? まあ、誰かがあなたを友達にできるなら、あなたはプロフィールページを持っています。誰かがあなたを好きになれるなら、あなたはFANページを持っています。

ReverbNation MyBand アプリは、基本的な FBML タブ アプローチを使用していません...より堅牢なキャンバス アプリです。FBML では、Dev Docs によると、「セキュリティと美的理由」から自動再生が無効になっています。これを回避したい場合は、キャンバス アプリを作成して、必要な AJAX 呼び出しを実行できるようにします。

http://developers.facebook.com/docs/reference/fbml/swf/

于 2011-02-10T09:48:40.920 に答える
1

実装でフラッシュパラメータとして渡されているように見えます:

src="http://cache.reverbnation.com/widgets/content/player/facebookOneShot.swf?emailPlaylist=song_2509346&amp;autoPlay=true" 

これが彼らの側でどのように実装されているのか、私にはわかりません。

于 2009-11-24T14:24:19.213 に答える