kapso-client-ruby 1.0.0 → 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 +478 -0
- data/README.md +1053 -734
- 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 +388 -0
- data/examples/rails/models.rb +240 -0
- data/examples/rails/notifications_controller.rb +227 -0
- 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 +76 -0
- data/lib/kapso_client_ruby/rails/generators/templates/env.erb +21 -0
- data/lib/kapso_client_ruby/rails/generators/templates/initializer.rb.erb +33 -0
- data/lib/kapso_client_ruby/rails/generators/templates/message_service.rb.erb +138 -0
- data/lib/kapso_client_ruby/rails/generators/templates/webhook_controller.rb.erb +62 -0
- data/lib/kapso_client_ruby/rails/railtie.rb +55 -0
- data/lib/kapso_client_ruby/rails/service.rb +189 -0
- data/lib/kapso_client_ruby/rails/tasks.rake +167 -0
- 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 -68
- 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 +24 -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
|
|
@@ -203,20 +204,38 @@ files:
|
|
|
203
204
|
- ".rubocop.yml"
|
|
204
205
|
- CHANGELOG.md
|
|
205
206
|
- Gemfile
|
|
207
|
+
- RAILS_INTEGRATION.md
|
|
206
208
|
- README.md
|
|
207
209
|
- Rakefile
|
|
208
210
|
- TEMPLATE_TOOLS_GUIDE.md
|
|
209
211
|
- WHATSAPP_24_HOUR_GUIDE.md
|
|
210
212
|
- examples/advanced_features.rb
|
|
213
|
+
- examples/advanced_messaging.rb
|
|
211
214
|
- examples/basic_messaging.rb
|
|
215
|
+
- examples/enhanced_interactive.rb
|
|
216
|
+
- examples/flows_usage.rb
|
|
217
|
+
- examples/interactive_messages.rb
|
|
212
218
|
- examples/media_management.rb
|
|
219
|
+
- examples/rails/jobs.rb
|
|
220
|
+
- examples/rails/models.rb
|
|
221
|
+
- examples/rails/notifications_controller.rb
|
|
213
222
|
- examples/template_management.rb
|
|
223
|
+
- kapso-ruby-logo.jpg
|
|
214
224
|
- lib/kapso_client_ruby.rb
|
|
215
225
|
- lib/kapso_client_ruby/client.rb
|
|
216
226
|
- lib/kapso_client_ruby/errors.rb
|
|
227
|
+
- lib/kapso_client_ruby/rails/generators/install_generator.rb
|
|
228
|
+
- lib/kapso_client_ruby/rails/generators/templates/env.erb
|
|
229
|
+
- lib/kapso_client_ruby/rails/generators/templates/initializer.rb.erb
|
|
230
|
+
- lib/kapso_client_ruby/rails/generators/templates/message_service.rb.erb
|
|
231
|
+
- lib/kapso_client_ruby/rails/generators/templates/webhook_controller.rb.erb
|
|
232
|
+
- lib/kapso_client_ruby/rails/railtie.rb
|
|
233
|
+
- lib/kapso_client_ruby/rails/service.rb
|
|
234
|
+
- lib/kapso_client_ruby/rails/tasks.rake
|
|
217
235
|
- lib/kapso_client_ruby/resources/calls.rb
|
|
218
236
|
- lib/kapso_client_ruby/resources/contacts.rb
|
|
219
237
|
- lib/kapso_client_ruby/resources/conversations.rb
|
|
238
|
+
- lib/kapso_client_ruby/resources/flows.rb
|
|
220
239
|
- lib/kapso_client_ruby/resources/media.rb
|
|
221
240
|
- lib/kapso_client_ruby/resources/messages.rb
|
|
222
241
|
- lib/kapso_client_ruby/resources/phone_numbers.rb
|
|
@@ -234,6 +253,7 @@ metadata:
|
|
|
234
253
|
homepage_uri: https://github.com/PabloB07/kapso-client-ruby
|
|
235
254
|
source_code_uri: https://github.com/PabloB07/kapso-client-ruby
|
|
236
255
|
changelog_uri: https://github.com/PabloB07/kapso-client-ruby/blob/main/CHANGELOG.md
|
|
256
|
+
post_install_message:
|
|
237
257
|
rdoc_options: []
|
|
238
258
|
require_paths:
|
|
239
259
|
- lib
|
|
@@ -248,7 +268,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
248
268
|
- !ruby/object:Gem::Version
|
|
249
269
|
version: '0'
|
|
250
270
|
requirements: []
|
|
251
|
-
rubygems_version: 3.
|
|
271
|
+
rubygems_version: 3.4.20
|
|
272
|
+
signing_key:
|
|
252
273
|
specification_version: 4
|
|
253
274
|
summary: Ruby client for the Kapso API
|
|
254
275
|
test_files: []
|