kapso-client-ruby 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +81 -81
- data/CHANGELOG.md +262 -91
- data/Gemfile +20 -20
- data/RAILS_INTEGRATION.md +477 -477
- data/README.md +1053 -752
- data/Rakefile +40 -40
- data/TEMPLATE_TOOLS_GUIDE.md +120 -120
- data/WHATSAPP_24_HOUR_GUIDE.md +133 -133
- data/examples/advanced_features.rb +352 -349
- data/examples/advanced_messaging.rb +241 -0
- data/examples/basic_messaging.rb +139 -136
- data/examples/enhanced_interactive.rb +400 -0
- data/examples/flows_usage.rb +307 -0
- data/examples/interactive_messages.rb +343 -0
- data/examples/media_management.rb +256 -253
- data/examples/rails/jobs.rb +387 -387
- data/examples/rails/models.rb +239 -239
- data/examples/rails/notifications_controller.rb +226 -226
- data/examples/template_management.rb +393 -390
- data/kapso-ruby-logo.jpg +0 -0
- data/lib/kapso_client_ruby/client.rb +321 -316
- data/lib/kapso_client_ruby/errors.rb +348 -329
- data/lib/kapso_client_ruby/rails/generators/install_generator.rb +75 -75
- data/lib/kapso_client_ruby/rails/generators/templates/env.erb +20 -20
- data/lib/kapso_client_ruby/rails/generators/templates/initializer.rb.erb +32 -32
- data/lib/kapso_client_ruby/rails/generators/templates/message_service.rb.erb +137 -137
- data/lib/kapso_client_ruby/rails/generators/templates/webhook_controller.rb.erb +61 -61
- data/lib/kapso_client_ruby/rails/railtie.rb +54 -54
- data/lib/kapso_client_ruby/rails/service.rb +188 -188
- data/lib/kapso_client_ruby/rails/tasks.rake +166 -166
- data/lib/kapso_client_ruby/resources/calls.rb +172 -172
- data/lib/kapso_client_ruby/resources/contacts.rb +190 -190
- data/lib/kapso_client_ruby/resources/conversations.rb +103 -103
- data/lib/kapso_client_ruby/resources/flows.rb +382 -0
- data/lib/kapso_client_ruby/resources/media.rb +205 -205
- data/lib/kapso_client_ruby/resources/messages.rb +760 -380
- data/lib/kapso_client_ruby/resources/phone_numbers.rb +85 -85
- data/lib/kapso_client_ruby/resources/templates.rb +283 -283
- data/lib/kapso_client_ruby/types.rb +348 -262
- data/lib/kapso_client_ruby/version.rb +5 -5
- data/lib/kapso_client_ruby.rb +75 -74
- data/scripts/.env.example +17 -17
- data/scripts/kapso_template_finder.rb +91 -91
- data/scripts/sdk_setup.rb +404 -404
- data/scripts/test.rb +60 -60
- metadata +12 -3
data/scripts/test.rb
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require 'dotenv/load' rescue nil
|
|
5
|
-
require_relative '../lib/kapso_client_ruby'
|
|
6
|
-
|
|
7
|
-
puts "🚀 Kapso API Quick Test"
|
|
8
|
-
|
|
9
|
-
# Get credentials
|
|
10
|
-
kapso_api_key = ENV['KAPSO_API_KEY']
|
|
11
|
-
phone_number_id = ENV['PHONE_NUMBER_ID']
|
|
12
|
-
|
|
13
|
-
unless kapso_api_key && phone_number_id
|
|
14
|
-
puts "❌ Missing credentials. Run: ruby sdk_test.rb"
|
|
15
|
-
exit 1
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
client = KapsoClientRuby::Client.new(
|
|
19
|
-
kapso_api_key: kapso_api_key,
|
|
20
|
-
base_url: ENV['WHATSAPP_BASE_URL'] || 'https://app.kapso.ai/api/meta',
|
|
21
|
-
debug: true
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
puts "API Key: ***#{kapso_api_key[-4..-1]} | Phone: #{phone_number_id}"
|
|
25
|
-
|
|
26
|
-
print "Destination (+56912345678): "
|
|
27
|
-
to_number = gets.chomp
|
|
28
|
-
|
|
29
|
-
puts "📱 Sending..."
|
|
30
|
-
|
|
31
|
-
begin
|
|
32
|
-
response = client.messages.send_text(
|
|
33
|
-
phone_number_id: phone_number_id,
|
|
34
|
-
to: to_number,
|
|
35
|
-
body: "Test from Ruby SDK - #{Time.now.strftime('%H:%M')}"
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
puts "✅ SUCCESS! Message ID: #{response.messages.first.id}"
|
|
39
|
-
|
|
40
|
-
rescue KapsoClientRuby::Errors::GraphApiError => e
|
|
41
|
-
puts "❌ ERROR #{e.http_status}: #{e.message}"
|
|
42
|
-
|
|
43
|
-
# Check for specific 24-hour window error
|
|
44
|
-
if e.message.include?("24 hours") || e.message.include?("Re-engagement")
|
|
45
|
-
puts "⏰ 24-HOUR WINDOW EXPIRED!"
|
|
46
|
-
puts "💡 Solutions via Kapso.ai:"
|
|
47
|
-
puts " • Check Kapso dashboard for approved templates"
|
|
48
|
-
puts " • Run: ruby kapso_template_finder.rb (discover templates)"
|
|
49
|
-
puts " • Run: ruby template_test.rb (test template sending)"
|
|
50
|
-
else
|
|
51
|
-
case e.http_status
|
|
52
|
-
when 401
|
|
53
|
-
puts "💡 Check Kapso API key in dashboard"
|
|
54
|
-
when 400
|
|
55
|
-
puts "💡 Check phone number ID or destination format"
|
|
56
|
-
else
|
|
57
|
-
puts "💡 Contact Kapso support"
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'dotenv/load' rescue nil
|
|
5
|
+
require_relative '../lib/kapso_client_ruby'
|
|
6
|
+
|
|
7
|
+
puts "🚀 Kapso API Quick Test"
|
|
8
|
+
|
|
9
|
+
# Get credentials
|
|
10
|
+
kapso_api_key = ENV['KAPSO_API_KEY']
|
|
11
|
+
phone_number_id = ENV['PHONE_NUMBER_ID']
|
|
12
|
+
|
|
13
|
+
unless kapso_api_key && phone_number_id
|
|
14
|
+
puts "❌ Missing credentials. Run: ruby sdk_test.rb"
|
|
15
|
+
exit 1
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
client = KapsoClientRuby::Client.new(
|
|
19
|
+
kapso_api_key: kapso_api_key,
|
|
20
|
+
base_url: ENV['WHATSAPP_BASE_URL'] || 'https://app.kapso.ai/api/meta',
|
|
21
|
+
debug: true
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
puts "API Key: ***#{kapso_api_key[-4..-1]} | Phone: #{phone_number_id}"
|
|
25
|
+
|
|
26
|
+
print "Destination (+56912345678): "
|
|
27
|
+
to_number = gets.chomp
|
|
28
|
+
|
|
29
|
+
puts "📱 Sending..."
|
|
30
|
+
|
|
31
|
+
begin
|
|
32
|
+
response = client.messages.send_text(
|
|
33
|
+
phone_number_id: phone_number_id,
|
|
34
|
+
to: to_number,
|
|
35
|
+
body: "Test from Ruby SDK - #{Time.now.strftime('%H:%M')}"
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
puts "✅ SUCCESS! Message ID: #{response.messages.first.id}"
|
|
39
|
+
|
|
40
|
+
rescue KapsoClientRuby::Errors::GraphApiError => e
|
|
41
|
+
puts "❌ ERROR #{e.http_status}: #{e.message}"
|
|
42
|
+
|
|
43
|
+
# Check for specific 24-hour window error
|
|
44
|
+
if e.message.include?("24 hours") || e.message.include?("Re-engagement")
|
|
45
|
+
puts "⏰ 24-HOUR WINDOW EXPIRED!"
|
|
46
|
+
puts "💡 Solutions via Kapso.ai:"
|
|
47
|
+
puts " • Check Kapso dashboard for approved templates"
|
|
48
|
+
puts " • Run: ruby kapso_template_finder.rb (discover templates)"
|
|
49
|
+
puts " • Run: ruby template_test.rb (test template sending)"
|
|
50
|
+
else
|
|
51
|
+
case e.http_status
|
|
52
|
+
when 401
|
|
53
|
+
puts "💡 Check Kapso API key in dashboard"
|
|
54
|
+
when 400
|
|
55
|
+
puts "💡 Check phone number ID or destination format"
|
|
56
|
+
else
|
|
57
|
+
puts "💡 Contact Kapso support"
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kapso-client-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- PabloB07
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2025-12-10 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: faraday
|
|
@@ -209,12 +210,17 @@ files:
|
|
|
209
210
|
- TEMPLATE_TOOLS_GUIDE.md
|
|
210
211
|
- WHATSAPP_24_HOUR_GUIDE.md
|
|
211
212
|
- examples/advanced_features.rb
|
|
213
|
+
- examples/advanced_messaging.rb
|
|
212
214
|
- examples/basic_messaging.rb
|
|
215
|
+
- examples/enhanced_interactive.rb
|
|
216
|
+
- examples/flows_usage.rb
|
|
217
|
+
- examples/interactive_messages.rb
|
|
213
218
|
- examples/media_management.rb
|
|
214
219
|
- examples/rails/jobs.rb
|
|
215
220
|
- examples/rails/models.rb
|
|
216
221
|
- examples/rails/notifications_controller.rb
|
|
217
222
|
- examples/template_management.rb
|
|
223
|
+
- kapso-ruby-logo.jpg
|
|
218
224
|
- lib/kapso_client_ruby.rb
|
|
219
225
|
- lib/kapso_client_ruby/client.rb
|
|
220
226
|
- lib/kapso_client_ruby/errors.rb
|
|
@@ -229,6 +235,7 @@ files:
|
|
|
229
235
|
- lib/kapso_client_ruby/resources/calls.rb
|
|
230
236
|
- lib/kapso_client_ruby/resources/contacts.rb
|
|
231
237
|
- lib/kapso_client_ruby/resources/conversations.rb
|
|
238
|
+
- lib/kapso_client_ruby/resources/flows.rb
|
|
232
239
|
- lib/kapso_client_ruby/resources/media.rb
|
|
233
240
|
- lib/kapso_client_ruby/resources/messages.rb
|
|
234
241
|
- lib/kapso_client_ruby/resources/phone_numbers.rb
|
|
@@ -246,6 +253,7 @@ metadata:
|
|
|
246
253
|
homepage_uri: https://github.com/PabloB07/kapso-client-ruby
|
|
247
254
|
source_code_uri: https://github.com/PabloB07/kapso-client-ruby
|
|
248
255
|
changelog_uri: https://github.com/PabloB07/kapso-client-ruby/blob/main/CHANGELOG.md
|
|
256
|
+
post_install_message:
|
|
249
257
|
rdoc_options: []
|
|
250
258
|
require_paths:
|
|
251
259
|
- lib
|
|
@@ -260,7 +268,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
260
268
|
- !ruby/object:Gem::Version
|
|
261
269
|
version: '0'
|
|
262
270
|
requirements: []
|
|
263
|
-
rubygems_version: 3.
|
|
271
|
+
rubygems_version: 3.4.20
|
|
272
|
+
signing_key:
|
|
264
273
|
specification_version: 4
|
|
265
274
|
summary: Ruby client for the Kapso API
|
|
266
275
|
test_files: []
|