Twilio API에 대한 설명서는 여기에서 찾을 수 있습니다.
개별 발매는 여기에서.
twilio-ruby
모든 변경 사항에 대해 수정된 의미 체계 버전 관리 버전을 사용합니다. 자세한 내용은 이 문서를 참조하세요.
이 라이브러리는 다음 Ruby 구현을 지원합니다.
루비 2.4
루비 2.5
루비 2.6
루비 2.7
루비 3.0
루비 3.1
루비 3.2
JRuby 9.2
JRuby 9.3
JRuby 9.4
업그레이드 가이드
Bundler를 사용하여 설치하려면 최신 안정 버전을 다운로드하세요.
gem 'twilio-ruby' , '~> 7.3.6'
Rubygems를 통해 twilio-ruby
수동으로 설치하려면 gem install만 하면 됩니다.
gem install twilio-ruby -v 7.3.6
최신 소스에서 직접 개발 브랜치를 빌드하고 설치하려면 다음 안내를 따르세요.
git clone [email protected]:twilio/twilio-ruby.git
cd twilio-ruby
make install
정보 명령줄에 Permission Denied라는 오류 메시지가 표시되면 sudo를 사용하여 위 명령을 실행해 보세요.
예:
sudo gem install twilio-ruby
성공적으로 설치되었는지 확인하려면 다음과 같이 자신에게 SMS 메시지를 보내보세요.
require "twilio-ruby"
# Your Account SID and Auth Token from console.twilio.com
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
@client = Twilio :: REST :: Client . new account_sid , auth_token
message = @client . messages . create (
body : "Hello from Ruby" ,
to : "+12345678901" , # Text this number
from : "+15005550006" , # From a valid Twilio number
)
puts message . sid
경고 로컬로 테스트할 때 자격 증명을 하드코딩하는 것은 괜찮지만 코드를 커밋하거나 프로덕션에 배포하기 전에 환경 변수를 사용하여 자격 증명을 비밀로 유지해야 합니다. 자세한 내용은 환경 변수 설정 방법을 확인하세요.
require 'twilio-ruby'
# Your Account SID and Auth Token from console.twilio.com
account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
# Initialize the Twilio Client with your credentials
@client = Twilio :: REST :: Client . new account_sid , auth_token
require 'twilio-ruby'
# Your Account SID from console.twilio.com
account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# API Key from twilio.com/console/project/api-keys
api_key_sid = 'zzzzzzzzzzzzzzzzzzzzzz'
api_key_secret = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
# set up a client to talk to the Twilio REST API using an API Key
@client = Twilio :: REST :: Client . new api_key_sid , api_key_secret , account_sid
Twilio의 글로벌 인프라를 활용하려면 클라이언트의 대상 지역 및/또는 엣지를 지정하세요.
# set up a client to talk to the Twilio REST API over a specific region and edge
@client = Twilio :: REST :: Client . new account_sid , auth_token , nil , 'au1'
@client . edge = 'sydney'
# you may also specify the region and/or edge after client creation
@client = Twilio :: REST :: Client . new account_sid , auth_token
@client . region = 'au1'
@client . edge = 'sydney'
그러면 hostname
api.twilio.com
에서 api.sydney.au1.twilio.com
으로 변환됩니다.
@client . calls . create (
from : '+14159341234' ,
to : '+16105557069' ,
url : 'http://example.com'
)
@client . messages . create (
from : '+14159341234' ,
to : '+16105557069' ,
body : 'Hey there!'
)
@client . messages . list ( limit : 20 )
# put the message sid you want to retrieve here:
message_sid = 'SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@client . messages ( message_sid ) . fetch
라이브러리가 자동으로 페이징을 처리합니다. calls
및 messages
와 같은 컬렉션에는 내부적으로 페이징되는 list
및 스트림 메서드가 있습니다. list
와 stream
모두 사용하면 수신하려는 레코드 수( limit
)와 각 페이지를 가져올 때 원하는 최대 크기( page_size
)를 지정할 수 있습니다. 그러면 라이브러리가 당신을 위해 작업을 처리할 것입니다.
list
모든 레코드를 열심히 가져와 목록으로 반환하는 반면, stream
열거자를 반환하고 컬렉션을 반복할 때 레코드 페이지를 느리게 검색합니다. page
메소드를 사용하여 수동으로 페이징할 수도 있습니다.
이러한 방법에 대한 자세한 내용은 자동 생성 라이브러리 문서를 참조하세요.
require 'twilio-ruby'
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
auth_token = 'your_auth_token'
@client = Twilio :: REST :: Client . new ( account_sid , auth_token )
@client . calls . list
. each do | call |
puts call . direction
end
디버그 로깅을 활성화하려면 'DEBUG' 이상으로 설정된 수준을 사용하여 '로거' 인스턴스를 클라이언트에 전달하세요.
@client = Twilio :: REST :: Client . new account_sid , auth_token
myLogger = Logger . new ( STDOUT )
myLogger . level = Logger :: DEBUG
@client . logger = myLogger
@client = Twilio :: REST :: Client . new account_sid , auth_token
myLogger = Logger . new ( 'my_log.log' )
myLogger . level = Logger :: DEBUG
@client . logger = myLogger
Twilio API가 400 또는 500 수준 HTTP 응답을 반환하는 경우 twilio-ruby
라이브러리는 Twilio::REST::RestError
발생시킵니다. API 작업 중 400 수준 오류(예: “Invalid number”
, “Cannot deliver SMS to that number”
)는 정상적인 현상이므로 적절하게 처리해야 합니다.
require 'twilio-ruby'
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
auth_token = 'your_auth_token'
@client = Twilio :: REST :: Client . new account_sid , auth_token
begin
messages = @client . messages . list ( limit : 20 )
rescue Twilio :: REST :: RestError => e
puts e . message
end
디버깅을 돕기 위해 라이브러리를 사용하면 기본 요청 및 응답 개체에 액세스할 수 있습니다. 이 기능은 라이브러리와 함께 제공되는 기본 HTTP 클라이언트에 내장되어 있습니다.
예를 들어 다음과 같이 마지막 응답의 상태 코드를 검색할 수 있습니다.
require 'rubygems' # Not necessary with ruby 1.9 but included for completeness
require 'twilio-ruby'
# Your Account SID and Auth Token from console.twilio.com
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
auth_token = 'your_auth_token'
@client = Twilio :: REST :: Client . new ( account_sid , auth_token )
@message = @client . messages . create (
to : '+14158675309' ,
from : '+14258675310' ,
body : 'Ahoy!'
)
# Retrieve the status code of the last response from the HTTP client
puts @client . http_client . last_response . status_code
twilio-ruby
Faraday를 사용하여 HTTP 요청을 만듭니다. Twilio::REST::Client
다음과 같이 패러데이 어댑터를 사용하도록 지시할 수 있습니다.
@client . http_client . adapter = :typhoeus
이 도우미 라이브러리와 함께 사용자 정의 HTTP 클라이언트를 사용하려면 이를 수행하는 방법에 대한 고급 예제를 참조하세요.
미들웨어와 같은 사용자 정의를 적용하려면 다음과 같이 configure_connection
메소드를 사용할 수 있습니다.
@client . http_client . configure_connection do | faraday |
faraday . use SomeMiddleware
end
Twilio 클라이언트와 함께 사용할 기능 토큰을 생성해야 하는 경우 다음을 수행할 수 있습니다.
require 'twilio-ruby'
# put your own account credentials here:
account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
# set up
capability = Twilio :: JWT :: ClientCapability . new account_sid , auth_token
# allow outgoing calls to an application
outgoing_scope = Twilio :: JWT :: ClientCapability :: OutgoingClientScope . new 'AP11111111111111111111111111111111'
capability . add_scope ( outgoing_scope )
# allow incoming calls to 'andrew'
incoming_scope = Twilio :: JWT :: ClientCapability :: IncomingClientScope . new 'andrew'
capability . add_scope ( incoming_scope )
# generate the token string
@token = capability . to_s
위키의 기능 섹션에 좀 더 자세한 문서가 있습니다.
전화 통화를 제어하려면 애플리케이션에서 TwiML을 출력해야 합니다.
다음과 같이 TwiML 응답을 구성할 수 있습니다.
require 'twilio-ruby'
response = Twilio :: TwiML :: VoiceResponse . new do | r |
r . say ( message : 'hello there' , voice : 'alice' )
r . dial ( caller_id : '+14159992222' ) do | d |
d . client 'jenny'
end
end
# print the result
puts response . to_s
그러면 다음이 인쇄됩니다(공백 제외).
xml version = " 1.0 " encoding = " UTF-8 " ?>
< Response >
< Say voice = " alice " >hello there Say >
< Dial callerId = " +14159992222 " >
< Client >jenny Client >
Dial >
Response >
이 리포지토리에 있는 Dockerfile
과 해당 twilio/twilio-ruby
Docker 이미지는 현재 Twilio에서 테스트 목적으로만 사용됩니다.
라이브러리 설치 또는 사용에 도움이 필요한 경우 먼저 Twilio 지원 도움말 센터를 확인하고, 질문에 대한 답변을 찾지 못한 경우 지원 티켓을 제출하세요.
대신 라이브러리에서 버그를 발견했거나 새로운 기능을 추가하고 싶다면 계속해서 이 리포지토리에 대해 이슈를 열거나 요청을 가져오세요!