Плагин Facebook 0.5

Facebook Plugin
Привет Сообщество!

Рад представить вашему вниманию, обновленную версию плагина Facebook.

Плагин поддерживает версии LiveStreet 0.4.2 и 0.5.1
Поддерживаются шаблоны написанные с использованием как mootools, так и jquery.

UPD 23.12.2011: С 13 декабря, JavaScript SDK стал поддерживать OAuth 2.0 для авторизации. Это привело к появлению ошибки при попытке авторизоваться и получить список страниц пользователя на втором шаге мастера настройки. Ошибка исправлена в версии 0.5.1. Спасибо Giorgi за сообщение о неработоспособности.

Основные фичи:


Мастер интеграции с Facebook
Всего четыре простых шага и анонсы топиков будут автоматически добавляться на выбранную страничку в социальной сети Facebook.

Мастер настройки

Вставка Open Graph тэгов: изображение, видео YouTube, видео Vimeo.
Благодаря Open Graph, пользователю не потребуется выбирать картинку при публикации ссылки. А в случае, когда пользователь «залайкал» страничку, нужная картинка «подтянется» автоматически.

Вот так будет выглядеть диалог публикации ссылки без плагина Facebook:

Без втавки Open Graph тэгов

А это результат вставки Open Graph тэгов:

Вставлены Open Graph тэги

Если в топике есть видео с Youtube или Vimeo, то информация о нем так же появится в OpenGraph тэгах. А пользователи социальных сетей смогут сразу же просмотреть его.

Администраторские функции: принудительная публикация/блокировка/удаление ранее опубликованного в Facebook топика.
В модерируемых сообществах пригодится возможность вручную, «по-быстрому», добавить анонс в социальную сеть. Плагин поддерживает такую функцию для администратора. Кроме того, администратор может заблокировать появление анонса на топик, или удалить ранее опубликованный анонс.

Функционал администратора

Блок информирования пользователя, о возможности попадания анонса создаваемого топика на страницу в Facebook

Информационная панель для пользователя

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

if (class_exists('PluginFacebook')) {
     $aHeaders = array(
          'type'=>'image',
          'picture' => 'http://mywebserver.com/uploads/pathtoimage.jpg',
          'title' => 'Все на Эльбрус!'
     );
     $this->PluginFacebook_Facebook_SetOpenGraphHeaders($aHeaders);
}





Установка и настройка


Скачать плагин можно с GitHub, а через некоторое время и из официального репозитария.

  • Для работы плагина необходимо, что бы PHP был собран с расширениями cUrl и SimpleXml.
  • Перед началом установки или обновления, необходимо создать резервную копию сайта и базы данных.
  • В случае обновления, деактивируйте старый плагин через панель управления плагинами (/admin/plugins/).
  • Если вы используете версию LiveStreet 0.5.1 и выше, и название используемой темы отлично от new, и в качестве JS-фреймворка используется mootools — добавьте в конец config.php (но перед return $config; !!!) строку $config['js']='mootools'; (о настройках через config.php см. ниже)


Установка:

  1. Скачайте архив и распакуйте.
  2. Если вы качали с github, переименуйте «верхнюю» папку в facebook. При распаковке архива из репозитария, папка уже будет называться facebook. Убедитесь, что внутри папки facebook присутствуют папки classes, config и templates.
  3. Скопируйте папку facebook в директорию plugins на веб-сервере.
  4. Активируйте плагин Facebook в панели управления плагинами (/admin/plugins/).
  5. После успешной активации откройте /facebook/setup/ (пока плагин не настроен, ссылку на эту страницу будет видеть администратор в окошке виджета Facebook ). Пройдите четыре шага мастера и сохраните настройки.

Настройка:

Файл /plugins/facebook/config/config.php позволяет настроить ряд дополнительных параметров:

Стратегия публикации

Существует две стратегии публикации: при выходе на главную страницу и при достижении заданного рейтинга. За выбор стратегии отвечает строка:
$config['strategy']=...

Возможные значения: 'STRATEGY_MAIN' или 'STRATEGY_RATING'.
Если используется значение 'STRATEGY_RATING', необходимо указать границу рейтинга, после которой анонс топика будет добавлен в Facebook.
$config['STRATEGY_RATING']['rating']=10;

Если в качестве значения указать 0 — анонс топика будет опубликован при его добавлении.

Настройка отображения блока с виджетом Facebook

Config::Set('block.rule_facebook',array(
        'path' => array(),
        'action' => array('blog','personal_blog','top','people','my','people','index','stream','tag','facebook'),
        'blocks'  => array(
            'right' => array(
                  'facebook' => array('priority'=>0,'params'=>array('plugin'=>'facebook'))
            )
        ),
        'clear' => false,
));


