สามารถดูเอกสารประกอบสำหรับ Twilio API ได้ที่นี่
บุคคลเผยแพร่ที่นี่
twilio-ruby
ใช้ Semantic Versioning เวอร์ชันดัดแปลงสำหรับการเปลี่ยนแปลงทั้งหมด ดูเอกสารนี้สำหรับรายละเอียด
ไลบรารีนี้รองรับการใช้งาน Ruby ต่อไปนี้:
รูบี้ 2.4
รูบี้ 2.5
รูบี้ 2.6
รูบี้ 2.7
รูบี้ 3.0
รูบี้ 3.1
รูบี้ 3.2
เจรูบี้ 9.2
เจรูบี้ 9.3
เจรูบี้ 9.4
คู่มือการอัพเกรด
หากต้องการติดตั้งโดยใช้ Bundler ให้คว้าเวอร์ชันเสถียรล่าสุด:
gem 'twilio-ruby' , '~> 7.3.6'
หากต้องการติดตั้ง twilio-ruby
ด้วยตนเองผ่าน Rubygems เพียงติดตั้ง gem:
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 ให้ระบุภูมิภาคเป้าหมายและ/หรือ Edge สำหรับไคลเอ็นต์:
# 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 ส่งคืนการตอบสนอง HTTP ระดับ 400 หรือ 500 ไลบรารี twilio-ruby
จะส่ง Twilio::REST::RestError
ข้อผิดพลาดระดับ 400 ถือเป็นเรื่องปกติในระหว่างการทำงานของ API ( “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
หากคุณต้องการสร้าง Capability Token เพื่อใช้กับ Twilio Client คุณสามารถทำได้:
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
ที่มีอยู่ในที่เก็บนี้และอิมเมจ Docker twilio/twilio-ruby
ตามลำดับนั้นถูกใช้โดย Twilio เพื่อการทดสอบเท่านั้น
หากคุณต้องการความช่วยเหลือในการติดตั้งหรือใช้งานไลบรารี โปรดตรวจสอบศูนย์ช่วยเหลือ Twilio Support ก่อน และยื่นตั๋วสนับสนุนหากคุณไม่พบคำตอบสำหรับคำถามของคุณ
หากคุณพบจุดบกพร่องในไลบรารีแทนหรือต้องการเพิ่มคุณสมบัติใหม่ ให้ดำเนินการต่อและเปิดปัญหาหรือดึงคำขอจาก repo นี้!