telesign 2.0.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/telesign/autoverify.rb +2 -2
- data/lib/telesign/messaging.rb +2 -2
- data/lib/telesign/rest.rb +17 -17
- data/lib/telesign/score.rb +1 -1
- data/lib/telesign/util.rb +3 -3
- metadata +72 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2469ff0545e1d6a18b42e08d748316be9ae2229
|
4
|
+
data.tar.gz: edba5fd4a806d74d05bc2056ca969d095911f1be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b061850acaacb000e4095979bf5c5f4eafa64386b019a412d7855cfa0e2ab0478c5d438f27ce7023507c51b9621f710ec41a6832e7dc8a6aaf947b7c8066d054
|
7
|
+
data.tar.gz: e27c9be87b4e690dbf94710e37e11ac050b87e7415e7d31f820a75df7f958039bbd69a1ce466ed0043e9f2edf190057e1bb613cec8368861a0f9771fc60d4f23
|
data/lib/telesign/autoverify.rb
CHANGED
@@ -12,8 +12,8 @@ module Telesign
|
|
12
12
|
# flow you must check the status using TeleSign's servers on your backend. Do not rely on the SDK alone to
|
13
13
|
# indicate a successful verification.
|
14
14
|
#
|
15
|
-
# See https://developer.telesign.com/docs/auto-verify-sdk#section-obtaining-verification-status for detailed
|
16
|
-
# documentation.
|
15
|
+
# See https://developer.telesign.com/docs/auto-verify-sdk-self#section-obtaining-verification-status for detailed
|
16
|
+
# API documentation.
|
17
17
|
def status(external_id, **params)
|
18
18
|
|
19
19
|
self.get(AUTOVERIFY_STATUS_RESOURCE % {:external_id => external_id},
|
data/lib/telesign/messaging.rb
CHANGED
@@ -11,7 +11,7 @@ module Telesign
|
|
11
11
|
|
12
12
|
# Send a message to the target phone_number.
|
13
13
|
#
|
14
|
-
# See https://developer.telesign.com/
|
14
|
+
# See https://developer.telesign.com/docs/messaging-api for detailed API documentation.
|
15
15
|
def message(phone_number, message, message_type, **params)
|
16
16
|
|
17
17
|
self.post(MESSAGING_RESOURCE,
|
@@ -23,7 +23,7 @@ module Telesign
|
|
23
23
|
|
24
24
|
# Retrieves the current status of the message.
|
25
25
|
#
|
26
|
-
# See https://developer.telesign.com/
|
26
|
+
# See https://developer.telesign.com/docs/messaging-api for detailed API documentation.
|
27
27
|
def status(reference_id, **params)
|
28
28
|
|
29
29
|
self.get(MESSAGING_STATUS_RESOURCE % {:reference_id => reference_id},
|
data/lib/telesign/rest.rb
CHANGED
@@ -7,7 +7,7 @@ require 'securerandom'
|
|
7
7
|
require 'net/http/persistent'
|
8
8
|
|
9
9
|
module Telesign
|
10
|
-
SDK_VERSION = '2.
|
10
|
+
SDK_VERSION = '2.1.0'
|
11
11
|
|
12
12
|
# The TeleSign RestClient is a generic HTTP REST client that can be extended to make requests against any of
|
13
13
|
# TeleSign's REST API endpoints.
|
@@ -44,18 +44,18 @@ module Telesign
|
|
44
44
|
# TeleSign RestClient, useful for making generic RESTful requests against the API.
|
45
45
|
#
|
46
46
|
# * +customer_id+ - Your customer_id string associated with your account.
|
47
|
-
# * +
|
48
|
-
# * +
|
47
|
+
# * +api_key+ - Your api_key string associated with your account.
|
48
|
+
# * +rest_endpoint+ - (optional) Override the default rest_endpoint to target another endpoint.
|
49
49
|
# * +timeout+ - (optional) How long to wait for the server to send data before giving up, as a float.
|
50
50
|
def initialize(customer_id,
|
51
|
-
|
52
|
-
|
51
|
+
api_key,
|
52
|
+
rest_endpoint: 'https://rest-api.telesign.com',
|
53
53
|
proxy: nil,
|
54
54
|
timeout: 10)
|
55
55
|
|
56
56
|
@customer_id = customer_id
|
57
|
-
@
|
58
|
-
@
|
57
|
+
@api_key = api_key
|
58
|
+
@rest_endpoint = rest_endpoint
|
59
59
|
|
60
60
|
@http = Net::HTTP::Persistent.new(name: 'telesign', proxy: proxy)
|
61
61
|
|
@@ -70,10 +70,10 @@ module Telesign
|
|
70
70
|
# Creates the canonicalized string_to_sign and generates the HMAC signature. This is used to authenticate requests
|
71
71
|
# against the TeleSign REST API.
|
72
72
|
#
|
73
|
-
# See https://developer.telesign.com/docs/authentication
|
73
|
+
# See https://developer.telesign.com/docs/authentication for detailed API documentation.
|
74
74
|
#
|
75
75
|
# * +customer_id+ - Your account customer_id.
|
76
|
-
# * +
|
76
|
+
# * +api_key+ - Your account api_key.
|
77
77
|
# * +method_name+ - The HTTP method name of the request as a upper case string, should be one of 'POST', 'GET',
|
78
78
|
# 'PUT' or 'DELETE'.
|
79
79
|
# * +resource+ - The partial resource URI to perform the request against, as a string.
|
@@ -82,7 +82,7 @@ module Telesign
|
|
82
82
|
# * +nonce+ - A unique cryptographic nonce for the request, as a string.
|
83
83
|
# * +user_agent+ - (optional) User Agent associated with the request, as a string.
|
84
84
|
def self.generate_telesign_headers(customer_id,
|
85
|
-
|
85
|
+
api_key,
|
86
86
|
method_name,
|
87
87
|
resource,
|
88
88
|
url_encoded_fields,
|
@@ -119,17 +119,17 @@ module Telesign
|
|
119
119
|
string_to_sign << "\n#{resource}"
|
120
120
|
|
121
121
|
digest = OpenSSL::Digest.new('sha256')
|
122
|
-
key = Base64.decode64(
|
122
|
+
key = Base64.decode64(api_key)
|
123
123
|
|
124
124
|
signature = Base64.encode64(OpenSSL::HMAC.digest(digest, key, string_to_sign)).strip
|
125
125
|
|
126
126
|
authorization = "TSA #{customer_id}:#{signature}"
|
127
127
|
|
128
128
|
headers = {
|
129
|
-
'Authorization'
|
130
|
-
'Date'
|
131
|
-
'x-ts-auth-method'
|
132
|
-
'x-ts-nonce'
|
129
|
+
:'Authorization'=>authorization,
|
130
|
+
:'Date'=>date_rfc2616,
|
131
|
+
:'x-ts-auth-method'=>auth_method,
|
132
|
+
:'x-ts-nonce'=>nonce
|
133
133
|
}
|
134
134
|
|
135
135
|
unless user_agent.nil?
|
@@ -189,12 +189,12 @@ module Telesign
|
|
189
189
|
# * +params+ - Body params to perform the HTTP request with, as a hash.
|
190
190
|
def execute(method_function, method_name, resource, **params)
|
191
191
|
|
192
|
-
resource_uri = URI.parse("#{@
|
192
|
+
resource_uri = URI.parse("#{@rest_endpoint}#{resource}")
|
193
193
|
|
194
194
|
url_encoded_fields = URI.encode_www_form(params)
|
195
195
|
|
196
196
|
headers = RestClient.generate_telesign_headers(@customer_id,
|
197
|
-
@
|
197
|
+
@api_key,
|
198
198
|
method_name,
|
199
199
|
resource,
|
200
200
|
url_encoded_fields,
|
data/lib/telesign/score.rb
CHANGED
@@ -10,7 +10,7 @@ module Telesign
|
|
10
10
|
# Score is an API that delivers reputation scoring based on phone number intelligence, traffic patterns, machine
|
11
11
|
# learning, and a global data consortium.
|
12
12
|
#
|
13
|
-
# See https://developer.telesign.com/docs/
|
13
|
+
# See https://developer.telesign.com/docs/score-api for detailed API documentation.
|
14
14
|
def score(phone_number, account_lifecycle_event, **params)
|
15
15
|
|
16
16
|
self.post(SCORE_RESOURCE % {:phone_number => phone_number},
|
data/lib/telesign/util.rb
CHANGED
@@ -11,13 +11,13 @@ module Telesign
|
|
11
11
|
|
12
12
|
# Verify that a callback was made by TeleSign and was not sent by a malicious client by verifying the signature.
|
13
13
|
#
|
14
|
-
# * +
|
14
|
+
# * +api_key+ - the TeleSign API api_key associated with your account.
|
15
15
|
# * +signature+ - the TeleSign Authorization header value supplied in the callback, as a string.
|
16
16
|
# * +json_str+ - the POST body text, that is, the JSON string sent by TeleSign describing the transaction status.
|
17
|
-
def verify_telesign_callback_signature(
|
17
|
+
def verify_telesign_callback_signature(api_key, signature, json_str)
|
18
18
|
|
19
19
|
digest = OpenSSL::Digest.new('sha256')
|
20
|
-
key = Base64.decode64(
|
20
|
+
key = Base64.decode64(api_key)
|
21
21
|
|
22
22
|
your_signature = Base64.encode64(OpenSSL::HMAC.digest(digest, key, json_str)).strip
|
23
23
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telesign
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TeleSign
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02
|
11
|
+
date: 2017-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-http-persistent
|
@@ -30,6 +30,76 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 3.0.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: test-unit
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: mocha
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: codecov
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: simplecov
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
33
103
|
description: TeleSign Ruby SDK
|
34
104
|
email: support@telesign.com
|
35
105
|
executables: []
|