Dokumentasi untuk Twilio API dapat ditemukan di sini.
Rilis individu di sini.
twilio-ruby
menggunakan versi Semantic Versioning yang dimodifikasi untuk semua perubahan. Lihat dokumen ini untuk detailnya.
Pustaka ini mendukung implementasi Ruby berikut:
rubi 2.4
rubi 2.5
rubi 2.6
rubi 2.7
rubi 3.0
rubi 3.1
rubi 3.2
JRuby 9.2
JRuby 9.3
JRuby 9.4
Panduan Peningkatan
Untuk menginstal menggunakan Bundler, ambil versi stabil terbaru:
gem 'twilio-ruby' , '~> 7.3.6'
Untuk menginstal twilio-ruby
secara manual melalui Rubygems, cukup gem install:
gem install twilio-ruby -v 7.3.6
Untuk membangun dan menginstal sendiri cabang pengembangan dari sumber terbaru:
git clone [email protected]:twilio/twilio-ruby.git
cd twilio-ruby
make install
Info Jika baris perintah memberi Anda pesan kesalahan yang mengatakan Izin Ditolak, coba jalankan perintah di atas dengan sudo.
Misalnya:
sudo gem install twilio-ruby
Untuk memastikan instalasi berhasil, coba kirimkan pesan SMS kepada diri Anda sendiri, seperti ini:
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
Peringatan Tidak apa-apa untuk melakukan hardcode pada kredensial Anda saat menguji secara lokal, namun Anda harus menggunakan variabel lingkungan untuk merahasiakannya sebelum melakukan kode apa pun atau menerapkannya ke produksi. Lihat Cara Mengatur Variabel Lingkungan untuk informasi lebih lanjut.
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
Untuk memanfaatkan Infrastruktur Global Twilio, tentukan Wilayah dan/atau Edge target untuk klien:
# 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'
Ini akan mengakibatkan perubahan hostname
dari api.twilio.com
menjadi 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
Perpustakaan secara otomatis menangani paging untuk Anda. Koleksi, seperti calls
dan messages
, memiliki metode list
dan aliran di halaman tersebut. Dengan list
dan stream
, Anda dapat menentukan jumlah rekaman yang ingin Anda terima ( limit
) dan ukuran maksimum yang Anda inginkan untuk setiap pengambilan halaman ( page_size
). Perpustakaan kemudian akan menangani tugas tersebut untuk Anda.
list
dengan bersemangat mengambil semua catatan dan mengembalikannya sebagai daftar, sedangkan stream
mengembalikan enumerator dan dengan malas mengambil halaman catatan saat Anda mengulangi koleksi. Anda juga dapat membuat halaman secara manual menggunakan metode page
.
Untuk informasi selengkapnya tentang metode ini, lihat dokumen perpustakaan yang dibuat secara otomatis.
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
Untuk mengaktifkan debug logging, teruskan instance 'logger' ke klien dengan level yang disetel ke setidaknya '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
Jika Twilio API mengembalikan respons HTTP tingkat 400 atau 500, pustaka twilio-ruby
akan memunculkan Twilio::REST::RestError
. Kesalahan tingkat 400 adalah normal selama pengoperasian API (misalnya “Invalid number”
, “Cannot deliver SMS to that number”
) dan harus ditangani dengan tepat.
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
Untuk membantu proses debug, pustaka memungkinkan Anda mengakses objek permintaan dan respons yang mendasarinya. Kemampuan ini dibangun ke dalam klien HTTP default yang dikirimkan bersama perpustakaan.
Misalnya, Anda dapat mengambil kode status dari respons terakhir seperti:
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
menggunakan Faraday untuk membuat permintaan HTTP. Anda dapat memberi tahu Twilio::REST::Client
untuk menggunakan adaptor Faraday mana pun seperti:
@client . http_client . adapter = :typhoeus
Untuk menggunakan klien HTTP khusus dengan pustaka pembantu ini, silakan lihat contoh lanjutan tentang cara melakukannya.
Untuk menerapkan penyesuaian seperti middleware, Anda dapat menggunakan metode configure_connection
seperti:
@client . http_client . configure_connection do | faraday |
faraday . use SomeMiddleware
end
Jika Anda hanya perlu membuat Token Kemampuan untuk digunakan dengan Twilio Client, Anda dapat melakukan ini:
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
Ada dokumen yang sedikit lebih rinci di bagian Kemampuan di wiki.
Untuk mengontrol panggilan telepon, aplikasi Anda perlu mengeluarkan TwiML.
Anda dapat membuat respons TwiML seperti ini:
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
Ini akan mencetak yang berikut ini (kecuali spasi):
xml version = " 1.0 " encoding = " UTF-8 " ?>
< Response >
< Say voice = " alice " >hello there Say >
< Dial callerId = " +14159992222 " >
< Client >jenny Client >
Dial >
Response >
Dockerfile
yang ada di repositori ini dan masing-masing image Docker twilio/twilio-ruby
saat ini digunakan oleh Twilio untuk tujuan pengujian saja.
Jika Anda memerlukan bantuan untuk menginstal atau menggunakan perpustakaan, silakan periksa Pusat Bantuan Dukungan Twilio terlebih dahulu, dan ajukan tiket dukungan jika Anda tidak menemukan jawaban atas pertanyaan Anda.
Jika Anda malah menemukan bug di perpustakaan atau ingin fitur baru ditambahkan, lanjutkan dan buka terbitan atau tarik permintaan terhadap repo ini!