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

У Facebook есть хорошее приложение "Comment moderation tool" вот. Там я и решил собирать все комменты со своих приложений. Интерфейс простенький, но меня устраивал. Жаль что нет возможности сделать оповещалку на почту при появлении нового комментария (возможно я просто плохо искал?).   Возможность сделать опоповещения нашлась. Если добавить свой аккаунт в модераторы, то оповещения будут приходить о создании нового комментария на сайте. В "Comment moderation tool" есть возможность добавлять модераторов, настраивать "черный список" и несколько полезных мелочей.

 


Facebook cooment moderation tool

Для того что бы использовать "Comment moderation tool"  или любые другие инструменты необходимо зарегистрироваться как разработчик на Facebook. Особых трудностей с этим возникнуть не должно и подробно останавливаться на этом я не буду.



Следующий шаг это получение appID для того что бы наши комментарии пересылались в "Comment moderation tool". Сделать это можно по следующей ссылке https://developers.facebook.com/apps . Процесс особых трудностей не вызвал, а результат вы должны получить как на картинке. Немного разочаровало то, что на одно приложение я не смог привязать несколько доменных имен и для каждого сайта пришлось регистрировать отдельное приложение, но если сайт один, то вам повезло больше чем мне =).



Если вы еще не получили код скрипта комментариев, то сейчас самое время это сделать. На страничке https://developers.facebook.com/docs/reference/plugins/comments/ можно получить скрипт и сделать элементарные настройки. Там же есть скромные примеры и очень скудная документация. Могли бы и подробней описать работу крипта =)

Пример обычного скрипта:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Нам же необходимо добавить к ссылке на скрипт атрибут "appID=" + ID нашего приложения.
В результате скрипт должен выглядеть следующим образом:
 

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appId=248513748549560";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

После получения скрипта его необходимо добавить на страничку где будет виджет комментариев Facebook. В моем  случае я встраивал комментарии в модуль новостей и хотел бы appID менять в зависимости от того на каком сайте модуль будет работать.
Кстати если комментариев очень много, есть смысл делать и на одном сайте для разных мест отдельные appID и это позволит избежать путаницы с их модерацией. Если вы добавляете скрипт на свой единственный сайт и такой головной проблемы у вас нет, то просто вставьте данный скрипт на страницу, мой же вариант выглядит следующим образом:
 

	<div id="fb-root">
 	   </div>
            <script>                (function (d, s, id) {
                    var js, fjs = d.getElementsByTagName(s)[0];
                    if (d.getElementById(id)) { return; }
                    js = d.createElement(s); js.id = id;
                    js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appID=<%=FB_apiID %>";
                    fjs.parentNode.insertBefore(js, fjs);
                } (document, 'script', 'facebook-jssdk'));</script>

В переменной FB_appID сохранен appID, а сама переменная принадлежит к свойствам модуля и доступна для изменения при его настройке.

Осталось совсем немного! Вставить <div> в месте где бы мы хотели отображать наши комментарии и проверить правильность их работы.

<div class="fb-comments" data-href="http://aspguru.ru" data-num-posts="2" data-width="500"></div>

Грабли на которые я наступал =)

Плагин комментариев привязан к URI. Проблема с которой я долго ломал копья из за встроенного в CMS DotNetNuke определения языковых настроек. Т.к. если в браузере стоит язык Русский  движок вставлял в URI /ru-RU/ или /en-US/ если язык в браузере стоял Английский/США.

вот пример ссылок на данную статью:

http://aspguru.ru/Home/tabid/55/aid/35/language/en-US/Default.aspx

http://aspguru.ru/Home/tabid/55/aid/35/language/ru-RU/Default.aspx

http://aspguru.ru/Home/tabid/55/aid/35/language/Default.aspx

Естественно комментарии Facebook будут разные для каждого отдельного языка. В DotNetNuke можно отключить определения языка браузера. В панели Администратор в Языковых настройка убираем галочку напротив

Я же галочку убирать не стал. Пришел к выводу что будет вполне логично делить аудиторию и комментарии по языковым настройкам.