2014-04-09 19 views
0

我使用Windows Phone上的C#通过oauth 2.0向Facebook进行身份验证。我只使用REST服务调用。根本不使用Facebook SDK。我目前可以在手机上启动浏览器,让用户登录并批准应用程序的范围,然后检索我的授权码。Facebook - access_token的交换码(C#/ Windows Phone/NO SDK)

但是,我不能为我的生活交换我的访问令牌的授权码。

我的Facebook应用程序具有下列开关下的“设置”打开 - >“高级”:

  • 本地或桌面应用程序? [是]
  • 嵌入了您的应用程序秘密吗? [否]
  • 客户端OAuth登录? [是]
  • 嵌入式浏览器OAuth登录? [是]

我要指出,我的模型对用户进行认证并检索所有手机上的授权码,然后我通过了授权码的安全服务,我换取一个的access_token。虽然我遇到了问题,所以我暂时将此服务器调用移到了我的手机应用程序中以进行故障诊断,但我得到了同样的错误。

我收到的错误是:

{ “错误”:{ “消息”: “无效的验证码格式。”, “类型”: “OAuthException”, “代码”:100}}

我尝试过几种组合方式,包括使用HTTPUtility.UrlEncode()包装授权代码。

这里是我的代码示例(实际值被换出)。

 string FacebookClientID = "123456789123456789"; 
     string FacebookRedirectURI = "https://www.facebook.com/connect/login_success.html"; 
     string FacebookClientSecret = "d156df15dfds1f561fds5f1ds6f1"; 
     string FacebookUrl = "https://graph.facebook.com/oauth/access_token"; 

     HttpRequestMessage tokenRequest = new HttpRequestMessage(HttpMethod.Get, new Uri(FacebookUrl + "?client_id=" + FacebookClientID + "&redirect_uri=" + HttpUtility.UrlEncode(FacebookRedirectURI) + "&client_secret=" + FacebookClientSecret + "&code=" + HttpUtility.UrlEncode(FacebookAuthorizationCode))); 

     HttpResponseMessage tokenResponse = await hc.SendAsync(tokenRequest); 

     var json = tokenResponse.Content.ReadAsStringAsync().Result; 

JSON结束了包含以上,说明我的授权码是坏的报告错误字符串。

任何想法?

此致

goodbar

+0

大新...没关系,我正在设置授权码.ToLower()。删除了,现在工作就像一个魅力... – goodbar

+0

虽然记录,我能够获得与Facebook设置中的所有开关access_token - >先进的关闭 – goodbar

+0

如果解决你应该发布这个答案,并接受 –

回答

0

大新...没关系,我设置授权码.ToLower()之前交换它用于的access_token。移除了现在的工作就像一个魅力...

为了记录在案,虽然,我能够与所有在Facebook的设置开关拿到的access_token - >高级关闭