用Ruby Call 语音验证码服务
云通讯没有Ruby的API事例,因为业务需要编写一个,共享给大家。有问题可以讨论。
这里主要以语音验证码服务为事例
首先,注册和创建应用,获得应用ID "app_id",和帐号ID “account_sid”,和授权令牌 “auth_token"。
to 参数是测试的手机号,需要在应用中进行验证。
主要完成俩部分工作,
1、统一请求包头认证
2、接口的调用
填写正确app_id 、account_sid 、auth_token、to 即可完成调用。过程中有些小插曲,ruby 的base64位编码有用折行的情况,http header要求不能折行,云通讯的接口也是取的不能折行的数据。所以base64后需要对数据做一些处理,即
或者也也可以使用ruby中不折行的base64的编码方法,这个大家可以查一下google。下面是完整的代码事例。供参考,可以结合业务进行更改
这里主要以语音验证码服务为事例
首先,注册和创建应用,获得应用ID "app_id",和帐号ID “account_sid”,和授权令牌 “auth_token"。
to 参数是测试的手机号,需要在应用中进行验证。
主要完成俩部分工作,
1、统一请求包头认证
2、接口的调用
填写正确app_id 、account_sid 、auth_token、to 即可完成调用。过程中有些小插曲,ruby 的base64位编码有用折行的情况,http header要求不能折行,云通讯的接口也是取的不能折行的数据。所以base64后需要对数据做一些处理,即
@authorization.gsub!("\n", '')或者也也可以使用ruby中不折行的base64的编码方法,这个大家可以查一下google。下面是完整的代码事例。供参考,可以结合业务进行更改
require 'rubygems'
require 'net/http'
require 'net/https'
require 'base64'
require 'md5'
require 'rubygems'
require 'json'
# @host = 'sandboxapp.cloopen.com'
# @port = '8883'
@app_id = ""
@account_sid = ""
@auth_token = ""@to = ""
@time = Time.now.strftime('%Y%m%d%H%M%S')
puts @time
@authorization = Base64.encode64("#{@account_sid}:#{@time.to_s}")
@authorization.gsub!("\n", '')
# puts @authorization
# puts @authorization
# puts Base64.decode64(@authorization)
@sig_parameter = MD5.hexdigest("#{@account_sid}#{@auth_token}#{@time.to_s}").upcase
@post_ws = "/2013-12-26/Accounts/#{@account_sid}/Calls/VoiceVerify?sig=#{@sig_parameter}"
@url = URI.parse("https://sandboxapp.cloopen.com:8883")
@http=Net::HTTP.new(@url.host, @url.port)
@http.use_ssl = true if @url.scheme == 'https'
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@payload ={
"appId" => "#{@app_id}",
"verifyCode" => "1a8d9u",
"playTimes" => "2",
"to"=>"#{@to}"
}.to_json
# def post
req = Net::HTTP::Post.new(@post_ws, initheader = {
"Content-Type" => "application/json;charset=utf-8",
"Accept" => "application/json",
'Authorization' => @authorization
})
# req.basic_auth @user, @pass
req.body = @payload
response = @http.start {|http| http.request(req) }
puts "Response #{response.code} #{response.message}:#{response.body}"
# end
...全文
相关推荐
neospeech:Neospeech 文本到语音 REST Web 服务的 Ruby 包装器
该项目是一个Ruby语言编写的Neospeech文本转语音REST API的客户端封装,支持通过简单方法调用实现文字转语音功能。核心功能包括配置认证信息、扩展String类的speak方法、提交TTS
Ruby-pocketsphinxruby利用Pocketsphinx实现Ruby语音识别
Ruby-pocketsphinxruby是Ruby开发者用来集成Pocketsphinx的一个库,它使得在Ruby环境中实现语音识别成为可能。
isabella, 在 ruby 中,构建了语音计算助手.zip
Isabella是一个基于Ruby开发的本地化语音计算助手,利用Pocketsphinx实现实时语音识别。项目通过JSGF语法和YAML命令配置定义可识别指令,并结合正则匹配触发对应脚本执行,如讲笑话
Ruby-Termit在你的终端利用语音合成翻译
总的来说,Ruby-Termit是一个结合了Ruby编程、Google Translate API、国际化处理和语音合成技术的创新工具。
ivona_speech_cloud:Ivona语音云Ruby客户端
Ivona语音云Amazon的语音合成服务(Ivona语音云)的Ruby客户端。 请参阅: : 语音云文档: : 安装将此行添加到您的应用程序的Gemfile中: gem 'ivona_spe


OpenAPI