Более подробно, о правилах отображения блоков можно прочитать в топике «Система блоков»

Замечание для пользователей плагина NiceUrl: что бы виджет плагина отображался на страницах топиков, в массив action необходимо добавить элемент 'error'. Впрочем, можно переписать правило, что бы виджет отображался на всех страницах:
Config::Set('block.rule_facebook',array(
        'path' => array('.*'),
        'action' => array(),
        'blocks'  => array(
            'right' => array(
                  'facebook' => array('priority'=>0,'params'=>array('plugin'=>'facebook'))
            )
        ),
        'clear' => false,
));


Выбор фреймворка, на котором построен активный шаблон
Эта настройка актуальна для сайтов работающих с использованием LiveStreet 0.5.1 и использующих js-фреймворк mootools и имя темы отличное от new.
Что бы указать плагину на использование mootools, перед return $config; добавьте строку:
$config['js']='mootools';


Картинка по умолчанию для Open Graph
Если в топике, до ката, отсутствуют картинки и видео, в Open Graph тэги будет добавлена картинка по умолчанию: /plugins/facebook/templates/skin/default/images/default.jpg

Вы можете загрузить свою картинку поверх дефолтной или изменить путь, через параметр:
$config['default_post_image']=...;

Например:
$config['default_post_image']='___path.root.web___/sitelogo.jpg';


Удачи!

58 комментариев

avatar
Круто, спасибо!
avatar
шикарно! спасибо, что плагин opensource :)
avatar
Очень круто, спасибо. А планируете вконтакте вдобавок?
avatar
Увы, не вижу себя в качестве разработчика плюшек для «рыбхоза им. Дурова» :) Отношение к разработчикам с их стороны уж больно бл***кое. Степень разочарования даже деньгами не померить :(

Может Твиттер подойдет? ;)
avatar
Жаль. Аудитория моего проекта в основном вконтакте сидит. -)

твиттер автоматом можно настроиться средствами feedburner. Причем теги топика превращаются в хештеги твиттера)
avatar
действительно «рыбхозом» многие пользуются, тенденцию не отменяли. к сожалению или к счастью, но факт на лицо — поддержка вконтакта весьма желательна
avatar
так facebook тоже можно автоматом через rss :)
пример www.facebook.com/cookorama
avatar
А в Контакт вы ручками добавляете?
avatar
да. добавляли
avatar
ну можно и не ручками, я с помощью айфрейма выводил в группе последние публикации и форму фидберновской подписки. минус тот, что в новости не уходит участникам группы
но + тоже есть))
avatar
Если не секрет, чем добавляете на фейс — сайт или приложение?
avatar
facebook пока сам наш rss парсит
avatar
Хм… А где это там такие настройки хитрые есть? Видел там только приложения для RSS
avatar
в старом интерфейсе знал где, а как сейчас найти не скажу. советую погуглить
avatar
Хороший у вас сайт. А как вы мультиязычность сделали, если не секрет?
avatar
;)
avatar
HangGlider , Вы молодец!
avatar
Спасибо! :)
avatar
качественно продуманный и реализованный плагин. Все бы плагины были такими. Спасибо.
avatar
супер, большое спасибо! с меня донейт
avatar
Почему-то отправляются в ФБ при достижении нужного рейтинга топики, которые были сделаны ДО установки плагина, и не отправляются те, что сделаны ПОСЛЕ установки. Почему? Может быть, какой-то sql не отработал?
avatar
ммм, предыдущий вопрос снимается — топики на стену ФБ попадают, но как-то через один и не в момент голосования и превышения порога публикации.

можно ли где-то лог включить?
avatar
Лог пишется в случае ошибок в классе для взаимодействия с API.
avatar
а куда пишется? у меня до сих пор одна-две публикации в день, хотя должно быть значительно больше. Что-то не так
avatar
Сожалею, не заметил вопроса сразу.
Лог пишется в случаях появления ошибок при публикации, удалении, сохранении настроек, чтении информации о странице, получении списка аккаунтов.
Лог пишется через системный логгер. Ошибки попадают в /logs/log.log
avatar
спасибо, буду смотреть
avatar
А есть ли в плагине смысл, если в фейсбуке давно для всех рсс есть отличное приложение RSS Graffiti, которое подхватывает и видео и фото и все остальное?
avatar
есть, как минимум для вывода в ФБ не всех топиков главной, а только «самых-самых»
avatar
По-моему (я могу ошибатся) можно сделать любую рсс — только определенного блога, только «самых-самых» или только главной и его транслировать.
Я прав?
avatar
про «определенного блога» и «главной» речь не шла, а про «можно сделать рсс топиков рейтингом выше заданного значения» — из коробки нельзя, нужно экшен переписывать (или перекрывать, опять же, плагином)
avatar
С рейтингом выше заданного значения — нет нельзя. Но в этом редко бывает смысл.
А рсс блогов, главной и чего там можно еще — без проблем транслируется в фейсбук. Зачем нагружать сайт лишним плагином, если можно сделать сторонними методами?
avatar
Как я могу отключить виджет?
avatar
Убрать этот блок из конфига:

