【问题标题】:Facebook - Exchange code for access_token (C# / Windows Phone / NO SDK)Facebook - access_token 的交换代码(C#/Windows Phone/无 SDK)
【发布时间】:2014-05-21 23:39:08
【问题描述】:

我在 Windows Phone 上使用 C# 通过 oauth 2.0 向 facebook 进行身份验证。我只使用 REST 服务调用。根本不使用 Facebook SDK。我目前能够在手机上启动浏览器,让用户登录并批准应用范围,并检索我的授权码。

但是,我终生无法将授权码换成访问令牌。

我的 Facebook 应用在“设置”-->“高级”下打开了以下开关:

  • 本机或桌面应用程序? [是]
  • 您的 App Secret 是否已嵌入? [否]
  • 客户端 OAuth 登录? [是]
  • 嵌入式浏览器 OAuth 登录? [是]

我应该注意,我的模型对用户进行身份验证并在手机上检索授权码,然后我将授权码传递给安全服务,在那里我将其交换为 access_token。虽然我遇到了问题,所以我暂时将此服务器调用移到我的手机应用程序中进行故障排除,但我得到了同样的错误。

我收到的错误是:

{"error":{"message":"验证码格式无效。","type":"OAuthException","code":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 最终包含上面报告的错误字符串,说明我的授权码是错误的。

有什么想法吗?

亲切的问候,

好棒

【问题讨论】:

  • Dah... 没关系,我正在设置授权码 .ToLower()。删除它,现在就像一个魅力......
  • 为了记录,我可以通过 Facebook 设置中的所有开关获取 access_token --> 高级关闭
  • 如果解决了,您应该将其作为答案发布,并接受它
  • 会的,该网站让我等了 8 个小时才回答我自己的问题。

标签: c# facebook facebook-graph-api oauth facebook-oauth


【解决方案1】:

Dah...没关系,我在将其交换为 access_token 之前设置了授权代码 .ToLower()。删除了它,现在就像一个魅力......

不过,为了记录,我可以通过 Facebook 设置中的所有开关获取 access_token --> 高级关闭

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多