0

私はウェブサイトと Facebook キャンバス アプリを持っています。Web サイトのユーザーは、コンテンツを作成してから、Facebook の友達を招待してそれを見ることができます。これを行うと、友人は Facebook (facebook.com) で通知を受け取り、そのリンクから私の Facebook キャンバス ページに移動します。正常に動作します。

ここで、Facebook のモバイル アプリ (facebook.com ではない) を使用している友人に対しても同じことを行いたいと考えています。したがって、私の Web サイトのユーザーが友人を招待した場合、その友人が Facebook モバイル アプリで通知を表示し、リンクをクリックして Web サイトに移動し、コンテンツを表示できるようにしたいと考えています。私は自分の Web サイト用のモバイル アプリを持っていないので、リンクを Web ブラウザー経由で自分の Web サイトに移動させたいのです。

これは可能ですか?

そうでない場合、ウェブサイトでユーザーが Facebook の友達を招待できるようにし、それらの友達が Facebook モバイル アプリで通知を受け取ることができるようにする最善の方法は何ですか?

これが重要な理由は、私の Web サイトのユーザーは時間に敏感なコンテンツを作成するため、友人が facebook.com のコンピューターに物理的にアクセスするのを待つ必要がないようにするためです。友達が世界中のどこにいても、Facebook モバイル アプリを開いたときにすぐに取得できるようにしたいと考えています。

4

2 に答える 2

1

このコードは、投稿、メッセージの送信、および友達へのリクエストの送信に役立ちます。

ヘッドタグ:

<script type="text/javascript">
  function logResponse(response) {
    if (console && console.log) {
      console.log('The response was', response);
    }
  }

  $(function(){
    // Set up so we handle click on the buttons
    $('#postToWall').click(function() {
      FB.ui(
        {
          method : 'feed',
          link   : $(this).attr('data-url')
        },
        function (response) {
          // If response is null the user canceled the dialog
          if (response != null) {
            logResponse(response);
          }
        }
      );
    });

    $('#sendToFriends').click(function() {
      FB.ui(
        {
          method : 'send',
          link   : $(this).attr('data-url')
        },
        function (response) {
          // If response is null the user canceled the dialog
          if (response != null) {
            logResponse(response);
          }
        }
      );
    });

    $('#sendRequest').click(function() {
      FB.ui(
        {
          method  : 'apprequests',
          message : $(this).attr('data-message')
        },
        function (response) {
          // If response is null the user canceled the dialog
          if (response != null) {
            logResponse(response);
          }
        }
      );
    });
  });
</script>

ボディタグ:

<body>
<div id="fb-root"></div>
<script type="text/javascript">
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'xxxxxxxxxxxxxxxxxxx', // App ID
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true // parse XFBML
    });

    // Listen to the auth.login which will be called when the user logs in
    // using the Login button
    FB.Event.subscribe('auth.login', function(response) {
      // We want to reload the page now so PHP can read the cookie that the
      // Javascript SDK sat. But we don't want to use
      // window.location.reload() because if this is in a canvas there was a
      // post made to this page and a reload will trigger a message to the
      // user asking if they want to send data again.
      window.location = window.location;
    });

    FB.Canvas.setAutoGrow();
  };

  // Load the SDK Asynchronously
  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
</script>

<header class="clearfix">
  <?php if (isset($basic)) { ?>
  <p id="picture" style="background-image: url(https://graph.facebook.com/<?php echo he($user_id); ?>/picture?type=normal)"></p>

  <div>
    <h1>Welcome, <strong><?php echo he(idx($basic, 'name')); ?></strong></h1>
    <p class="tagline">
      This is your app
      <a href="<?php echo he(idx($app_info, 'link'));?>" target="_top"><?php echo he($app_name); ?></a>
    </p>

    <div id="share-app">
      <p>Share your app:</p>
      <ul>
        <li>
          <a href="#" class="facebook-button" id="postToWall" data-url="<?php echo AppInfo::getUrl(); ?>">
            <span class="plus">Post to Wall</span>
          </a>
        </li>
        <li>
          <a href="#" class="facebook-button speech-bubble" id="sendToFriends" data-url="<?php echo AppInfo::getUrl(); ?>">
            <span class="speech-bubble">Send Message</span>
          </a>
        </li>
        <li>
          <a href="#" class="facebook-button apprequests" id="sendRequest" data-message="Test this awesome app">
            <span class="apprequests">Send Requests</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
  <?php } else { ?>
  <div>
    <h1>Welcome</h1>
    <div class="fb-login-button" data-scope="user_likes,user_photos"></div>
  </div>
  <?php } ?>
</header>
于 2012-09-02T14:42:46.830 に答える
0

Facebookモバイル Web チュートリアルから:

function sendRequest() {
  FB.ui({
    method: 'apprequests',
    message: 'invites you to learn how to make your mobile web app social',
  }, 
  function(response) {
    console.log('sendRequest response: ', response);
  });
}

詳細については、リクエスト ダイアログのドキュメントを参照してください。

于 2012-09-02T15:12:08.673 に答える