Это может показаться очевидной проблемой, но я просмотрел сайт разработчиков facebook относительно приложений на холсте и на facebook csharp sdk и не нашел ответа на мои вопросы.Структура сайта для нескольких страниц Facebook Canvas app
Я использую facebook-C# -sdk v5.4x или что-то о, .net 3.5, используя веб-формы.
Приложение для холста на рабочем столе будет иметь несколько точек входа.
https://apps.facebook.com/my_canvas_app/Default.aspx
https://apps.facebook.com/my_canvas_app/Register.aspx?EventID=12345
https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx
Мой первый вопрос заключается в том, что с первого запроса от Facebook, я получаю signed_request
(который facebook-C# -sdk берет на себя), у меня есть маркер OAuth , который действителен в течение приблизительно 2 часов. Каков правильный способ повторного ввода этого токена oauth и убедиться, что он действителен, прежде чем пытаться сделать запрос oauth (запросить график и т. Д.)?
Прямо сейчас все мои ссылки (скажем, от Default.aspx) выглядят как <a href="https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx" target="_top">Go to Some Other Page</a>
, что заканчивается тем, что совершает кругосветное путешествие на facebook, получая новый signed_request
и, таким образом, обновленный токен oauth.
Во-вторых, при выполнении обычной формы обратной передачи, хотя asp.net на моем собственном сайте, я гарантирую, что signed_request
находится на форме с простым <input type="hidden" name="signed_request" value="<%=Request.Form["signed_request"]%>" />
, который, кажется, отлично подходит для приложения. Если я опустил это, то postback не имеет информации oauth, что приводит к сбоям в работе. Это правильный способ выполнения обратной передачи в приложении холста? Из того, что я вижу из просмотра источника csharp-sdk, ничего не хранится в сеансе, чтобы сохранить токен oauth между запросами, поэтому ссылки для скрытого ввода и target = "_ top" требуются для нескольких страниц/postbacks, am Я исправляю этот вывод?
В-третьих, при разработке мобильного холста (без iframe), все ссылки на моей странице по-прежнему должны идти до https://apps.facebook.com/my_canvas_app/MobilePage.aspx
, если мое первое предположение верно.
Если бы кто-нибудь мог пролить свет на эти предметы, я был бы очень благодарен.
Спасибо!
Я ищу, чтобы сделать все oauth без javascript, если это все возможно. Если требуется javascript, то почему вообще существует 'signed_request'? Я понял, что 'signed_request' является альтернативой использованию javascript lib. – Matthew
Если вы выполняете аутентификацию на стороне сервера, то токен доступа должен быть действительным в течение 60 дней, а не только двух часов (см. Https://developers.facebook.com/roadmap/offline-access-removal/) – CBroe