我对Facebook的对话框提供,分享器和类似按钮感到困惑(我是Facebook及其行话的小说)
在我的网站上,我想要以下
我已经阅读了分享器按钮,而不是喜欢按钮,但我看到了Like按钮的问题。我觉得有些东西只能被喜欢过一次。可能希望多次共享用户的事件(以提醒他们的Fb用户该事件)
我已经看到BBC使用对话框提示按钮将项目发布到墙上,看起来没问题,但我无法让弹出窗口工作。
我的要求是为我提到的三种方案中的每种方案设置不同的链接,每种方案的描述不同,但共享我的网站徽标。
我读过这么多,以至于我现在完全混淆了加上Fb所拥有的所有API。它只是疯了(或者在我看来是这样)
如果有人可以通过声音建议和每个按钮的一些示例代码帮助清除雾,我将非常感激。
谢谢。
答案 0 :(得分:2)
对于您所说的内容,您会想要使用Feed对话框。它足够灵活,您只需设置链接并传入一些变量即可。我没有看到提要对话框被逐步淘汰,因为你提到它们用于不同的目的。我认为他们推动使用它更容易使用,而不是被滥用。
在调用以下函数之前,您需要注册一个应用程序并确保初始化Facebook javascript SDK。如果您的弹出窗口出现问题,可能是因为您的FB init进程存在问题。我添加了第二个用于初始化Facebook的功能。这两个函数都使用jQuery,因此如果不使用它,则可能需要修改。
你可以像这样创建一个非常通用的函数:
$.shareMe = function(myName, myLink, myPicture, myCaption ) {
FB.ui(
{
method: 'feed',
name: myName,
link: myLink,
picture: myPicture,
caption: myCaption
},
function(response) {
if (response && response.post_id) {
alert('Thanks for Sharing.');
} else {
alert('Post was not published.');
}
}
);
}
和Facebook初始化:
$.initFacebook = function(options){
$('#fb-root').remove();
$('body').append('<div id="fb-root"></div>');
var settings = {
'appId' : null,
'callback' : null,
'channelUrl' : null,
'status' : true,
'cookie' : true,
'xfbml' : true
};
if ( options ) {
$.extend( settings, options );
}
if( typeof( xc_app_id ) == 'undefined' ) { window.xc_app_id = settings.appId; }
window.fbAsyncInit = function() {
if(settings.channelUrl==null) {
FB.init({appId: settings.appId, status: settings.status, cookie: settings.cookie, xfbml: settings.xfbml, oauth: true, authResponse: true });
} else {
settings.channelUrl=location.protocol+'//'+settings.channelUrl;
FB.init({appId: settings.appId, status: settings.status, cookie: settings.cookie, xfbml: settings.xfbml, oauth: true, authResponse: true, channelUrl: settings.channelUrl });
}
if(typeof settings.callback == 'function'){ settings.callback.call(this); }
};
(function() {
var e = document.createElement('script');
e.async = true;
e.src = '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
}
并调用它只需使用$ .initFacebook({appId,'yourAppId'});如果您需要,可以在文档中查找其他选项。