【问题标题】:Dwolla oauth access token in windows appWindows 应用程序中的 Dwolla oauth 访问令牌
【发布时间】:2013-04-20 04:21:28
【问题描述】:

我正在创建一个 Windows 8 Metro 应用程序,但在获取 oauth2 访问令牌时遇到了问题。我可以用这段代码得到临时代码就好了:

Uri requestUri = new Uri(string.Format(AUTH_URL + "?client_id={0}&response_type=code&scope={1}&client_secret={2}&redirect_uri={3}", CLIENT_ID, string.Join("|", scopeList.ToArray()), CLIENT_SECRET, WebAuthenticationBroker.GetCurrentApplicationCallbackUri().AbsoluteUri));
        WebAuthenticationResult result = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, requestUri);

但是当我尝试使用该代码获取永久访问令牌时,它要么给我一个内部服务器错误 (500) 要么超时。当我没有 redirect_uri 时,它给了我一个 500,所以我保留它。否则我的请求会超时而没有响应此代码:

private const string TOKEN_URL = "https://www.dwolla.com/oauth/v2/token";
Uri requestUri = new Uri(string.Format(TOKEN_URL + "?client_id={0}&client_secret={1}&grant_type={2}&code={3}&redirect_uri={4}", CLIENT_ID, CLIENT_SECRET, GRANT_TYPE, code, WebAuthenticationBroker.GetCurrentApplicationCallbackUri().AbsoluteUri)));
        WebAuthenticationResult result = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.SilentMode, requestUri);

我所有的字符串都被 uri 转义了。我只是不知道我做错了什么。

使用除了 WebAuthenticationOptions.SilentMode 选项之外的任何东西只会显示一个加载浏览器窗口

我也不能使用为 C# 制作的 OAuth 库,因为它们使用 .NetFramework 而 Windows 8 应用程序使用 .NetCore,这是一个精简版本。

任何帮助都会很棒

【问题讨论】:

    标签: c# microsoft-metro oauth-2.0 dwolla


    【解决方案1】:

    requestUri 在临时代码和重定向永久访问令牌之间看起来不同。它必须是完全相同的东西。

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 2015-01-03
      • 2015-02-25
      • 1970-01-01
      • 2011-05-26
      • 2014-02-23
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      相关资源
      最近更新 更多