Я довольно часто использую примеры в SDK для своего приложения.И это прекрасно работает.Кроме меня есть два вопроса, касающихся аутентификации.1. Как я могу избежать появления веб-формы при каждом запуске приложения?После того как я авторизовал свое приложение, каждый раз, когда я перезапускаю его, я вижу, что веб-форма появляется на секунду, а затем закрывается.Не очень чисто, на мой взгляд.Есть ли способ проверить, все ли я вошел в систему и дал ли мне разрешение на приложение перед отображением веб-формы?2. Если я становлюсь не прошедшим проверку подлинности во время работы моего приложения, есть ли способ для меня легко обнаружить это и затем снова отобразить форму входа?
Я думаю, что я близок к своему коду ниже, но не совсем там.
Заранее спасибо!
private string[] extendedPermissions = new[] { "read_stream", "offline_access" };
public Form1()
{
var fbLoginDialog = new FacebookLoginDialog(AppId, extendedPermissions);
//always shows login dialog, even if the app was just recently closed. Is this necessary?
fbLoginDialog.ShowDialog();
//every minute look for new posts
clockTimer.Elapsed += new System.Timers.ElapsedEventHandler(clockTimer_Elapsed);
DisplayAppropriateMessage(fbLoginDialog.FacebookOAuthResult);
GetAllData(unixTimeOfNewestPost);
InitializeComponent();
}
private void DisplayAppropriateMessage(FacebookOAuthResult facebookOAuthResult)
{
if (facebookOAuthResult != null)
{
if (facebookOAuthResult.IsSuccess)
{
_accessToken = facebookOAuthResult.AccessToken;
}
else
{
MessageBox.Show(facebookOAuthResult.ErrorDescription);
}
}
}
private void GetAllData(double unixTs)
{
var fb = new FacebookClient(_accessToken);
Facebook.JsonArray posts = new JsonArray();
try
{
var result = (IDictionary<string, object>)fb.Get("/me/home?since=" + unixTs + "&limit=1000");
posts = (Facebook.JsonArray)result["data"];
}
catch (FacebookOAuthException e)
{
MessageBox.Show("FacebookOAuthException",
"Facebook Authorization problem. The error message was '" + e.Message + "'.", null, "");
//show the login form again???
}
catch (Exception e)
{
Log("Exception. There was a general exception. The error message was '" + e.Message + "'.");
}
foreach (Facebook.JsonObject post in posts)
{
// do stuff with each post
}
} // end of GetPosts()