Module: Sendgo

Defined in:
lib/sendgo.rb,
lib/sendgo/sms.rb,
lib/sendgo/error.rb,
lib/sendgo/client.rb,
lib/sendgo/version.rb,
lib/sendgo/alimtalk.rb,
lib/sendgo/short_url.rb,
lib/sendgo/friendtalk.rb,
lib/sendgo/management.rb,
lib/sendgo/management.rb,
lib/sendgo/http_client.rb,
lib/sendgo/brand_message.rb,
lib/sendgo/token_manager.rb

Overview

Sendgo Ruby SDK — 카카오 알림톡/친구톡, SMS/LMS/MMS

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"
)

client.alimtalk.send(
  template_code: "ORDER_CONFIRM_001",
  contacts: [{ contact: "01012345678", var1: "ORD-001" }]
)

Defined Under Namespace

Classes: AlimtalkService, BrandMessageService, BrandTemplateService, Client, FriendtalkService, HttpClient, KakaoImageService, KakaoSenderService, MessageTemplateService, NoticeTemplateService, RejectedNumberService, SenderRegistrationService, SendgoError, ShortUrlService, SmsService, TokenManager, WebhookService

Constant Summary collapse

VERSION =
"1.3.0"
KEEP_AS_IS_KEYS =

Ruby 쪽 인자는 snake_case, Sendgo API 는 camelCase 다. 서비스마다 매핑을 손으로 적으면 필드가 늘 때마다 빠뜨리는 곳이 생기므로 한 곳에서 변환한다.

additional_content 는 서버가 그대로 받으므로 예외로 둔다.

%w[additional_content].freeze
NO_REFRESH_CODES =
%w[
  INVALID_AUTH_HEADER INVALID_BASIC_AUTH INVALID_BASIC_AUTH_PAYLOAD
  INVALID_ACCESS_KEY INVALID_SECRET_KEY ACCESS_KEY_NOT_APPROVED
  TEAM_REQUIRED_FOR_KAKAO IP_NOT_ALLOWED INVALID_SENDER_KEY INVALID_KAKAO_SENDER_KEY
].freeze
TOKEN_TTL =

50분 (초)

50 * 60

Class Method Summary collapse

Class Method Details

.camelize_keys(hash) ⇒ Object



432
433
434
435
436
437
438
439
440
441
442
443
444
445
# File 'lib/sendgo/management.rb', line 432

def self.camelize_keys(hash)
  hash.each_with_object({}) do |(key, value), result|
    name = key.to_s
    camel =
      if KEEP_AS_IS_KEYS.include?(name) || !name.include?("_")
        name
      else
        head, *rest = name.split("_")
        head + rest.map(&:capitalize).join
      end

    result[camel.to_sym] = value
  end
end