私は招待ボタン (別名 FB.ui -> apprequests) を備えたページ タブ アプリを持っていますexample.com/pagetab
。 Facebook内からiframeとしてロードしても、何も起こりません。最初は、jqueryがどのドキュメントの準備ができているかわからないためにボタンがリンクされていないのが問題だと思っていましたがonclick
、Chromeコンソールからコマンドを使用して入力することに切り替えました(もちろん、iframeのスコープで)が、何も起こりません...これはバグですか、それとも何か不足していますか?
最小限のコード:
window.fbAsyncInit = function() {
FB.init({
appId : '123456789', // App ID
channelUrl : '//fbjscache.php', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
}); };
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function sendInvite() {
console.log("Inviting...");
FB.ui({method: 'apprequests',
title: 'Check out this great app!',
message: 'Join the fun!',
}, inviteCallback);
}
するとページに
<a href="javascript:void(null)" class="invite" onclick="sendInvite()"><div class="facebookButton">Invite</div></a>
このコードは、ページが直接ロードされた場合は期待どおりに機能し (キュートなフレンド セレクタ ダイアログがポップアップ表示されます)、iframe からロードされた場合は何もしません。これはバグですか、それとも私が理解していない隠し設定/JS 癖がありますか?