Нужна консультация о фиде диалога, Facebook и других кнопках - PullRequest
1 голос
/ 19 августа 2011

Я полностью сбит с толку из-за диалогового канала Facebook, общего доступа и кнопок «Мне нравится» (я новичок в Facebook и его жаргоне)

На моем сайте хотелось бы следующее

  • чтобы в верхней части страницы была кнопка, где люди могли бы поделиться моим сайтом на своей стене
  • чтобы иметь кнопку на странице, где пользователи могут поделиться своей главной домашней страницей на моем сайте со своей стеной
  • , чтобы иметь кнопку, где пользователи могут делиться отдельными предметами (событиями) на своей стене

Я читал, что кнопка «Поделиться» постепенно удаляется по сравнению с кнопкой «Мне нравится», но я вижу проблему с кнопкой «Мне нравится». Я думаю, что-то может понравиться только один раз. Событию пользователя может потребоваться поделиться несколько раз (чтобы напомнить своим пользователям Fb о событии)

Я видел, как BBC использовал кнопку подачи диалога, чтобы размещать элементы на стене, и это выглядит хорошо, но я не мог заставить всплывающее окно работать.

мои требования состоят в том, чтобы иметь разные ссылки для каждого из трех упомянутых мной сценариев, с разным описанием для каждого сценария, но с общим логотипом моего сайта.

Я так много читал, что теперь я полностью сбит с толку плюс все API, которые есть у Fb. Это просто безумие (или мне так кажется)

Если бы кто-то мог помочь очистить туман с помощью звуковых рекомендаций и примера кода для каждой кнопки, я был бы очень признателен.

Спасибо.

.

1 Ответ

2 голосов
/ 20 августа 2011

Для того, о чем вы говорите, вы бы хотели использовать диалог подачи.Он достаточно гибкий, поэтому вам просто нужно настроить ссылки и передать некоторые переменные.Я не вижу, чтобы диалог подачи прекратился, поскольку вы упомянули, что они служат различным целям.Я думаю, что они настаивают на том, что им легче пользоваться, и их вряд ли будут злоупотреблять.

Вам нужно зарегистрировать приложение и обязательно инициализировать JavaScript javascript SDK, прежде чем вызывать функцию ниже.Если у вас возникли проблемы с вашим всплывающим окном, это, вероятно, связано с тем, что в процессе инициализации FB возникают проблемы.Я добавил вторую функцию, которую использую для инициации 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'});Есть и другие варианты, которые вы можете найти в документации, если они вам нужны.

...