// Правила вывода виджета
Config::Set('block.rule_facebook',array(
        'path' => array(),
        'action' => array('blog','personal_blog','top','people','my','people','index','stream','tag','facebook'),
        'blocks'  => array(
            'right' => array(
                  'facebook' => array('priority'=>0,'params'=>array('plugin'=>'facebook'))
            )
        ),
        'clear' => false,
));
avatar
Также, у меня есть эта проблема, когда я нажимаю кнопку «опубликовать»:



Notice: Undefined index: topic_rating in /home/domain2/domains/domain.com/public_html/classes/modules/topic/entity/Topic.entity.class.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/domain2/domains/domain.com/public_html/classes/modules/topic/entity/Topic.entity.class.php:79) in /home/domain2/domains/domain.com/public_html/engine/include/function.php on line 224

Warning: Cannot modify header information - headers already sent by (output started at /home/domain2/domains/domain.com/public_html/classes/modules/topic/entity/Topic.entity.class.php:79) in /home/domain2/domains/domain.com/public_html/engine/include/function.php on line 225



Я использую шаблон «social» jquery
avatar
пофиксено на GitHub'е

Т.к. у сущности нового топика не установлен рейтинг, попытка получить его приводила к появлению нотиса.
avatar
Спасибо.
avatar
У меня тоже самое было, но в конфиге
$config['strategy']='STRATEGY_MAIN';
т.е. с рейтингом не связано или да?
avatar
У меня что то никак не получается создать приложение. Проблема в том, что не присылают код подтверждения на мобильный хотя номер указываю.
avatar
а можно сделать как приложение фейсбука Livejournal — чтобы все комментарии в ЛС отображались в моем фейсбуке. Название публикации, где я оставил комментарий, сам текст и ссылка туда.?

в принципе, если бы было RSS отдельно комментариев — я бы знал как решить эту задачу
avatar
Странная хурма, плагин установил, кеш, смарти и прочее сбросил перехожу на facebook/setup, а там пусто… нажимаю установить… загрузка страницы… справа донотаты… а формы установки нет.
Что делать?)
avatar
???
— версия ЛС
— шаблон
avatar
Такая же тема. Версия 0.5.1, шаблон Social-jquery
avatar
Если в файле setup.tpl убрать «display:none» у главного дива, то появляется примерно следующее:
avatar
Не могу разобраться — проблема в шаблоне или несовместимости с каким-то плагином?
avatar
Что пишет FireBug?
avatar
запусти установку в «Хроме» и все прйдет нормально…
у меня в «Лисе» была такая хрень…
avatar
5.1
Стоит StreetSpirit, но я менял на другие шаблоны, сбрасывал кеш, все как положено, эффекту ноль.
avatar
У меня такой вопрос, почему в блоке виджета, пользователи которые лайкнули 2 раза отображаются, то есть в виджете по 2 аватара пользователей?
avatar
Фэйсбук отдает такой фрейм. Детально не разбирался. Если есть решение, охотно почитаю и пофиксю.
avatar
Присоединяюсь. Очень не аккуратно выглядит
avatar
тоже 2 аватара… у каждого…
avatar
В первую очередь хочу сказать большое спасибо за плагин. А во-вторых хочу поинтересоваться будет ли обновление учитывающее изменения отображения страниц которые вводит фэйсбук. Теперь перепост новости на страницу с помощью плагина выглядит вот так



в то время как ручной перепост все ещё выглядит примерно как раньше



Может быть как-то самостоятельно можно настроить этот момент? Что бы автоматический перепост был бы таким же большим как и ручной?
avatar
присоединяюсь к вопросу.
avatar
не очень понял про open graph. подскажите пожалуйста как настроить…
avatar
У меня не публикуются записи для фотосетов. Как-то можно прикрутить туда?
avatar
присоединяюсь к вопросу…
avatar
У меня 1 день всё было ОК, потом почему-то материалы перестали публиковаться в facebook. Теперь при настройке плагина на втором шаге нажимаю кнопку Connect, а страница фейсбук не выбирается. В чём может быть дело?
avatar
Друзья!
Разработчик почему-то давно не отвечает на запросы об ошибках или доработках.
Может найдется тот, что сможет доработать плагин для новой версии? Или сделать свой, пусть даже и платный.
Лучше уж заплатить, чем маяться по пол года…
Я созрел, если что, вложиться.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.