Class: Sendgo::KakaoSenderService
- Inherits:
-
Object
- Object
- Sendgo::KakaoSenderService
- Defined in:
- lib/sendgo/management.rb
Overview
카카오 발신프로필(채널) 관리 — 등록 · 동기화 · 브랜드메시지 타겟팅 신청.
v2 전용이며 기업(Team) 소유 애플리케이션만 사용할 수 있다.
채널 등록은 두 단계다. 카카오가 인증번호를 채널 관리자 휴대폰으로 SMS
발송하므로 완전 무인 자동화는 불가능하다 — 사람이 문자를 받아
create 에 넣어야 한다.
Constant Summary collapse
- RESOURCE =
"kakao-senders"
Instance Method Summary collapse
-
#apply_brand_message_targeting(kakao_sender_key, target_type) ⇒ Object
브랜드메시지 +M+(마케팅) / +N+(정보성) 사용 신청.
-
#categories(category_code = nil) ⇒ Object
카테고리 조회.
-
#create(token:, yellow_id:, phone_number:, category_code:) ⇒ Object
2단계 — 발신프로필 등록.
-
#initialize(http:) ⇒ KakaoSenderService
constructor
A new instance of KakaoSenderService.
-
#list ⇒ Object
목록 조회.
-
#request_token(yellow_id, phone_number) ⇒ Object
1단계 — 채널 인증번호 발송.
-
#show(kakao_sender_key) ⇒ Object
상세 조회.
-
#sync(kakao_sender_key = nil) ⇒ Object
상태 동기화.
-
#upload_brand_message_evidence(kakao_sender_key, evidence) ⇒ Object
브랜드메시지 M 신청에 필요한 광고성 정보 수신동의 증적자료 업로드.
Constructor Details
#initialize(http:) ⇒ KakaoSenderService
Returns a new instance of KakaoSenderService.
31 32 33 |
# File 'lib/sendgo/management.rb', line 31 def initialize(http:) @http = http end |
Instance Method Details
#apply_brand_message_targeting(kakao_sender_key, target_type) ⇒ Object
브랜드메시지 +M+(마케팅) / +N+(정보성) 사용 신청.
결과는 즉시 확정되지 않는다. 발신프로필의 brandMessageStatus 로 확인한다.
94 95 96 97 98 99 |
# File 'lib/sendgo/management.rb', line 94 def (kakao_sender_key, target_type) @http.post( "#{RESOURCE}/#{CGI.escape(kakao_sender_key)}/brand-message/apply", { targetType: target_type } ) end |
#categories(category_code = nil) ⇒ Object
카테고리 조회. 등록 시 category_code 로 넣을 값이다.
66 67 68 |
# File 'lib/sendgo/management.rb', line 66 def categories(category_code = nil) @http.get("#{RESOURCE}/categories", { categoryCode: category_code }) end |
#create(token:, yellow_id:, phone_number:, category_code:) ⇒ Object
2단계 — 발신프로필 등록.
이미 등록된 채널을 다시 등록해도 오류가 아니다. 카카오가 같은 senderKey 를 돌려주고 서버가 기존 행을 갱신한다.
46 47 48 49 50 51 52 53 |
# File 'lib/sendgo/management.rb', line 46 def create(token:, yellow_id:, phone_number:, category_code:) @http.post(RESOURCE, { token: token, yellowId: yellow_id, phoneNumber: phone_number, categoryCode: category_code }) end |
#list ⇒ Object
목록 조회.
56 57 58 |
# File 'lib/sendgo/management.rb', line 56 def list @http.get(RESOURCE) end |
#request_token(yellow_id, phone_number) ⇒ Object
1단계 — 채널 인증번호 발송.
응답에 인증번호는 들어있지 않다. 카카오가 phone_number 로 SMS 를 보낸다.
38 39 40 |
# File 'lib/sendgo/management.rb', line 38 def request_token(yellow_id, phone_number) @http.post("#{RESOURCE}/token", { yellowId: yellow_id, phoneNumber: phone_number }) end |
#show(kakao_sender_key) ⇒ Object
상세 조회.
61 62 63 |
# File 'lib/sendgo/management.rb', line 61 def show(kakao_sender_key) @http.get("#{RESOURCE}/#{CGI.escape(kakao_sender_key)}") end |
#sync(kakao_sender_key = nil) ⇒ Object
상태 동기화. 키를 주면 단건, 없으면 팀 전체.
채널이 카카오 쪽에서 차단·휴면되면 발송이 조용히 실패하기 시작한다. 그 사실을 먼저 알 방법은 이 호출뿐이므로 하루 한 번 정도 돌리는 게 좋다.
74 75 76 77 |
# File 'lib/sendgo/management.rb', line 74 def sync(kakao_sender_key = nil) path = kakao_sender_key ? "#{RESOURCE}/#{CGI.escape(kakao_sender_key)}/sync" : "#{RESOURCE}/sync" @http.post(path, {}) end |
#upload_brand_message_evidence(kakao_sender_key, evidence) ⇒ Object
브랜드메시지 M 신청에 필요한 광고성 정보 수신동의 증적자료 업로드. jpg/png, 5MB 이하.
83 84 85 86 87 88 89 |
# File 'lib/sendgo/management.rb', line 83 def (kakao_sender_key, evidence) @http.post_multipart( "#{RESOURCE}/#{CGI.escape(kakao_sender_key)}/brand-message/evidence", {}, { evidence: evidence } ) end |