Запросы приложения Facebook - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть приложение facebook, которое является вкладкой внутри фан-страницы.

Я использовал подписанный запрос, чтобы посмотреть, нравится ли пользователю страница, и показать контент на его основе.

Мне также удалось использовать получение идентификатора пользователя Facebook после запроса пользователя войти в систему и предоставить доступ к приложению.

Что я НЕ МОГУ сделать, так это заставить работать функцию «apprequests».Я пробовал пару способов:

К вашему сведению - я использую эту версию jquery: https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

    <div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<form id="form1" runat="server">

<script type="text/javascript">

    window.fbAsyncInit = function() {
        FB.init({ appId: 'myappid', xfbml: true, cookie: true, oauth: true });
    };

    function inviteFriends() {
        FB.ui({
            method: 'apprequests',
            message: 'Enter this cool competition http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192',
            redirect_uri: 'http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192',
            display: 'iframe'
        },
            function (response) {
                console.log(response);
            }
        );
    }

....

, когда я делаю это, есть 2 проблемы (и я думаю, что они, вероятно, связаны) 1. Запрос не отправляется выбранным пользователям 2. Функция для ответа не вызывается.Когда я вызываю метод FB.ui, я могу выбирать пользователей, но когда я это делаю, в диалоговом окне отображается экран загрузки и он просто выключается.

Одна вещь, которая показалась мне странной, заключалась в том, что когда я этого не делалвключив параметр 'redirect_uri' (который из того, что я вижу, не должен быть необходим), я получил сообщение о том, что приложению не принадлежит URL обратного вызова.

Я также пытался сделать это таким образом

    var message = 'Enter this cool competition';
                var requestUrl = 'http://www.facebook.com/dialog/apprequests?app_id=308637695832192&redirect_uri=http://localhost:51934/Default.aspx&message=' + message;
                window.top.location.href = requestUrl;

Это также похоже на работу, я могу выбрать пользователей, и это похоже на работу - я получаю пользователей, которых я добавил в параметрах строки запроса к [0], к [1] ​​и т. Д.

Есть ли что-то, что я делаю, что неправильно и может быть причиной этого?Когда я запрашиваю у пользователя авторизацию приложения, я просто запрашиваю стандартный доступ, насколько я могу судить по документам Facebook, это все, что должно потребоваться.Я также брожу, если есть какие-то ограничения на то, что можно сделать внутри страницы?

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 25 ноября 2011

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

Для номера 1) В настройках приложения я установил только URL для вкладки страницы.вариант, когда я выбрал ТАКЖЕ, чтобы приложение было приложением facebook, внезапно запросы были доставлены и все отображаются.

Для номера 2) У меня установлено redirect_uri и функция обратного вызова не вызывается, диалоговое окно будетпросто близко.Я думаю, что redirect_uri действует только когда всплывающее окно.Попробуйте удалить опцию redirect_uri и опцию отображения

Кстати, я также получал эту ошибку в связи с отсутствием URI перенаправления.Я не знаю наверняка, что я изменил, что означало, что я перестал получать его, но подозреваю, что это произошло, когда я переместил hdml sdk init сразу после тега body, как описано здесь https://developers.facebook.com/docs/reference/javascript/ У меня ранее было это незадолго дозакрытие тега body.Надеюсь, это поможет.

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