Как да предам низ за заявка към URL адрес на приложение за раздел във Facebook въз основа на потребителя, който е добавил раздела към своята страница

Имам доста просто приложение за раздели на страници, което може да се добави към нечия FB страница. Предоставям бутон на моя сайт, за да помогна на потребителите да добавят приложението към своята FB страница.

Искам да актуализирам URL адреса на раздела на страницата на iframe (и защитения URL адрес), за да включва низ за заявка. Това ще позволи съдържанието на iframe да бъде персонализирано за всеки потребител, който добавя приложението към своята страница.

Основен случай на употреба е, че потребител 1 щракне върху бутона и приложението се добавя към неговата страница. Съдържанието на iframe е специфично за потребител 1. Потребител 2 прави същото, но съдържанието на неговия раздел е специфично за потребител 2. Мога да се справя с нещата от низа на заявката на моя сайт, така че да отговаря правилно, но не съм сигурен как да накарайте Tab url да добави параметъра на низа на заявката от бутона Добавяне на приложение към Facebook.

текущият код за добавяне на приложение към facebook, който използвам:

<div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js'></script>
<p><a onclick='addToPage(); return false;'>Add to Page</a></p>
<p id='msg'></p>

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

   function addToPage() {

  // calling the API ...
  FB.ui(
    {
        method: 'pagetab'
    },
    function(response) {
        if (response != null && response.tabs_added != null) {

            $.each(response.tabs_added, function(pageid) {
                  alert(pageid);
            });
        }
    }
  );


  }

</script>

Благодаря за вашата помощ!

РЕДАКТИРАНО ЗА ДОБАВЯНЕ НА ПОВЕЧЕ ИНФОРМАЦИЯ

След като обсъдих това с друг разработчик, исках да се уверя, че съм ясен. Ако User1 добави раздела към страницата си, тогава без значение кой гледа раздела, съдържанието винаги ще бъде контекстуално за User1. Ако User2 добави този раздел към страницата си, тогава без значение кой гледа раздела, съдържанието ще бъде контекстно за User2. Съдържанието на раздела е специфично за потребителя, който е добавил раздела към своята страница.


person TJ Sherrill    schedule 22.10.2012    source източник
comment
Защо просто не промените съдържанието въз основа на ИД на страницата вместо на потребителския ИД? идентификаторът на страницата се предава с всяка заявка към вашето приложение и приложението не може да бъде инсталирано на страница повече от веднъж, така че винаги ще бъде уникална комбинация приложение/страница   -  person Igy    schedule 23.10.2012


Отговори (1)


Трябва да направите промяната на съдържанието въз основа на ИД на страницата вместо на потребителския ИД на администратора на страницата, който го е добавил. Съкратена версия: това е така, защото не можете надеждно да прехвърлите потребителския идентификатор на администратора на страницата в много от приложението (или всякаква друга информация наистина, тъй като потребителите могат ръчно да имат достъп до раздела)

Идентификационният номер на страницата обаче се предава с всяка заявка към вашето приложение чрез свойството page на signed_request заедно с някои други параметри, включително текущия потребителски идентификатор (ако е упълномощил приложението ви) и дали е харесал страницата или е администратор на страницата (независимо от статуса на оторизацията)

Едно приложение не може да бъде инсталирано на страница повече от веднъж, така че ИД на приложението / ИД на страницата ще бъде уникален за вашите цели

Единственият друг параметър, през който можете да преминете към приложение за раздел на страница, за да персонализирате дисплея, е параметърът app_data, който ще бъде изпратен в свойството page на signed_request, но това се отнася само за връзки, които съдържат този параметър: потребители, кликващи върху раздела на страницата директно няма да премине този параметър и ще получи неперсонализираното съдържание

Вижте урока за раздела на страница в раздела Първи стъпки на Документите за повече информация

person Igy    schedule 22.10.2012
comment
Така че, ако ви разбирам правилно, трябва да използвам ID на FB страницата като идентификатор? Така че, ако ви разбирам правилно, URL адресът в настройките на приложението остава същият, но в моя код за страницата питам FB за идентификатора на страницата, което след това ми позволява да персонализирам съдържанието си. Това вярно ли е? недостатъкът, който откривам е, че не мога да добавя това повече от веднъж. В моя сайт искам моят потребител да може да създава повече от една от тези вградени рамки. Всеки ще има различно съдържание... - person TJ Sherrill; 25.10.2012
comment
Вече не можете да добавяте едно и също приложение (идентифицирано чрез ID) повече от веднъж към страница, въпреки че предполагам, че бихте могли да използвате един и същ бекенд код, ако вашите различни идентификатори на приложения използват малко по-различни URL адреси за обратно извикване с някакъв специфичен за приложението идентификатор. Предполагам, че не сте знаели за това, което би обяснило защо все още не сте използвали ID на страницата като уникален идентификатор. Не е необходимо да „питате“ Facebook за това, всяка заявка към вашето приложение, когато се зареди в раздел на страница, ще бъде POST заявка, съдържаща signed_request, която включва ID на страницата - person Igy; 25.10.2012
comment
така че просто трябва да анализирам signed_request, да получа идентификатора на страницата и да го използвам в моето извикване на iframe, за да получи точните данни правилни? - person TJ Sherrill; 25.10.2012