Facebook C#SDK v 6を使用し、アプリケーション設定で[オフラインアクセスの削除]を有効にしました。ログインしてアクセストークンを取得した後、長期間有効なトークン(60日)と交換しようとしています。両方のトークンの有効期限が切れているため、取得できません。 24時間以内にあります。
これが私のコードです
Facebookにログインする場合
private const string Scope = "publish_stream,manage_pages";
FacebookClient _fb = new FacebookClient();
var fbLoginUrl = _fb.GetLoginUrl(
new
{
client_id = AppId,
client_secret = Appsecret,
redirect_uri = RedirectUri,
response_type = "code",
scope = Scope,
state = state
});
短期間のアクセストークンを取得するには
if (Request.QueryString["code"] != null)
code = Request.QueryString["code"];
var result = _fb.Post("oauth/access_token",
new
{
client_id = AppId,
client_secret = Appsecret,
redirect_uri = RedirectUri,
code = code,
scope = Scope,
response_type="token"
});
長寿命のアクセストークンを取得するには
var result1 = _fb.Post("oauth/access_token",
new
{
client_id = AppId,
client_secret = Appsecret,
grant_type = "fb_exchange_token",
fb_exchange_token= Session["fb_access_token"] as string
});