опубликовать на стене пользователя с вкладки facebook

Как я могу запросить у пользователя разрешения на публикацию потоков и электронную почту с вкладки facebook? Все, что я нашел, не позволит мне перенаправить обратно ни на текущую страницу, которую я загрузил в iframe, ни на URL-адрес вкладки facebook. Все, что я пробовал, дало мне эту общую ошибку Facebook.

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

Это может быть проще, если я могу вывести сообщение на вашу стену и попросить пользователя нажать кнопку отправки. Этот способ не требует разрешений заранее правильно? Каким будет код, чтобы сделать это таким образом?


person Michael McCurley    schedule 12.10.2011    source источник


Ответы (1)


Вы можете просто использовать диалоговое окно ленты новостей:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="https://www.facebook.com/2008/fbml">
  <head>
    <title>My Feed Dialog Page</title>
  </head>
  <body>
    <div id='fb-root'></div>
    <script src='http://connect.facebook.net/en_US/all.js'></script>
    <p><a onclick='postToFeed(); return false;'>Post to Feed</a></p>
    <p id='msg'></p>

    <script> 
      FB.init({appId: "YOUR_APP_ID", status: true, cookie: true});

      function postToFeed() {

        // calling the API ...
        var obj = {
          method: 'feed',
          link: 'https://developers.facebook.com/docs/reference/dialogs/',
          picture: 'http://fbrell.com/f8.jpg',
          name: 'Facebook Dialogs',
          caption: 'Reference Documentation',
          description: 'Using Dialogs to interact with users.'
        };

        function callback(response) {
          document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
        }

        FB.ui(obj, callback);
      }

    </script>
  </body>
</html>

Он хорошо работает на вкладке страницы.

person ifaour    schedule 12.10.2011
comment
Мне нужно инициализировать класс FB только один раз на странице, верно? Другими словами, это уже есть на странице FB.init({appId: YOUR_APP_ID, status: true, cookie: true}); Так что я могу оставить это в коде диалога правильно? Или мне нужно включать это каждый раз, чтобы инициализировать новый? - person Michael McCurley; 12.10.2011
comment
Наконец-то я понял, где проблема. До новых изменений, когда вы создавали приложение, вы только что создавали приложение. Теперь у вас есть возможность выбора приложения, вкладки, веб-сайта, Android и т. д. Если вы выберете только настройку вкладки, вы получите ошибки, используя любой из FB API. Вы также должны выбрать настройку приложения. - person Michael McCurley; 13.10.2011