格式错误的访问令牌 190 错误



尝试重定向以获取新的访问令牌时,发生错误,指出:

(OAuthException - #190) Malformed access token AQClEC8NbS1tbO4_HzqqZwVy2Inrk5I7vBpszPDPN0dVOV0ekurwNEpqzlWe2hQzl2KNZ5BwiSvL16bDPhR5IxFeJXEXBdM67uky7iwKbYKIVoRF__iyayyXBgcIp939gEZNtCUxyO4ZKZHQ9xmEwDstaOgq_bAvtygwv3YUeEYD9wftsytMZYwVxDO7rjq-2i3-XCYj643-6_1yKZ0dDahAB00iBqJqw1xiZ-l1kzStmA_pwMwO5dtBHZozp-L2hp0JEeTL0Fhc5CG1zbJ8Om6kyKBWyZuc0AtOrdSjgcBQBv9hQSF5pwsMZvFDGcjiwSc

我正在用这种方法重定向可能是什么问题:

string redirecturl = @"https://graph.facebook.com/oauth/authorize?client_id=507061112747022&redirect_uri=http://localhost:63695/FacebookChatApi/Default.aspx";
    Response.Redirect(redirecturl);

我正在按如下方式读取访问令牌:

string accessToken=Request["code"];
var client = new FacebookClient(accessToken); // here is where the error occurred 
  1. 这是获取客户端访问令牌的正确方法吗?
  2. 为什么在读取code值时发生此错误

根据Facebook调试工具,你的token不是令牌,而是一个URL:https://developers.facebook.com/tools/debug/og/object?q=AQClEC8NbS1tbO4_HzqqZwVy2Inrk5I7vBpszPDPN0dVOV0ekurwNEpqzlWe2hQzl2KNZ5BwiSvL16bDPhR5IxFeJXEXBdM67uky7iwKbYKIVoRF__iyayyXBgcIp939gEZNtCUxyO4ZKZHQ9xmEwDstaOgq_bAvtygwv3YUeEYD9wftsytMZYwVxDO7rjq

我不确定你是谁得到的,以及为什么你得到它而不是访问令牌 - 你没有显示足够的代码。从我所看到的,我相信你错误地生成了你的redirecturl。下面是我的一个项目中的一段代码 - 请尝试一下,让我知道它是否适合您:

// 1. redirect user to the login page:
var redirectUri = "http://localhost:63695/FacebookChatApi/Default.aspx";
var service = new FacebookClient();
var loginUrl = service.GetLoginUrl(new {
    client_id = ConfigurationProvider.FacebookAppId,
    client_secret = ConfigurationProvider.FacebookAppSecret,
    redirect_uri = redirectUri,
    response_type = "code",
    scope = "manage_pages, publish_actions, user_photos, publish_stream" // Add other permissions as needed
});
Response.Redirect(loginUrl);
// 2. And when user authorizes, get the access token
// NOTE: code executes on FacebookChatApi/Default.aspx page
var redirectUri = "http://localhost:63695/FacebookChatApi/Default.aspx";  // must be the same as in the login call!
var fb = new FacebookClient();
dynamic result = fb.Post("oauth/access_token", new
{
    client_id = ConfigurationProvider.FacebookAppId,
    client_secret = ConfigurationProvider.FacebookAppSecret,
    redirect_uri = redirectUri,
    code = code
});
var accessToken = result.access_token;

最新更新