Я пытаюсь найти общие принципы использования Facebook C # SDK для написания приложения Canvas.
Мой подход заключается в следующем.У меня есть главная страница, которую я пытаюсь авторизовать на странице oninit.Все хорошо.В первый раз мы не авторизованы, а во второй раз мы.Когда я отправляю назад все идет не так.Я ожидал, что элемент авторизации / куки / элемент сеанса / элемент представления будет зависать, а элемент авторизатора останется авторизованным.
Похоже, что это не так.
Должен ли я проверить эту авторизацию только один раз, а затем вставить этот токен авторизации в память?затем, когда я хочу получить информацию / опубликовать информацию, передать этот токен авторизации вручную?
Является ли общим принципом, что когда я хочу опубликовать / получить, я создаю новый экземпляр facebookapp и передаю токен аутентификации?
Вот код, который я использовал.
Могу ли я получить некоторые общие принципы, специфичные для c#
, asp.ne
t, codeplex SDK dlls
Огромное спасибо Spiggers
public partial class facebook : System.Web.UI.MasterPage
{
protected FacebookApp fbApp;
protected CanvasAuthorizer authorizer;
protected FacebookSettings oSettings = new FacebookSettings();
protected override void OnInit(EventArgs e) {
//not sure that we need this, or indeed if this works
//HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
oSettings.AppId = Config.Facebook.FacebookApplicationID;
oSettings.AppSecret = Config.Facebook.FacebookSecret;
fbApp = new FacebookApp(oSettings);
authorizer = new CanvasAuthorizer(fbApp);
if (!authorizer.IsAuthorized()) // postbacks always fail this, to it reposts itself and the postback event does not fire!!!
{
string scope = "publish_stream,email,user_birthday";
var url = Common.Facebook.Authorization.AuthURL(Config.Facebook.FacebookApplicationID, Config.Facebook.RedirectURL, scope);
var content = CanvasUrlBuilder.GetCanvasRedirectHtml(url);
Response.ContentType = "text/html";
Response.Write(content);
Response.End();
}
base.OnInit(e);
}
}