Как опубликовать на стене пользователя в Facebook из приложения Silverlight, работающего внутри Facebook, в iFrame? - PullRequest
0 голосов
/ 23 марта 2011

У меня настроено приложение Facebook, где оно работает в iFrame.Этот iFrame просто содержит index.html, который оборачивает приложение Silverlight.

Все работает отлично, но теперь я хотел бы иметь возможность размещать сообщения на стене пользователя из приложения Silverlight.Мне кажется, что я мог бы сделать это двумя способами:

  1. Использовать Silverlight Facebook SDK для создания страницы суб-браузера, аутентификации, получения токенов и последующей публикации на стене
  2. Поместите что-то в мою оболочку index.html, которая доставляет необходимые токены приложения в мой элемент управления Silverlight, а затем перезвоните из этого элемента управления (в Javascript?), Чтобы выполнить публикацию

Второй взгляднравится гораздо более привлекательный вариант, но первый - единственный, который я знаю, как сделать.У кого-нибудь есть лучшие впечатления / мысли здесь?

Крис

Ответы [ 2 ]

0 голосов
/ 23 марта 2011

Вы можете сделать что-то подобное на своей странице:

<script>
FB.getLoginStatus(function(response) {
  if (response.session) {
     // Substitute with the proper stuff in your silverlight app
     mySilverlightFBApp.setFBSessionStuff(
          response.session.access_token,
          response.session.expires,
          response.session.uid
     );
  } 
});
</script>

В объекте сеанса есть дополнительные поля (но вы не уверены, что хотите это сделать).Кстати, функция getLoginStatus не регистрирует пользователя, а только проверяет его статус.Так как они (предположительно) используют ваше приложение и (предположительно) разрешили приложение, это должно сработать.(вам нужно, чтобы они вошли в систему и разрешили приложение .. и вам, возможно, потребуется запросить разрешения .. которые в этом случае вы хотите опубликовать в их ленте).Ваша индексная страница также должна включать JBascript FB (и правильно его настроить).

Ознакомьтесь с документами FB здесь для получения дополнительной информации: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

0 голосов
/ 23 марта 2011

Возможно: 3) Использовать javascript SDK facebook, чтобы позволить пользователю опубликовать историю потока самостоятельно?Если у вас уже есть все функции fb.init и т. Д., То просто вызовите (что-то вроде) это (часть внизу предназначена для отслеживания сообщений, если хотите):

FB.ui(
        {

            display:'iframe',
            method: 'stream.publish',
            caption: 'blah',
            description: 'hey there. wow.,
            name: 'yo',
            link: 'http://foo.com',
            picture: 'http://image.com/blah.gif',
            action_links: [
                        {
                        text: 'Try for free',
                        href: 'http://foo.com'
                        }],



        },
            function (response) {
                if (response && response.post_id) {
                var URL = '/pages/ajax_InsertUserFacebookPost.aspx?';
                URL += 'facebookpostid=' + response.post_id;
                //alert(URL);
                $.ajax({
                        type: "GET",
                        url: URL,
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        async: true
                    });


                } else {
                    //alert('Post was not published.');
                }
            }
            );
...