Class: Sendgo::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/sendgo/client.rb

Overview

Sendgo Ruby SDK 메인 클라이언트.

Examples:

client = Sendgo::Client.new(
  access_key: ENV["SENDGO_ACCESS_KEY"],
  secret_key: ENV["SENDGO_SECRET_KEY"],
  kakao_sender_key: ENV["SENDGO_KAKAO_KEY"],
  sms_sender_key: ENV["SENDGO_SMS_KEY"],
  api_version: "v2"
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_key:, secret_key:, kakao_sender_key: nil, sms_sender_key: nil, api_version: "v1", base_url: "https://sendgo.io") ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/sendgo/client.rb', line 25

def initialize(access_key:, secret_key:, kakao_sender_key: nil, sms_sender_key: nil,
               api_version: "v1", base_url: "https://sendgo.io")
  raise ArgumentError, "access_key와 secret_key는 필수입니다" if access_key.nil? || secret_key.nil?

  token_manager = TokenManager.new(base_url: base_url, access_key: access_key,
                                   secret_key: secret_key, api_version: api_version)
  http = HttpClient.new(token_manager: token_manager, base_url: base_url, api_version: api_version)

  @alimtalk   = AlimtalkService.new(http: http, kakao_sender_key: kakao_sender_key, sms_sender_key: sms_sender_key)
  @friendtalk = FriendtalkService.new(http: http, kakao_sender_key: kakao_sender_key, sms_sender_key: sms_sender_key)
  @brand_message = BrandMessageService.new(http: http, kakao_sender_key: kakao_sender_key, sms_sender_key: sms_sender_key)
  # 짧은 URL — 링크 단축과 클릭 반응 분석. v2 전용.
  @short_url  = ShortUrlService.new(http: http)
  @sms        = SmsService.new(http: http, sms_sender_key: sms_sender_key)

  @kakao_senders       = KakaoSenderService.new(http: http)
  @notice_templates    = NoticeTemplateService.new(http: http)
  @brand_templates     = BrandTemplateService.new(http: http)
  @sender_registration = SenderRegistrationService.new(http: http)
  @message_templates   = MessageTemplateService.new(http: http)
  @kakao_images        = KakaoImageService.new(http: http)
  @rejected_numbers    = RejectedNumberService.new(http: http)
  @webhook             = WebhookService.new(http: http)
end

Instance Attribute Details

#alimtalkObject (readonly)

brand_message: 카카오 브랜드메시지 — 친구톡의 후속 채널. v2 전용. friendtalk: @deprecated 2025-12-31 종료. brand_message 를 사용하세요.



15
16
17
# File 'lib/sendgo/client.rb', line 15

def alimtalk
  @alimtalk
end

#brand_messageObject (readonly)

brand_message: 카카오 브랜드메시지 — 친구톡의 후속 채널. v2 전용. friendtalk: @deprecated 2025-12-31 종료. brand_message 를 사용하세요.



15
16
17
# File 'lib/sendgo/client.rb', line 15

def brand_message
  @brand_message
end

#brand_templatesObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def brand_templates
  @brand_templates
end

#friendtalkObject (readonly)

brand_message: 카카오 브랜드메시지 — 친구톡의 후속 채널. v2 전용. friendtalk: @deprecated 2025-12-31 종료. brand_message 를 사용하세요.



15
16
17
# File 'lib/sendgo/client.rb', line 15

def friendtalk
  @friendtalk
end

#kakao_imagesObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def kakao_images
  @kakao_images
end

#kakao_sendersObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def kakao_senders
  @kakao_senders
end

#message_templatesObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def message_templates
  @message_templates
end

#notice_templatesObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def notice_templates
  @notice_templates
end

#rejected_numbersObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def rejected_numbers
  @rejected_numbers
end

#sender_registrationObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def sender_registration
  @sender_registration
end

#short_urlObject (readonly)

brand_message: 카카오 브랜드메시지 — 친구톡의 후속 채널. v2 전용. friendtalk: @deprecated 2025-12-31 종료. brand_message 를 사용하세요.



15
16
17
# File 'lib/sendgo/client.rb', line 15

def short_url
  @short_url
end

#smsObject (readonly)

brand_message: 카카오 브랜드메시지 — 친구톡의 후속 채널. v2 전용. friendtalk: @deprecated 2025-12-31 종료. brand_message 를 사용하세요.



15
16
17
# File 'lib/sendgo/client.rb', line 15

def sms
  @sms
end

#webhookObject (readonly)

관리 API (v2 전용) — 콘솔에서만 되던 등록·심사. 발송과 달리 대부분 즉시 완료되지 않는다 — 등록 성공은 "접수됨"이지 "사용 가능"이 아니다. 카카오 채널 등록의 인증번호와 휴대폰 발신번호의 본인인증은 사람이 개입해야 하므로 API 로 대체되지 않는다.



21
22
23
# File 'lib/sendgo/client.rb', line 21

def webhook
  @webhook
end