Это может показаться очевидной проблемой, но я просмотрел сайт разработчиков Facebook о приложениях на основе холста и facebook csharp sdk Так и не нашел ответа на свои вопросы.
Я использую 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"]%>" />
, который, кажется, отлично работает для приложения. Если я пропущу это, то обратная передача не будет иметь информации oauth, что приведет к сбою. Это правильный способ выполнить обратную передачу в приложении на основе холста? Из того, что я вижу при просмотре источника csharp-sdk, в сеансе ничего не сохраняется для сохранения токена oauth между запросами, поэтому скрытый ввод и ссылки target="_top" требуются для нескольких страниц/обратных передач, am Я прав в этом выводе?
В-третьих, при разработке мобильного приложения на основе холста (без iframe) все ссылки на моей странице по-прежнему должны вести на https://apps.facebook.com/my_canvas_app/MobilePage.aspx
, если мое первое предположение верно.
Если бы кто-нибудь мог пролить свет на эти темы, я был бы очень признателен.
Спасибо!