Использование Facebook API для приглашения друзей? - PullRequest
25 голосов
/ 15 августа 2011

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

Я немного растерялся из-за того, как правильно это сделать.Похоже, что единственный не осуждаемый способ теперь - через диалог Запросы .Поэтому я вызываю метод FB.ui Javascript, как в примере, который они приводят:

FB.ui({
    method: 'apprequests', 
    message: 'You should learn more about this awesome game.',
    data: 'tracking information for the user'
});

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

В идеале кнопка приглашения друзей вызывает друга на Facebookселектор (или войдите, если пользователь еще не вошел в FB), а затем публикует сообщения на стенах этих друзей.В этом сообщении будет простая ссылка на мой сайт.Это возможно?

Ответы [ 4 ]

21 голосов
/ 21 февраля 2012

У меня была такая же проблема.Хотя уже очень поздно отвечать на вопрос, это кому-нибудь поможет.Вот почему отвечая на этот вопрос.

Вызывайте эту функцию Javascript, когда хотите отправить приглашения.

function sendRequestViaMultiFriendSelector() {
    FB.ui({
        method: 'apprequests',
        message: "This message is displayed in invitation"
    },send_wall_invitation);

}

function send_wall_invitation(response) {
   // alert(response.to);
    var send_invitation_url=base_url+'send_invitation';
    jQuery.ajax({
        url:send_invitation_url,
        data:{
            to:response.to
            },
        dataType:"json",
        type: 'POST',
        success: function(data){
//            alert("");
        }

    })
}

Отправка массива друзей, приглашенных ajax, а затем отправка сообщения для каждого друга.

Я могу публиковать сообщения на стенах друзей пользователя через PHP API.Попробуйте это:

$facebook->api('/[FRIEND_ID]/feed', 'post', array(
          'message' => 'test message',
          'link' => 'http://google.com',
          'name' => 'test name',
          'caption' => 'test caption',
          'description' => 'test long description',
      ));

Публикация на стене друзей теперь невозможна к февралю 2013 года. Как разместить на временной шкале друга после вступления в силу миграции февраля 2013 года?

$facebook->api('/[Loggedin_user_id]/feed', 'post', array(
              'message' => 'test message',
              'link' => 'http://google.com',
              'name' => 'test name',
              'caption' => 'test caption',
              'description' => 'test long description',
          ));

Но пользователь по-прежнему может публиковать сообщения на своей стене и отмечать друзей в сообщении или изображении.

См .:

  1. FBзагрузить фото из приложения и опубликовать его на стене пользователя
  2. Метки друзей фото
4 голосов
/ 16 августа 2011

Полагаю, вам нужна только что введенная кнопка " Отправить " (и ее диалоговое окно):

<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <body>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <div id="fb-root"></div>
    <script>
      // assume we are already logged in
      FB.init({appId: '123050457758183', xfbml: true, cookie: true});

      FB.ui({
          method: 'send',
          name: 'People Argue Just to Win',
          link: 'http://www.nytimes.com/2011/06/15/arts/people-argue-just-to-win-scholars-assert.html',
          });
     </script>
  </body>
</html>
2 голосов
/ 20 марта 2013

Используйте это в своем HTML-файле.Это прекрасно работает для меня.


<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="https://www.facebook.com/2008/fbml">

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>


<p>
<input type="button"
  onclick="sendRequestViaMultiFriendSelector(); return false;"
  value="Send Request To Your Facebook Friends"
/>
</p>

<script>
  FB.init({
    appId  : 'APP_ID',
    frictionlessRequests: true
  });

  function sendRequestToRecipients() {
    var user_ids = document.getElementsByName("user_ids")[0].value;
    FB.ui({method: 'apprequests',
      message: 'Awesome Application try it once',
      to: user_ids
    }, requestCallback);
  }

  function sendRequestViaMultiFriendSelector() {
    FB.ui({method: 'apprequests',
      message: 'Awesome application try it once'
    }, requestCallback);
  }

  function requestCallback(response) {
    // Handle callback here
  }
</script>
0 голосов
/ 05 июля 2012
<div id="fb-root"></div>
   <script src="http://connect.facebook.net/en_US/all.js">
   </script>
   <script>
     FB.init({ 
       appId:'APP ID', cookie:true, 
       status:true, xfbml:true 
     });



function FacebookInviteFriends()
{
FB.ui({ method: 'apprequests', 
   message: 'VISIT THIS WEB SITE'});
}
   </script>

<a href='#' onClick="FacebookInviteFriends();"> INVITE YOUR FACEBOOK FRIENDS</a>
...