네이버카페 api 요청변수 게시글 공개 설정 전체 공개로 글쓰기

네이버카페 api로 글쓰기 방법은 네이버 디벨로퍼즈에 상세한 설명이 되어 있다. 백엔드로 자바, PHP, 파이썬, C#등의 언어를 통해 프로그램을 짜야한다. api호출 예제까지도 잘 정리가 되어 있어 간단히 따라며하면 쉽게 적용까지는 할 수있다. 허나 필자의 경우엔 문과 출신에 코딩에는 까막눈이라 따라하려고 해도 가이드가 없이는 쉽지 않다. 다행이도 프로그램을 짜는데 있어서 이미 많은이들의 손을 거쳐 잘 다듬어진 공개된 소스들이 많이 도움이 되었다. 하지만 그 주에서도 도무지 찾을 수 없는 부분이 있었다. 아무래도 너무 기초적인 부분이라 다른 코더들은 금방 이해할 부분이기에 상세한 설명이 없었던 듯하다. 허나 필자같이 까막눈에 일일이 검색에 의존해서 프로그램을 짜는 초보의 경우엔 기초가 부족해 늘 헤매기 마련이다.

네이버카페 api 요청변수 게시글 공개 설정 전체 공개로 글쓰기

네이버카페 api 글쓰기를 제작하면서 필자가 격었던 문제는 카페 글쓰기 변수를 지정하는 부분에서 어려움을 겪었다. 네이버 카페에 api 글쓰기를 통해 글을 쓰면 공개설정에서 맴버공개가 디볼트 값이다. 이 값을 전체 공개로 바꾸고 싶었다. 해당 변수 요청값은 이미 네이버 디벨로퍼즈에 공개되어 있었다. 이걸 잘 가공해서 코드 내에 입력만 하면 해결되는 문제다. 그런데 어떻게 가공해야 하는지 그리고 어디에 이 값을 넣어야 하는지 도무지 까막눈이라 해멜 수 밖에 없었다.무식하게 이곳저곳에 넣어보다가 몇시간을 고생한 끝에 마침내 성공했다. 누군가는 들으면 피식하고 웃을 일인지도 모른다. 허나 필자와 같이 까막눈 초보 코더를 위해 이 곳에 공유한다. 이 글은 파이썬을 기준으로 한다.


게시글 공개 설정 변수 값은 openyn이고 boolean 즉, true/false 형식의 변수다. 기본값이 false이기 때문에 값을 true로 지정해서 파라미터에 입력해 주면 api 게시글이 전체 공개로 발행이 된다. 

 

# 네이버 카페 Open API 예제 - 글쓰기
import os
import sys
import urllib.request
token = "YOUR_ACCESS_TOKEN"
header = "Bearer " + token # Bearer 다음에 공백 추가
clubid = "CLUB_ID" # 카페의 고유 ID값
menuid = "MENU_ID" # (상품게시판은 입력 불가)
url = "https://openapi.naver.com/v1/cafe/" + clubid + "/menu/" + menuid + "/articles"
subject = urllib.parse.quote("[subject] 네이버 Cafe api Test Python")
content = urllib.parse.quote("[content] 네이버 Cafe api Test Python")
data = "subject=" + subject + "&content=" + content
request = urllib.request.Request(url, data=data.encode("utf-8"))
request.add_header("Authorization", header)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)
    
## 출처 https://developers.naver.com/docs/cafe/api/ ##

위 코드 내용은 네이버 디벨로퍼에 소개된 예제이다. 이 코드 예제를 잘 가공하면 네이버 카페 api 글쓰기를 할 수 있다. 이 기본 베이스가 되는 코드에 위에서 확인한 게시글 공개 설정 변수값인 openyn의 값을 true로 지정해 주기만 하면 해결이 된다. 따로 변수를 지정해 입력해보기도 하고 requset내에 값으로 넣어보기도 하고 data에 넣어보기도 했다. 그런데 잘 되지 않았다. 정확한 위치와 입력 값을 어떻게 지정해야 되는지 모르는 상황에서 답답할 노릇이었다. 이 방법 저방법 시도한 끝에 data에 해당 값을 넣으면 정상 발행 되는 것을 확인했다. 아래와 같이 값을 넣어주면 공개설정에서 전체 공개가 된다.

# 네이버 카페 Open API 예제 - 글쓰기
import os
import sys
import urllib.request
token = "YOUR_ACCESS_TOKEN"
header = "Bearer " + token # Bearer 다음에 공백 추가
clubid = "CLUB_ID" # 카페의 고유 ID값
menuid = "MENU_ID" # (상품게시판은 입력 불가)
url = "https://openapi.naver.com/v1/cafe/" + clubid + "/menu/" + menuid + "/articles"
subject = urllib.parse.quote("[subject] 네이버 Cafe api Test Python")
content = urllib.parse.quote("[content] 네이버 Cafe api Test Python")
data = "subject=" + subject + "&content=" + content + "&openyn=" + "true" # "&openyn=" + "true" 게시글 전체 공개 // "&openyn=" + "true" 맴버공개시 삭제
request = urllib.request.Request(url, data=data.encode("utf-8"))
request.add_header("Authorization", header)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)

data 부분에 “&openyn=” + “true”가 추가된 것을 확인할 수 있다. 이 부분에 해당 값을 넣어주면 파라미터에 해당 값이 포함되 전송이 된다. 이 정도면 적어도 왠만한 이들은 다 이해할 수 있기에  상세한 설명은 생략하도록 하겠다.

 

[참고] 네이버 Developers 네이버 아이디로 로그인 카페 API 명세

블로그한경닷컴과 리프토한경닷컴은 IT기기 리뷰, 여행 후기, 맛집 멋집 탐방기와 주식 정보 및 관련 기사, 인기 검색 종목, 상하한가, 급등락 종목, 거래량 상위 종목, 시가총액 상위 종목 등 다양한 주식 정보를 제공하며, 자동차 보험, 운전자 보험, 생명 보험, 실손 의료비 보험, 태아 보험 등 여러 보험 정보도 다룹니다. 또한 정부 지원금, 보조금, 복지 혜택과 신용카드 신규 발급 혜택 및 추천 정보를 제공하는 양방향 블로그입니다. 다양한 정보를 나누며 소통하는 공간에서 여러분의 생활에 필요한 모든 정보를 한 곳에서 만나보세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다