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

时间:2014-02-19 17:10:09

标签: c# facebook facebook-graph-api

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

(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
  3. 时发生此错误的原因

1 个答案:

答案 0 :(得分:0)

根据Facebook调试工具,您的token不是令牌,而是网址: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;
相关问题