Вы можете использовать appId и appSecret в качестве маркера доступа к приложению.
Например, вы можете сделать это при отладке токена пользователя, чтобы увидеть, действителен ли он
var client = new FacebookClient();
dynamic result = client.Get("debug_token", new
{
input_token = user.AccessToken,
access_token = string.Format("{0}|{1}", appId, appSecret)
});
Позже вы можете проверить файл result.data.is_valid, чтобы узнать, действителен ли токен пользователя.
Если вам нужен access_token пользователя, сначала вам нужно правильно настроить область, позже вы можете сделать это:
if (Request["code"] == null)
{
Response.Redirect(string.Format(
"https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope={2}",
appId, Request.Url.AbsoluteUri, scope));
}
else
{
var tokens = new Dictionary<string, string>();
string url =
string.Format(
"https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&scope={2}&code={3}&client_secret={4}",
appId, Request.Url.AbsoluteUri, scope, Request["code"], appSecret);
var request = WebRequest.Create(url) as HttpWebRequest;
using (var response = request.GetResponse() as HttpWebResponse)
{
var reader = new StreamReader(response.GetResponseStream());
string vals = reader.ReadToEnd();
foreach (string token in vals.Split('&'))
{
tokens.Add(token.Substring(0, token.IndexOf("=")),
token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
}
}
// Get access token from tokens
var accessToken = tokens["access_token"];
}
Это перенаправит пользователя на Facebook с запросом разрешения. Затем Facebook вернется к обратному URL-адресу с кодом в строке запроса, используйте этот код, чтобы получить access_token пользователя.
Имейте в виду, что это будет кратковременный токен доступа, вам, вероятно, придется его расширить.