Facebook Send Dialog определяет, была ли нажата кнопка отправки или отмены - PullRequest
5 голосов
/ 15 июля 2011

Я использую диалог отправки Facebook для отправки сообщений друзьям.Как указано здесь: https://developers.facebook.com/docs/reference/dialogs/send/, и я использую ссылку, подобную той, что в примере с Facebook:

https://www.facebook.com/dialog/send?app_id=123050457758183&name=People%20Argue%20Just%20to%20Win&link=http://www.nytimes.com/2011/06/15/arts/people-argue-just-to-win-scholars-assert.html&redirect_uri=http://www.example.com/response

На странице, которую я указал как redirect_uri Яотображение текста с надписью: «Ваше сообщение было отправлено».Однако я понял, что вы видите эту страницу, даже если вы нажали «Отмена» в диалоговом окне Facebook.

Есть ли способ определить, была ли нажата сохранить или отменить ?

Обновление: Я нашелОбходной путь с использованием метода FB.ui, который решает проблему, с которой я столкнулся. Мне все равно было бы интересно узнать, есть ли у кого-нибудь лучшее решение, использующее ссылку «Отправить диалог», как указано выше.

Ответы [ 2 ]

8 голосов
/ 27 июля 2011

Я нашел обходной путь, используя метод FB.ui для Javascript SDK Facebook.

      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,
          display: 'popup'
          });

N.B. дисплей должен быть установлен на всплывающее окно, чтобы это работало!

Поскольку для него не требуется redirect_uri, вопрос о том, нажата ли кнопка сохранения или отмены, не является проблемой. Однако, если вы хотите знать это, вы можете получить доступ к объекту ответа:

      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,
          display: 'popup'
          },
          function(response) {
              if (response){
                  // save has been clicked
              } else {
                  // cancel has been clicked
              }
          });
5 голосов
/ 15 марта 2012

Небольшое дополнение к ответу Энди: объект-ответ не дает много информации о том, что было отправлено, на самом деле (возвращает [] в консоли), но простое СУЩЕСТВОВАНИЕ объекта-ответчика указывает, что была нажата кнопка «ОТПРАВИТЬ»

FB.ui(obj, function (param) {
if (param) {
// The "SEND" button has been pressed
}
else{
// The "Cancel" button has been pressed
}
...