ユーザーが自分のサイトから自分のステータスを更新できるように、Facebook を自分の Web ページに統合しようとしています。現在、ユーザーがステータスを更新するためにクリックするボタンがあり、そのボタンは updateFacebookStatus() 関数を呼び出します。このボタンをすぐにクリックすると、「www.facebook.com を待機中」という空白のウィンドウが表示されます。このウィンドウは、許可を求める必要がある場所ですが、ウィンドウがタイムアウトするだけです。任意のアイデア: 関数 updateFacebookStatus() のコードは次のとおりです。
function updateFacebookStatus()
{
//Ask for permissions
FB.login(function(response)
{
}, {scope:'publish_stream, offline_access,manage_pages'});
FB.getLoginStatus(function(response)
{
//If user is logged it and given permissions update status
if (response.status === 'connected')
{
new_status = document.getElementById('FacebookBody').value;
//update status
FB.api(
{
method: 'status.set',
status: new_status
},
function(response)
{
if(response == 0)
{
alert("Your Facebook Status Was Not Updated.");
}
else
{
alert("Your Facebook Status Was Updated");
}
}
);}
else
{
window.location.href = "#home";
}
});
}
私のhtmlファイルでは、次のコードを使用してFacebook javascript sdkを取得します。
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'XXXXXXXXXXXXX',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://www.XXXXX.com/channel.html', // channel.html file
oauth : true // enable OAuth 2.0
});
// Load the SDK Asynchronously
(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));
</script>