IT

네이버카페 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 명세

Related Posts

사이트 주소에 WWW 포함 여부, 현대 웹사이트 주소의 트렌드와 선택 기준

사이트 주소에 WWW 포함 여부, 현대 웹사이트 주소의 트렌드와 선택 기준

웹사이트 도메인 주소에 “WWW”를 포함시키거나 포함시키지 않는 결정은 사용자 경험과 웹사이트 운영 측면에서 고려될 수 있는 전략이다. 최근의 트렌드는 기술적 중요성보다는 사용자의 편의성과 브랜드의 식별성을 중시하는 방향으로 나아가고…

SKT 다이렉트 플랜 요금제 결합할인 유의사항

SKT 다이렉트 플랜 요금제 결합할인 유의사항

통신비 부담을 줄이고 싶은데, 데이터 사용량은 줄이고 싶다. “SKT 통신비 다이어트, T 다이렉트 플랜”이 바로 그 해답을 제시한다. 조금만 잘 찾아보면 데이터 사용은 그대로 유지하면서 통신비는 줄일 수…

SKT 선택약정할인 할인반환금 휴대전화요금 25%할인 유의사항

SKT 선택약정할인 할인반환금 휴대전화요금 25%할인 유의사항

선택약정할인제도 선택약정할인제도는 단말 지원금을 받지 않는 고객에게 요금 할인 혜택을 제공하는 제도이다. 이 제도는 지급 단말, 중고 단말, 신규 단말 이용 고객 모두에게 적용되며, 요금 상품 선택과 12/24개월의…

도장만들기 전자서명 전자결재용 도장 이미지 무료 생성 로또번호자동생성기 추천사이트 STAMPNG

도장만들기 전자서명 전자결재용 도장 이미지 무료 생성 로또번호자동생성기 추천사이트 STAMPNG

취업, 이직 준비나 정부 지원금 신청 할 때, 문서 작업시 대부분 이름과 서명란이 있다. 매번 느끼지만 디지털과 아날로그의 경계에 있는 듯한 느낌이다. 서명란에 싸인이나 도장을 삽입하는 과정은 간단해…

GitHub 콘솔 git add, git commit, git push 명령어 정리

GitHub 콘솔(명령줄 인터페이스)에서 커밋하는 방법은 여러 단계로 구성된다. 여기서는 Git을 사용하여 변경사항을 커밋하고 GitHub 저장소에 푸시하는 기본적인 절차를 안내한다. 이 과정을 시작하기 전에, 로컬 컴퓨터에 Git이 설치되어 있어야…

알리익스프레스 Windows Hello 내돈내산 웹카메라 구매 후기 및 설치 드라이버

알리익스프레스 Windows Hello 카메라 내돈내산 후기 및 드라이버

필자가 가지고 있는 랩탑 레노버 씽크패드 P14S에서는 Windows Hello 기능이 지문과 얼굴인식으로 되어 전원을 켜거나 브라우저에서 로그인할 때, PIN번호를 누르지 않아도 지문 또는 얼굴인식으로 간단히 해결 할 수…

답글 남기기

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