«Диалог запроса» requestCallback при нажатии кнопки «Отмена» или «Закрыть» - PullRequest
1 голос
/ 14 октября 2011

Я новичок в разработке приложений для Facebook, а также новичок в программировании на JavaScript и PHP.

Я в настоящее время разрабатываю приложение Facebook, но в настоящее время застрял в окне диалога запроса.

Когда появляется диалоговое окно «Запрос», я выбираю нужных друзей, а затем нажимаю «Отправить запросы», выполняется обратный вызов request (ответ), и друзья, получающие запросы, уведомляются, как и ожидалось. Но, если я нажму «Отмена» или кнопку закрытия синего цвета, то requestCallback (ответ) также будет выполнен, но выбранные друзья не получат уведомление о запросе.

Вот мой код:

function requestCallback(response)
{
    //console.log(response);
    location.href='step2.php';
}

Итак, нажимаю ли я кнопку «Отмена» или кнопку «Закрыть», приведенный выше скрипт все еще выполняется (переход на страницу step2.php, которую я указываю).

То, что я хочу, это когда пользователь нажимает кнопку отмены или кнопку закрытия модального окна, страница остается на той же странице.

Кто-нибудь знает, как решить эту проблему?

Спасибо!

1 Ответ

5 голосов
/ 14 октября 2011

Вы можете просто проверить, что находится внутри объекта Facebook response , потому что он не будет прежним, если запросы были отправлены или нет!

Что-то вроде:

function requestCallback(response)
{
    if(response && response.request_ids) {
         // Here, requests have been sent, facebook gives you the ids of all requests
         //console.log(response);
         location.href='step2.php';
    } else {
         // No requests sent, you can do what you want (like...nothing, and stay on the page).
    }
}

Или, если вы используете новую структуру ( Запрос 2.0 Эффективный ):

function requestCallback(response)
{
    if(response && response.request) {
         // Here, requests have been sent, facebook gives you the request and the array of recipients
         //console.log(response);
         location.href='step2.php';
    } else {
         // No requests sent, you can do what you want (like...nothing, and stay on the page).
    }
}

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

Также кое-что важное : Facebook обновил свою систему запросов несколько недель назад, сделав доступными «Запросы 2.0» в настройках ваших приложений. По умолчанию он отключен, но если вы его активируете, структура объекта response при отправке запросов людям изменится. Поэтому вам нужно обновить ваше состояние в обратном вызове!

Здесь все объясняется: http://developers.facebook.com/blog/post/569/

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