Beispiel #1
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("API Key を入力してください:");
            var key = Console.ReadLine().Trim();

            Console.WriteLine("API Secret を入力してください:");
            var secret = Console.ReadLine().Trim();

            Hr();

            Console.WriteLine($"Key:Secret = {key}:{secret}");

            Hr();

            Console.WriteLine("API呼び出しを開始します");

            Hr();

            using (var hc = new HttpClient())
            {
                var path = "/v1/me/getpermissions";
                var req  = new HttpRequestMessage(HttpMethod.Get, $"https://api.bitflyer.com{path}");

                var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
                var content   = timestamp + req.Method + path;
                var hash      = new HMACSHA256(Encoding.UTF8.GetBytes(secret)).ComputeHash(Encoding.UTF8.GetBytes(content));

                req.Headers.TryAddWithoutValidation("ACCESS-KEY", key);
                req.Headers.TryAddWithoutValidation("ACCESS-TIMESTAMP", timestamp);
                req.Headers.TryAddWithoutValidation("ACCESS-SIGN", hash.ToHexString());

                var res = await hc.SendAsync(req).ConfigureAwait(false);

                var json = await res.Content.ReadAsStringAsync();

                Console.WriteLine("HTTP Status code:");
                Console.WriteLine(res.StatusCode);
                Console.WriteLine("Response body:");
                Console.WriteLine(json);
            }

            Hr();

            Console.WriteLine("API呼び出しを完了しました");

            Hr();

            Console.WriteLine("Enter(CR) を打鍵で終了します");
            Console.ReadLine();
        }