Я кодирую инструмент социального управления. Мне нужен бесконечный токен доступа для Facebook.Access Token Infinite Renewal
Прежде всего, скажите мне, правильно ли я это понимаю; Токен доступа Причина, по которой мы получаем, заключается в том, чтобы иметь доступ к учетным записям пользователей для приложения, и этот токен доступа имеет 60 дней до истечения срока действия. но даже после того, как истек срок действия разрешений учетных записей пользователей только для приложений, у нас нет разрешения на это?
Могу ли я обновить токен доступа после истек? Я попробовал что-то вроде этого;
void GetToken()
{
try
{
WebClient webClient = new WebClient();
String fb_exchange_token = null;
fb_exchange_token = ds.Tables[0].Rows[0]["token"].ToString();
String newToken = fb_exchange_token;
var fb = new FacebookClient();
try
{
dynamic result = fb.Get("oauth/access_token", new
{
client_id = client_id,
client_secret = client_secret,
grant_type = "fb_exchange_token",
fb_exchange_token = fb_exchange_token
});
}
catch (Exception ex)
{
if (ex.Message.Contains("expired"))
{
dynamic result = fb.Get("oauth/access_token", new
{
client_id = client_id,
client_secret = client_secret,
grant_type = "client_credentials",
fb_exchange_token = fb_exchange_token
});
newToken = (string)result.access_token;
if (newToken != fb_exchange_token)
SqlHelper.ExecuteNonQuery(ConnectionString, "SocialTokenUpdate", ds.Tables[0].Rows[0]["SocialId"].ToString(), newToken);
}
DataProvider.ExceptionLogAdd("xx.aspx", "GetToken", ex.Message);
}
Session["Token"] = newToken;
Session["FBPageId"] = ds.Tables[0].Rows[0]["SocailFBId"].ToString();
}
catch (Exception ex)
{
DataProvider.ExceptionLogAdd("xx.aspx", "GetToken", ex.Message);
}
}