web-dev-qa-db-fra.com

Vous utilisez Facebook API pour inviter des amis?

Je veux un lien "Inviter des amis" sur mon site Web où vous cliquez dessus et vous obtenez une boîte de dialogue Facebook qui vous demande de choisir lequel de vos amis vous souhaitez inviter. Ces amis reçoivent ensuite une demande de candidature, un e-mail Facebook ou au moins un message mural les invitant à rejoindre mon site Web.

Je suis un peu confus quant à la meilleure façon de procéder. Il semble que le seul moyen non obsolète soit maintenant via le Dialogue de demandes . J'appelle donc le FB.ui Méthode Javascript comme l'exemple qu'ils donnent:

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

Ensuite, les invités recevront des demandes d'inscription lorsqu'ils se connecteront à Facebook. Lorsqu'ils "acceptent" cette demande, ils seront dirigés vers mon application de canevas Facebook où je lis l'ID de demande initial transmis par Facebook, donc je sais de quoi il s'agit et je suppose que je peux rediriger l'utilisateur vers mon site Web? Je n'aime pas cela, car je dois maintenant apprendre à créer une application de canevas, mais est-ce la bonne façon d'inviter des amis via la fonctionnalité Facebook?

Idéalement, le bouton inviter des amis affiche le sélecteur d'amis Facebook (ou connectez-vous si l'utilisateur n'est pas encore connecté à FB), puis publiez sur les murs de ces amis. Ce message publié aurait un lien simple vers mon site Web. Est-ce possible?

25
at.

J'ai eu le même problème. Bien qu'il soit très tard pour répondre à la question, cela aidera quelqu'un. C'est pourquoi répondre à cette question.

Appelez cette fonction Javascript lorsque vous souhaitez envoyer des invitations.

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("");
        }

    })
}

Envoi d'un tableau d'amis invités par ajax, puis envoyer un message pour chaque ami.

Je peux poster sur les murs d'amis de l'utilisateur via l'API PHP. Essayez ceci:

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

La publication sur le mur d'amis n'est plus possible d'ici février 2013. Comment publier sur la chronologie d'un ami après la migration de février 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',
          ));

Mais l'utilisateur peut toujours poster sur son mur et taguer ses amis dans un message ou une image.

Voir:

  1. FB télécharger une photo depuis l'application et la poster sur le mur de l'utilisateur
  2. Tags photo d'amis
21
Somnath Muluk

Je suppose que le bouton " Envoyer " nouvellement introduit (et son équivalent de dialogue) est ce dont vous avez besoin:

<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>
4
ifaour

tilisez ceci dans votre fichier HTML. Cela fonctionne très bien pour moi.


<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>
2
Sumit Munot
<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>
0
Robert Mrsic