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

#facebook #url #customization

#Facebook #url #настройка

Вопрос:

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

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

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

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

Приветствия,

Начо

Ответ №1:

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

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

  1. Когда друг нажимает на приглашение, он / она перенаправляется на страницу canvas (или страницу закладок, если она была sit).
  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 .
                    "amp;client_secret=" . $APPLICATION_SECRET .
                    "amp;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_tokenamp;method=delete"); // Should return true on success

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

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

Ответ №2:

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

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

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