반응형

왠 갑자기 sns중의 하나인 라인이 나오냐 싶겠지만...

저번달에 한 종목이 "한정"을 받고 관리종목 지정없이 바로 거래정지가 되면서

자동매매를 할 경우에 나는 거래정지가 된줄도 모르고 대처를 못할 것 같아.

거래정지가 되면 알림이 오도록 하는 기능이 필요했다.

키움 HTS 상에서는 이러한 알림이 오는 것이 불가능하다는 사실을 확인했고

메신저 API를 통해 이러한 기능을 구현하기로 했다.

우선 처음으로 생각한것은 카카오톡 API였지만 C#에서 구현하기 힘들다는 판단을 내렸고

두번째로 생각한것은 네이버의 라인인데 카톡API보다 훨씬 쉽게 이용할 수 있었다.

이런 점을 보면 역시 네이버가 대기업인 듯.

 

암튼 잡설은 치우고 구현하는 방법을 설명하겠다.

https://notify-bot.line.me/my/

 

LINE

닫기 계정 정보는 라인앱내 "설정 > 계정" 에서 확인할 수 있습니다.

access.line.me

우선 위 사이트로 들어가서 로그인을 하고(가입은 알아서)

generate token 을 누르고 토큰을 생성한다.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            lineNotify(textBox1.Text.ToString());
        }

        private void lineNotify(string msg)
        {
            string token = "생성한 토큰";
            try
            {
                var request = (HttpWebRequest)WebRequest.Create("https://notify-api.line.me/api/notify");
                var postData = string.Format("message={0}", msg);
                var data = Encoding.UTF8.GetBytes(postData);

                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;
                request.Headers.Add("Authorization", "Bearer " + token);

                using (var stream = request.GetRequestStream()) stream.Write(data, 0, data.Length);
                var response = (HttpWebResponse)request.GetResponse();
                var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

 

코드는 위와 같고 생성한 토큰 부분을 바꿔준다.

그리고 textbox1와 button1 을 만들어 주고 button1_Click() 와 연결시켜주면 끝.

이런식으로 내용을 적고 버튼을 누르면 알림이 온다.

간단!

나중에 활용할때는 lineNotify() 함수에 원하는 메시지만 전달해주면 된다

반응형

+ Recent posts