본문 바로가기
다양한 실전소스코드/WINFORM(C#)

Tstory API로 블로그 글 쓰기 전 과정 C# (23년 8월)

by aibattle 2023. 8. 10.
728x90
반응형

Button을 클릭하면 Test 게시물을 쓰는 코드와 과정에 대한 설명입니다.

완성코드부터 과정을 거꾸로 설명을 드리겠습니다.

혹시 이해안되거나 상세설명필요시 댓글주세요

<요약>

제공된 코드를 써서 버튼을 누르면 내 블로그에 글이 게시됨

엑세스토큰문자열이 있어야 가능한데,

엑세스토큰을 얻기위해서는 인증코드가 필요하고

인증코드를 얻기 위해서는 앱ID가 필요하며

앱ID를 얻기위해서는 임의이 제목과 원하는 내 블로그주소만 있으면됩니다.

순서대로 앱ID생성(시크릿키 포함) → 인증코드 얻기  → 엑세스토큰 얻기 → 앱에 적용/사용

 

 

c# winform 기본에 대한 지식은 생략합니다.

VisualStudio2022 (무료버전)을 저는 사용했지만 .net c# 어떤것에서도 가능합니다.

아래는 winform에 버튼하나 추가하고,  글쓰기 함수를 적용한 최조코드 이니

엑세스 토큰이 있으시면 바로 하시면 됩니다

 

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

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

        private void button1_Click(object sender, EventArgs e)
        {
            WritePost("TEST", "  Hello Tstory!!!  ");
        }
        public static string AccessToken = "웹브라우저F12에서 확인한 엑세스토큰 ";
                                                                 // 여기에 사용자의 실제 액세스 토큰을 넣으세요.
        public static string OutputType = "json"; // 또는 "xml"
        public static string BlogName = "lift";
        public static string RedirectUri = "https://lift.tistory.com/"; // Callback URL

        public void WritePost(string title, string content)
        {
            // 글 작성 주소
            string writeUrl = $"https://www.tistory.com/apis/post/write";

            using (HttpClient client = new HttpClient())
            {
                var values = new Dictionary<string, string>
        {
            { "access_token", AccessToken },
            { "blogName", BlogName },
            { "title", title },
            { "content", content },
            { "visibility", "0" } // 0: 비공개, 1: 보호, 3: 발행
        };

                var postContent = new FormUrlEncodedContent(values);

                var response = client.PostAsync(writeUrl, postContent).Result;
                var responseString = response.Content.ReadAsStringAsync().Result;

                // 응답 처리
            }
        }

    }
}

 

 

우선 코드 설명입니다

    private void button1_Click(object sender, EventArgs e)
        {
            WritePost("TEST", "GsgsGSGsg");
        }

버튼을 클릭하면 WritePost에 제목과 내용을 파라미로 넘기면서 글이 게시됩니다.

 

위의 전체코드에서 수정하셔야할것은 3줄

 public static string AccessToken = "웹브라우저F12에서 "; // 여기에 사용자의 실제 액세스 토큰을 넣으세요.
        public static string BlogName = "lift";
        public static string RedirectUri = "https://lift.tistory.com/"; // Callback URL

이 3개 줄이고,  토큰받는법은 바로 이어 설명드릴것이며,

BLogName이라고 되있는것은 임의로 하시면되고

RedirectUri는 자신의 티스토리 주소(토큰을 받을때 입력했던것) 를 입력하세요 

 

 

엑세스토큰 얻는법(절차따라하면 3~5분)

엑세스 토큰을 얻으려면  아래의 내용에 본인의 값을 그대로 넣어서 통째로 복사후 

(인증코드가 없으시면 조금더 아래에서 설명을 보세요)

https://www.tistory.com/oauth/access_token?client_id=앱아이디&client_secret=시크릿키&redirect_uri=내블로그주소&code=인증코드&grant_type=authorization_code 

 

 웹브라우저 F12를 눌러서 개발자모드를 켠상태에서 주소줄에 입력하면 네트워크 탭에 응답에

AccessToken= 이라고 나옵니다. 아래이미지가 아니라 녹색으로 나옴.

만약안되면 인증코드를 얻는 과정부터 다시 반복해서 해보시면 100% 됩니다.

 

 

인증코드를 받기 위해서는 앱ID가 있어야하는데

 

아래에 접속하셔서 

 

OpenAPI - TISTORY

 

Tistory

좀 아는 블로거들의 유용한 이야기

www.tistory.com

 

 

아래처럼 임의로 입력해주시고 주소만 본인걸로 정확히

(언제든수정가능)

 

등록해서 나오는값 2개다 토큰발행에 쓰이니 메모장에 카피해두세요

 

앱ID와 시크릿키 중에 앱ID를 가지고

만든 아래 주소를 웹브라우저에 치시면 허기하기 버튼이 있는데 

https://www.tistory.com/oauth/authorize?client_id=앱아이디&redirect_uri=내블로그주소&response_type=code&state=아무영문자

저 허가하기를 누르면

주소표시줄에 아래와 같이 인증코드칸에 긴문자열이있는데 그걸 복사해서 

사용하시면됩니다.

 

SwiftAI

I will give you many knowhow~ using c#, python, sql, java,vba with .. winform wpf blazor , mssql mysql, flask, react, ubuntu, android, unity mobile, utube, etc...

lift.tistory.com

Tstory에서 제공하는 사용법 설명페이지

Authorization Code 방식 · GitBook (tistory.github.io)

728x90
반응형

댓글