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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +81 -81
  3. data/CHANGELOG.md +262 -91
  4. data/Gemfile +20 -20
  5. data/RAILS_INTEGRATION.md +477 -477
  6. data/README.md +1053 -752
  7. data/Rakefile +40 -40
  8. data/TEMPLATE_TOOLS_GUIDE.md +120 -120
  9. data/WHATSAPP_24_HOUR_GUIDE.md +133 -133
  10. data/examples/advanced_features.rb +352 -349
  11. data/examples/advanced_messaging.rb +241 -0
  12. data/examples/basic_messaging.rb +139 -136
  13. data/examples/enhanced_interactive.rb +400 -0
  14. data/examples/flows_usage.rb +307 -0
  15. data/examples/interactive_messages.rb +343 -0
  16. data/examples/media_management.rb +256 -253
  17. data/examples/rails/jobs.rb +387 -387
  18. data/examples/rails/models.rb +239 -239
  19. data/examples/rails/notifications_controller.rb +226 -226
  20. data/examples/template_management.rb +393 -390
  21. data/kapso-ruby-logo.jpg +0 -0
  22. data/lib/kapso_client_ruby/client.rb +321 -316
  23. data/lib/kapso_client_ruby/errors.rb +348 -329
  24. data/lib/kapso_client_ruby/rails/generators/install_generator.rb +75 -75
  25. data/lib/kapso_client_ruby/rails/generators/templates/env.erb +20 -20
  26. data/lib/kapso_client_ruby/rails/generators/templates/initializer.rb.erb +32 -32
  27. data/lib/kapso_client_ruby/rails/generators/templates/message_service.rb.erb +137 -137
  28. data/lib/kapso_client_ruby/rails/generators/templates/webhook_controller.rb.erb +61 -61
  29. data/lib/kapso_client_ruby/rails/railtie.rb +54 -54
  30. data/lib/kapso_client_ruby/rails/service.rb +188 -188
  31. data/lib/kapso_client_ruby/rails/tasks.rake +166 -166
  32. data/lib/kapso_client_ruby/resources/calls.rb +172 -172
  33. data/lib/kapso_client_ruby/resources/contacts.rb +190 -190
  34. data/lib/kapso_client_ruby/resources/conversations.rb +103 -103
  35. data/lib/kapso_client_ruby/resources/flows.rb +382 -0
  36. data/lib/kapso_client_ruby/resources/media.rb +205 -205
  37. data/lib/kapso_client_ruby/resources/messages.rb +760 -380
  38. data/lib/kapso_client_ruby/resources/phone_numbers.rb +85 -85
  39. data/lib/kapso_client_ruby/resources/templates.rb +283 -283
  40. data/lib/kapso_client_ruby/types.rb +348 -262
  41. data/lib/kapso_client_ruby/version.rb +5 -5
  42. data/lib/kapso_client_ruby.rb +75 -74
  43. data/scripts/.env.example +17 -17
  44. data/scripts/kapso_template_finder.rb +91 -91
  45. data/scripts/sdk_setup.rb +404 -404
  46. data/scripts/test.rb +60 -60
  47. 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.1
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: 1980-01-02 00:00:00.000000000 Z
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.7.2
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: []