Отправить уведомление пользователю на Facebook для запроса приложения? - PullRequest
1 голос
/ 27 февраля 2012

Я столкнулся с множеством вопросов по этому же вопросу, но нигде не было дано никакого конкретного ответа

Я посылаю приглашения друзьям из Facebook, скажем a, b, c, и что должно произойти, это уведомление должно бытьотображается для запроса приложения

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

Код, который у меня пока есть:

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

  <body>
    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <p>
      <input type="button"
        onclick="sendRequestToRecipients(); return false;"
        value="Send Request to Users Directly"
      />
      <input type="text" value="User ID" name="user_ids" />
      </p>
    <p>
    <input type="button"
      onclick="sendRequestViaMultiFriendSelector(); return false;"
      value="Send Request to Many Users with MFS"
    />
    </p>

    <script>
      FB.init({
        appId  : 'XXXXX',
      });

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

      function sendRequestViaMultiFriendSelector() {
        FB.ui({method: 'apprequests',
          message: 'My Great Request'
        }, requestCallback);
      }

      function requestCallback(response) {
        // Handle callback here
      }
    </script>
  </body>
</html>

РЕДАКТИРОВАТЬ: enter image description here

Когда я отправляю запрос, пользователь не получает его ... Также не отображается ошибка

Ответы [ 2 ]

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

Вот две вещи, которые могут привести к тому, что ваши запросы не будут выполнены -

  • Отсутствует или неверный URL холста
  • Приложение в режиме песочницы

Приложение, которое отправляет запросы пользователям , должно иметь a canvas URL, указанное в настройках приложения. Когда пользователь действует по запросу (принимает его), он / она перенаправляется в приложение и, в частности, на URL-адрес холста. Если вы не укажете URL-адрес холста, ваш запрос будет deemed invalid от Facebook, поскольку перенаправить пользователя некуда. URL холста не может быть apps.facebook.com/namespace, потому что ваше приложение не находится в домене Facebook. Вы должны установить URL-адрес на ваш домен. Страница, на которую вы перенаправляете, должна снова перенаправить пользователя обратно в ваше приложение:

 if(!strpos($_SERVER['HTTP_REFERER'],"apps.facebook.com")) {
    header("location: "._fb_app_path);
    exit();
 }

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

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

Я считаю, что правильный метод (по крайней мере, то, что мы используем):

function invoke_app_request(){
  var receiverUserIds = FB.ui({
      method: 'apprequests',
      message: 'MESSAGE',
      data: '',
      max_recipients: AN_INT //this is optional
    },
    function(response) {
      //whatever you do here
    }
  );
}

Я где-то читал (не берите 100%), что отображение уведомлений о приглашениях основано на алгоритмах Facebook и отображается не во всех приложениях. Это связано с активностью приложения и историей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...