Используйте HTML-форму, чтобы получить данные и опубликовать их на стене Facebook.

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

Я уже настроил разрешение publish_stream и могу легко публиковать в поток, используя показанный здесь метод: Пример

Однако, если вы используете HTML-форму и нажимаете «Отправить», страница перезагрузится и пройдет процесс получения токена. Это приводит к некоторой перемаршрутизации, которая приводит к потере данных в $_REQUEST.

Есть какой-либо способ сделать это?

Спасибо.


person user661838    schedule 16.03.2011    source источник
comment
возможный дубликат отправить сообщение в facebook из ‹textarea› с помощью fb. интерфейс?   -  person ifaour    schedule 16.03.2011


Ответы (1)


Да, дорогой, ты можешь использовать его с помощью java-скрипта.

<textarea id="status" cols="50" rows="5">Write your status here and click 'Status Set Using Legacy Api Call'</textarea>
<br />
<a href="#" onClick="setStatus(); return false;">Status Set Using JSDK Call</a>
<script type="text/javascript">
            window.fbAsyncInit = function() {
                FB.init({appId: 'Your APPI ID', status: true, cookie: true, xfbml: true});

                /* All the events registered */
                FB.Event.subscribe('auth.login', function(response) {
                    // do something with response
                    //login();
                });
                FB.Event.subscribe('auth.logout', function(response) {
                    // do something with response
                    //logout();
                });

                FB.getLoginStatus(function(response) {
                    if (response.session) {
                        // logged in and connected user, someone you know
                       // login();
                    }
                });
            };
            (function() {
                var e = document.createElement('script');
                e.type = 'text/javascript';
                e.src = document.location.protocol +
                    '//connect.facebook.net/en_US/all.js';
                e.async = true;
                document.getElementById('fb-root').appendChild(e);
            }());
function setStatus(){
                status1 = document.getElementById('status').value;
                FB.api(
                  {
                    method: 'status.set',
                    status: status1
                  },
                  function(response) {
                    if (response == 0){
                        alert('Your facebook status not updated. Give Status Update Permission.');
                    }
                    else{
                        alert('Your facebook status updated');
                    }
                  }
                );
            }
        </script>
person Awais Qarni    schedule 16.03.2011
comment
Спасибо, Awais! Так нельзя ли обрабатывать формы в iframe? Что делать, если я хочу использовать формы для встраивания опроса в свое приложение? - person user661838; 16.03.2011
comment
Как вы гарантируете, что данные отправляются из формы? Допустим, у меня есть ‹form action=index.php›, поэтому форма обрабатывается самой индексной страницей (включите какое-то скрытое поле и проверьте, если (isset($_REQUEST[hidden])). Проблема, с которой я сталкиваюсь, заключается в том, что ни один из данные формы отправляются обратно в index.php после того, как я нажму кнопку отправки. - person user661838; 16.03.2011
comment
Хорошо, разместите весь свой код, отредактируйте свой вопрос и дайте мне знать после этого. - person Awais Qarni; 16.03.2011