Как пригласить друзей на свой сайт, используя Facebook Invite?


После того, как facebook изменили свой SDK, пришлось немного попотеть над этой статьей. К тому же подвернулся вопрос одного из читателей блога, который пытался сделать свою “приглашалку”, используя устаревший у немного не актуальный материал.

Надеюсь, что эта статья, наконец-то ответит на все вопросы по поводу работы facebook invite.

К тому же, инструмент достаточно полезный, в качестве рекламы своего сайта (или facebook-страницы) и привлечения новых пользователей.

Начнем с создания нового приложения на facebook. Если вы еще не сталкивались с этим, то советую почитать статьи: часть1 и часть2.

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

Теперь необходимо в бэкэнде подключить facebook sdk (скачать библиотеку здесь) и созданное приложение к нашему сайту.

[wp-like-locker]

include_once 'facebook.php';
 
        define("FACEBOOK_APP_ID", '[app id]');
        define("FACEBOOK_API_KEY", '[api key]');
        define("FACEBOOK_SECRET_KEY", 'secret key');
        define("FACEBOOK_CANVAS_URL", 'http://apps.facebook.com/[app name]/');
 
        $facebook = new Facebook(array(
                    'appId' => FACEBOOK_APP_ID,
                    'secret' => FACEBOOK_SECRET_KEY,
                    'cookie' => true,
                    'domain' => 'allfacebook.com.ua'
                ));
 
        $session = $facebook->getSession();
 
        if (!$session) {
 
            $url = $facebook->getLoginUrl(array(
                        'canvas' => 1,
                        'fbconnect' => 0
                    ));
 
            echo "<script type="text/javascript">// <![CDATA[
top.location.href = '$url';
// ]]></script>";
        } else {
 
            try {
 
                $uid = $facebook-&gt;getUser();
                $me = $facebook-&gt;api('/me');
 
                $updated = date("l, F j, Y", strtotime($me['updated_time']));
 
                //echo "Hello " . $me['name'] . "
";
                //echo "You last updated your profile on " . $updated;
            } catch (FacebookApiException $e) {
 
                echo "Error:" . print_r($e, true);
            }
        }
        ?&gt;

[/wp-like-locker]

Обратите внимание на FACEBOOK_APP_ID и FACEBOOK_SECRET_KEY, туда необходимо вставить соответствующие значения приложения. app id, api key, app name — аналогично.

Ну а теперь визуально отобразим формочку приглашения:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script><script type="text/javascript">// <![CDATA[
FB.init({                 appId  : '[app id]',                 status : true,                  cookie : true,                  xfbml  : true               });
// ]]></script><script type="text/javascript">// <![CDATA[
<fb:fbml>
 
                    <fb:is-logged-out>
                        <fb:else>
                            <fb:request-form content="Текст приглашения. &lt;fb:req-choice url='http://allfacebook.com.ua' label='Присоединяйтесь!' /&gt;" type="allfacebookcomua" invite="true" method="POST" action="http://allfacebook.com.ua.info">
                                <fb:multi-friend-selector showborder="false" cols="5" rows="3" exclude_ids="111111" actiontext="Invite your friends to foursquare."></fb:multi-friend-selector>
                            </fb:request-form>
                        </fb:else>
                    </fb:is-logged-out>
 
            </fb:fbml>
// ]]></script>

Обратите внимание, в коде выше, есть атрибут “exclude_ids”, который позволяет через запятую перечислить те идентификаторы пользователей, высылать приглашения которым не нужно. Это может быть полезно, если не хотите высылать приглашения по несколько раз одним и тем же пользователям facebook. Можно на стороне php получить все “приглашенные” идентификаторы в переменную и выполнить впоследствии проверку, а все “лишние” идентификаторы передать в одной переменной в атрибут “exclude_ids”.

var_dumps($_POST[ids])

В принципе, логику навестить можно уже любую, пробуйте.

Вот и все, теперь мы получили форму что-то вроде этой:

Оставить комментарий

 

  • http://www.facebook.com/sancha.kochetkova Sasha Kochetkova

    простите, а что значит подключить в бэкэнде?

  • http://www.facebook.com/people/Maikl-СВИОНТЭК/100000369203087 Maikl СВИОНТЭК

    Так  и не понял

    • http://allfacebook.com.ua fintal

      что именно? спрашивайте, поясним

  • http://twitter.com/jedai108 Vadim Tsurkov

    Добрый день, хотелось бы уточнить как пользователи поймут что приглашение ИМЕННО на мой сайт, а не на fb-страницу или fb-приложение ?

  • NUne

    Извините,можно ли пошагово описать ход действий?вы объясняете вам кажется подробно,но больше вопросов возникают

 
rss
Карта