Отправить персональный URL-адрес друзьям в Facebook с внешнего сайта - PullRequest
0 голосов
/ 05 мая 2011

Я разрабатываю веб-сайт со следующим требованием:

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

Пример потока:
1. Джон посещает http://www.mysite.com
2. Джон нажимает кнопку подключения к Facebook и входит в систему со своими учетными данными Facebook
3. Джон нажимает кнопку «пригласить друзей». Откроется диалоговое окно выбора друзей
4. Джон выбирает Мэри и отправляет приглашение / запрос / сообщение
5. Мэри получает ссылку вроде: http://www.mysite.com? Name = Mary
6. Мэри нажимает на ссылку из Facebook и перенаправляется на URL выше
7. На моем сайте отображается «Hello Mary!», Взяв имя из параметра URL

Мне уже удалось сделать шаги 1-4.
Я спрашиваю о шаге 5. Это вообще возможно? Я знаю, что могу получить идентификаторы Facebook людей, выбранных в селекторе нескольких друзей, и что я могу сделать запрос FBQL, чтобы получить имена выбранных людей, но как настроить отправляемый URL?

Ура,

Начо

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Что ж, если пользователь будет отправлять приглашения для большого количества друзей, тогда эти приглашения не будут " пригласи уникальным " (как упомянуто @Jimmy). НО вы все равно можете захватить уникальный «идентификатор друга» и (я полагаю) имя из самого запроса!

Что вам нужно сделать, это следующее:

  1. Когда друг нажимает на приглашение, он / она будет перенаправлен на страницу холста (или страницу закладки, если она уже была).
  2. Наряду с перенаправлением вы получите номер приглашения (идентификатор запроса), здесь вы можете прочитать этот запрос и извлечь из него поле «Кому», а затем перенаправить друга на ваш сайт.

Что-то вроде:

<?php
if( isset($_REQUEST['request_ids']) ) {
    // Requesting an application token
    $APPLICATION_ID = "APP_D";
    $APPLICATION_SECRET = "APP_SECRET";

    $token_url =    "https://graph.facebook.com/oauth/access_token?" .
                    "client_id=" . $APPLICATION_ID .
                    "&client_secret=" . $APPLICATION_SECRET .
                    "&grant_type=client_credentials";
    $app_token = file_get_contents($token_url);

    // You may have more than one request, so it's better to loop
    $requests = explode(',',$_REQUEST['request_ids']);
    foreach($requests as $request_id) {
        // Get the request details using Graph API
        $request_content = json_decode(file_get_contents("https://graph.facebook.com/$request_id?$app_token"), TRUE);

        // An example of how to get info from the previous call
        $to_name = $request_content['to']['name'];

        // When all is done, delete the requests because Facebook will not do it for you!
        $deleted = file_get_contents("https://graph.facebook.com/$request_id?$app_token&method=delete"); // Should return true on success

        echo "<script>top.location.href='http://www.mysite.com?name=" . urlencode($to_name) . "'</script>";
    }
}
?>

Для получения дополнительной информации читайте следующее:

0 голосов
/ 05 мая 2011

Когда указанный пользователь попадает на ваш сайт, вам необходимо знать его идентификатор пользователя Facebook или всю информацию, которую вы планируете показать ему.Использование идентификатора пользователя будет проще и более расширяемым, и для этого вам потребуется, чтобы этот пользователь установил ваше приложение, прежде чем вы сможете его идентифицировать, найти его имя и сказать «Привет, Мэри!»

То, что я сделал бы здесь, - это разрешил ссылающемуся пользователю поделиться ссылкой, настроенной для ему .Так что, если я А, и я делюсь с моими друзьями, моя ссылка будет выглядеть как http://www.somedomain.com/?ref=A.Я делюсь этим, мой друг B нажимает на ссылку.Когда B попадает на экран установки, он устанавливает, и теперь мы знаем имя B, и, поскольку у нас есть параметр ref, мы знаем, что он нажал на мою ссылку.(Именно так Groupon и Dropbox обрабатывают реферальные ссылки.)

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

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