0

Windows 8 メトロ アプリを作成していますが、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 ライブラリは使用できません。これは、Windows 8 アプリが縮小バージョンの .NetCore を使用しているのに対し、.NetFramework を使用しているためです。

どんな助けでも素晴らしいでしょう

4

1 に答える 1