web-dev-qa-db-ja.com

Facebook APIを使用して友人を招待しますか?

自分のWebサイトに「友人を招待」リンクをクリックして、Facebookのダイアログが表示されたら、招待する友人を選択するように求められます。これらの友人は、申請リクエスト、Facebookメール、または少なくとも私のウェブサイトへの参加を招待するウォールポストを受け取ります。

これを行うための適切な方法については少し混乱しています。非推奨ではない唯一の方法は、 Requests Dialog を使用することです。だから私は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から渡された最初のリクエストIDが読み取られるので、これが何であるかがわかります。キャンバスアプリケーションを構築する方法を学ばなければならないので、これは好きではありませんが、これはFacebook機能を通じて友人を招待する適切な方法ですか?

理想的には、友達を招待ボタンでFacebookの友達セレクターを表示し(ユーザーがまだFBにログインしていない場合はログイン)、それらの友達のウォールに投稿します。投稿されたメッセージには、私のウェブサイトへの簡単なリンクがあります。これは可能ですか?

25
at.

同じ問題がありました。質問に答えるのは非常に遅いですが、誰かを助けるでしょう。それがこの質問に答える理由です。

招待状を送信するときに、この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年2月までにできません。 2013年2月の移行が有効になった後に友達のタイムラインに投稿する方法

$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. 友達の写真にタグを付ける
21
Somnath Muluk

新しく導入された「 Send 」ボタン(およびそれに相当するダイアログ)が必要なものだと思います。

<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

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