freshchat_whatsapp 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +113 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/freshchat_whatsapp.gemspec +36 -0
- data/lib/.DS_Store +0 -0
- data/lib/freshchat_whatsapp/actions/check_message_status.rb +22 -0
- data/lib/freshchat_whatsapp/actions/send_hsm_message.rb +54 -0
- data/lib/freshchat_whatsapp/api.rb +39 -0
- data/lib/freshchat_whatsapp/client.rb +57 -0
- data/lib/freshchat_whatsapp/configuration.rb +16 -0
- data/lib/freshchat_whatsapp/errors/request_error.rb +15 -0
- data/lib/freshchat_whatsapp/version.rb +5 -0
- data/lib/freshchat_whatsapp.rb +13 -0
- data/lib/whatsapp/configuration.rb +16 -0
- data/lib/whatsapp/errors/request_error.rb +15 -0
- data/lib/whatsapp/version.rb +5 -0
- metadata +135 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7a00641e28830515002f70ff8fc0d281f6fee0947be06a6070f3aadecbd4f94b
|
4
|
+
data.tar.gz: f0c2c1df08034f51f39b3e97a6ae3b03b4f0679ea0d8c2352fe7e6d4ceb501be
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b04214f2a11575259557d3720e82cf36fbae3a3575d0b2e9b32b842faad174ddecb1329ed5311ae15e6b5aeacd6f14eb3a40e8d4bba977873ed8846cf6304d93
|
7
|
+
data.tar.gz: 967e1b994fce291b89fc00a41768666e38cfa8264137f3a8130863973ac43fb48d35f9c7fdb6790787c0dd9eaee303b39a2d57ee8ccb42893fc914134771cbd5
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2023 TODO: Arvind Vyas
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
# FreshchatWhatsapp
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/freshchat_whatsapp`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'freshchat_whatsapp'
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
|
16
|
+
$ bundle install
|
17
|
+
|
18
|
+
Or install it yourself as:
|
19
|
+
|
20
|
+
$ gem install freshchat_whatsapp
|
21
|
+
|
22
|
+
### Configuration
|
23
|
+
|
24
|
+
Before you can send messages there's some Configuration to be done. Set the base path, api_key
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
FreshchatWhatsapp.configure do |config|
|
28
|
+
config.base_path = "https://example.freshchat.com"
|
29
|
+
config.api_key = "api_key"
|
30
|
+
end
|
31
|
+
|
32
|
+
```
|
33
|
+
|
34
|
+
Create an instance of the API client, which is going to be used from now on to interact with whatsapp
|
35
|
+
```ruby
|
36
|
+
fresh_chat = FreshchatWhatsapp::Api.new
|
37
|
+
```
|
38
|
+
|
39
|
+
|
40
|
+
### Send HSM (templated) messages
|
41
|
+
|
42
|
+
so freshchat use to give facility to design your template so what ever params you are asking to send into the template you have to prepare as this part is total dynamic by the given method
|
43
|
+
|
44
|
+
this is example template generated you have you change according to your template
|
45
|
+
```ruby
|
46
|
+
def generate_rich_template_data(url, name)
|
47
|
+
{
|
48
|
+
'rich_template_data' => {
|
49
|
+
'button' => {
|
50
|
+
'subType' => 'url',
|
51
|
+
'params' => [
|
52
|
+
{
|
53
|
+
'data' => url
|
54
|
+
}
|
55
|
+
]
|
56
|
+
},
|
57
|
+
'body' => {
|
58
|
+
'params' => [
|
59
|
+
{
|
60
|
+
'data' => name
|
61
|
+
}
|
62
|
+
]
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
69
|
+
prepare params , if we talk about url freshchat will not allow to send you full url you can just sent the part dynamic part.
|
70
|
+
```ruby
|
71
|
+
params = generate_rich_template_data('/example/13213', 'MR JACK')
|
72
|
+
```
|
73
|
+
|
74
|
+
This method generates the 'rich_template_data' section for a Freshchat WhatsApp payload.
|
75
|
+
|
76
|
+
Parameters:
|
77
|
+
- `from_number`: is the number regiester to send the number
|
78
|
+
|
79
|
+
- `namespace`: Provided by the Freshchat team.
|
80
|
+
- `to_number`: Recipient's phone number for message delivery.
|
81
|
+
- `template_name`: Template used for passing data.
|
82
|
+
- `language`: Default language set to 'en'.
|
83
|
+
- `params`: Data set using the method above.
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
fresh_chat.send_hsm_message(from_number, to_number, namespace, template_name,language, params)
|
87
|
+
|
88
|
+
# output:
|
89
|
+
|
90
|
+
{"request_id"=>"48a79993-9b2f", "request_process_time"=>"1", "link"=>{"rel"=>"outbound-messages", "href"=>"/v2/outbound-messages?request_id=48a79993-9b2f", "type"=>"GET"}, "status"=>"Request created successfully. Check delivery status using status API"}
|
91
|
+
```
|
92
|
+
|
93
|
+
### Check message status
|
94
|
+
|
95
|
+
```ruby
|
96
|
+
fresh_chat.check_message_status('48a79993-9b2f')
|
97
|
+
{"outbound_messages"=>[{"message_id"=>"0c204f712c2e", "from"=>{"phone_number"=>"+91XXXXXXXX"}, "provider"=>"whatsapp", "to"=>{"phone_number"=>"+91XXXXXXX"}, "data"=>{"message_template"=>{"storage"=>"conversation", "template_name"=>"corporate_sales_client_phone_number_verification_staging", "namespace"=>"e98e3c87a2", "language"=>{"policy"=>"deterministic", "code"=>"en"}, "rich_template_data"=>{"body"=>{"params"=>[{"data"=>"MR JACK"}]}, "button"=>{"subType"=>"url", "params"=>[{"data"=>"/example/13213"}]}}}}, "request_id"=>"6ac508a0d1", "status"=>"READ", "created_on"=>1700193764196}]}
|
98
|
+
```
|
99
|
+
|
100
|
+
## Development
|
101
|
+
|
102
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
103
|
+
|
104
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
105
|
+
|
106
|
+
## Contributing
|
107
|
+
|
108
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/arvindvyas/freshchat_whatsapp.
|
109
|
+
|
110
|
+
|
111
|
+
## License
|
112
|
+
|
113
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'freshchat_whatsapp'
|
6
|
+
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
9
|
+
|
10
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
+
# require "pry"
|
12
|
+
# Pry.start
|
13
|
+
|
14
|
+
require 'irb'
|
15
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/freshchat_whatsapp/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'freshchat_whatsapp'
|
7
|
+
spec.version = FreshchatWhatsapp::VERSION
|
8
|
+
spec.authors = ['Arvind Vyas']
|
9
|
+
spec.email = ['arvindvyas07@gmail.com']
|
10
|
+
|
11
|
+
spec.summary = 'The Ruby gem enables seamless integration of WhatsApp into Ruby apps via Freshchat, streamlining customer communication and support. It simplifies adding WhatsApp as a channel for enhanced interactions within Ruby-based projects.'
|
12
|
+
spec.description = "The Ruby gem support for Freshchat WhatsApp integration enables seamless communication by leveraging the power of Freshchat within Ruby applications. It allows developers to integrate WhatsApp messaging functionalities into their Ruby-based projects using Freshchat's comprehensive features. This integration simplifies the process of incorporating WhatsApp as a communication channel, offering a convenient solution for Ruby developers to enhance customer "
|
13
|
+
spec.homepage = 'https://github.com/arvindvyas/freshchat_whatsapp'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
16
|
+
|
17
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
18
|
+
|
19
|
+
# spec.metadata["homepage_uri"] = spec.homepage
|
20
|
+
spec.metadata['source_code_uri'] = 'https://github.com/arvindvyas/freshchat_whatsapp'
|
21
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
spec.bindir = 'exe'
|
29
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ['lib']
|
31
|
+
|
32
|
+
spec.add_dependency 'faraday', '>= 2.0', '< 3'
|
33
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.6'
|
34
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
35
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
36
|
+
end
|
data/lib/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FreshchatWhatsapp
|
4
|
+
module Actions
|
5
|
+
class CheckMessageStatus
|
6
|
+
PATH = '/v2/outbound-messages'
|
7
|
+
|
8
|
+
def initialize(client, request_id)
|
9
|
+
@client = client
|
10
|
+
@request_id = request_id
|
11
|
+
end
|
12
|
+
|
13
|
+
def call
|
14
|
+
client.get_request "#{PATH}?request_id=#{request_id}"
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
attr_reader :client, :request_id
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FreshchatWhatsapp
|
4
|
+
module Actions
|
5
|
+
class SendHsmMessage
|
6
|
+
PATH = '/v2/outbound-messages/whatsapp'
|
7
|
+
|
8
|
+
def initialize(client, from_number, wtsapp_phone_number, namespace, template_name, language, params)
|
9
|
+
@from_number = from_number
|
10
|
+
@phone_number = wtsapp_phone_number
|
11
|
+
@namespace = namespace
|
12
|
+
@template_name = template_name
|
13
|
+
@language = language
|
14
|
+
@params = params
|
15
|
+
@client = client
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
client.request PATH, payload
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
attr_reader :client, :wtsapp_phone_number, :namespace, :template_name, :language, :params
|
25
|
+
|
26
|
+
def payload
|
27
|
+
payload = {
|
28
|
+
'from': {
|
29
|
+
'phone_number': @from_number
|
30
|
+
},
|
31
|
+
'to': [
|
32
|
+
{
|
33
|
+
'phone_number': @phone_number
|
34
|
+
}
|
35
|
+
],
|
36
|
+
'data': {
|
37
|
+
'message_template': {
|
38
|
+
'storage': 'conversation',
|
39
|
+
'namespace': @namespace,
|
40
|
+
'template_name': @template_name,
|
41
|
+
'language': {
|
42
|
+
'policy': 'deterministic',
|
43
|
+
'code': 'en'
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
payload[:data][:message_template].merge!(params)
|
50
|
+
payload
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'freshchat_whatsapp/actions/send_hsm_message'
|
4
|
+
require 'freshchat_whatsapp/actions/check_message_status'
|
5
|
+
|
6
|
+
module FreshchatWhatsapp
|
7
|
+
class Api
|
8
|
+
def initialize
|
9
|
+
@base_path = FreshchatWhatsapp.configuration.base_path
|
10
|
+
end
|
11
|
+
|
12
|
+
def send_hsm_message(from_number, to_number, namespace, template_name, language, params)
|
13
|
+
Actions::SendHsmMessage.new(
|
14
|
+
client,
|
15
|
+
from_number,
|
16
|
+
to_number,
|
17
|
+
namespace,
|
18
|
+
template_name,
|
19
|
+
language,
|
20
|
+
params
|
21
|
+
).call
|
22
|
+
end
|
23
|
+
|
24
|
+
def check_message_status(request_id)
|
25
|
+
Actions::CheckMessageStatus.new(
|
26
|
+
client,
|
27
|
+
request_id
|
28
|
+
).call
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
attr_reader :base_path
|
34
|
+
|
35
|
+
def client
|
36
|
+
@client = FreshchatWhatsapp::Client.new
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FreshchatWhatsapp
|
4
|
+
class Client
|
5
|
+
def initialize(token_type = :bearer)
|
6
|
+
@base_path = FreshchatWhatsapp.configuration.base_path
|
7
|
+
@token = FreshchatWhatsapp.configuration.api_key
|
8
|
+
@token_type = token_type
|
9
|
+
end
|
10
|
+
|
11
|
+
def request(path, payload = nil)
|
12
|
+
full_path = "#{base_path}#{path}"
|
13
|
+
conn = Faraday.new(url: full_path, headers: headers)
|
14
|
+
response = conn.post { |request| request.body = body(payload) }
|
15
|
+
|
16
|
+
unless response.success?
|
17
|
+
raise FreshchatWhatsapp::Errors::RequestError.new('FreshchatWhatsapp API request error.', response.body)
|
18
|
+
end
|
19
|
+
|
20
|
+
JSON.parse(response.body)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_request(path, payload = nil)
|
24
|
+
full_path = "#{base_path}#{path}"
|
25
|
+
conn = Faraday.new(url: full_path, headers: headers)
|
26
|
+
response = conn.get { |request| request.body = body(payload) }
|
27
|
+
|
28
|
+
unless response.success?
|
29
|
+
raise FreshchatWhatsapp::Errors::RequestError.new('FreshchatWhatsapp API request error.', response.body)
|
30
|
+
end
|
31
|
+
|
32
|
+
JSON.parse(response.body)
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
attr_reader :base_path, :token, :token_type
|
38
|
+
|
39
|
+
def token_name
|
40
|
+
case token_type
|
41
|
+
when :bearer
|
42
|
+
'Bearer'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def headers
|
47
|
+
{
|
48
|
+
'Authorization' => "#{token_name} #{token}",
|
49
|
+
'Content-Type' => 'application/json'
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
def body(payload)
|
54
|
+
payload&.to_json
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FreshchatWhatsapp
|
4
|
+
class << self
|
5
|
+
attr_accessor :configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.configure
|
9
|
+
self.configuration ||= Configuration.new
|
10
|
+
yield(configuration)
|
11
|
+
end
|
12
|
+
|
13
|
+
class Configuration
|
14
|
+
attr_accessor :base_path, :api_key
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Dependencies
|
4
|
+
require 'json'
|
5
|
+
require 'faraday'
|
6
|
+
|
7
|
+
# Source
|
8
|
+
require 'freshchat_whatsapp/configuration'
|
9
|
+
require 'freshchat_whatsapp/version'
|
10
|
+
require 'freshchat_whatsapp/actions/send_hsm_message'
|
11
|
+
require 'freshchat_whatsapp/errors/request_error'
|
12
|
+
require 'freshchat_whatsapp/client'
|
13
|
+
require 'freshchat_whatsapp/api'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Whatsapp
|
4
|
+
class << self
|
5
|
+
attr_accessor :configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.configure
|
9
|
+
self.configuration ||= Configuration.new
|
10
|
+
yield(configuration)
|
11
|
+
end
|
12
|
+
|
13
|
+
class Configuration
|
14
|
+
attr_accessor :base_path, :api_key
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: freshchat_whatsapp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Arvind Vyas
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-11-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: pry-byebug
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.6'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.6'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '12.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '12.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.0'
|
75
|
+
description: 'The Ruby gem support for Freshchat WhatsApp integration enables seamless
|
76
|
+
communication by leveraging the power of Freshchat within Ruby applications. It
|
77
|
+
allows developers to integrate WhatsApp messaging functionalities into their Ruby-based
|
78
|
+
projects using Freshchat''s comprehensive features. This integration simplifies
|
79
|
+
the process of incorporating WhatsApp as a communication channel, offering a convenient
|
80
|
+
solution for Ruby developers to enhance customer '
|
81
|
+
email:
|
82
|
+
- arvindvyas07@gmail.com
|
83
|
+
executables: []
|
84
|
+
extensions: []
|
85
|
+
extra_rdoc_files: []
|
86
|
+
files:
|
87
|
+
- ".gitignore"
|
88
|
+
- ".rspec"
|
89
|
+
- ".travis.yml"
|
90
|
+
- Gemfile
|
91
|
+
- LICENSE.txt
|
92
|
+
- README.md
|
93
|
+
- Rakefile
|
94
|
+
- bin/console
|
95
|
+
- bin/setup
|
96
|
+
- freshchat_whatsapp.gemspec
|
97
|
+
- lib/.DS_Store
|
98
|
+
- lib/freshchat_whatsapp.rb
|
99
|
+
- lib/freshchat_whatsapp/actions/check_message_status.rb
|
100
|
+
- lib/freshchat_whatsapp/actions/send_hsm_message.rb
|
101
|
+
- lib/freshchat_whatsapp/api.rb
|
102
|
+
- lib/freshchat_whatsapp/client.rb
|
103
|
+
- lib/freshchat_whatsapp/configuration.rb
|
104
|
+
- lib/freshchat_whatsapp/errors/request_error.rb
|
105
|
+
- lib/freshchat_whatsapp/version.rb
|
106
|
+
- lib/whatsapp/configuration.rb
|
107
|
+
- lib/whatsapp/errors/request_error.rb
|
108
|
+
- lib/whatsapp/version.rb
|
109
|
+
homepage: https://github.com/arvindvyas/freshchat_whatsapp
|
110
|
+
licenses:
|
111
|
+
- MIT
|
112
|
+
metadata:
|
113
|
+
source_code_uri: https://github.com/arvindvyas/freshchat_whatsapp
|
114
|
+
post_install_message:
|
115
|
+
rdoc_options: []
|
116
|
+
require_paths:
|
117
|
+
- lib
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 2.3.0
|
123
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
requirements: []
|
129
|
+
rubygems_version: 3.1.6
|
130
|
+
signing_key:
|
131
|
+
specification_version: 4
|
132
|
+
summary: The Ruby gem enables seamless integration of WhatsApp into Ruby apps via
|
133
|
+
Freshchat, streamlining customer communication and support. It simplifies adding
|
134
|
+
WhatsApp as a channel for enhanced interactions within Ruby-based projects.
|
135
|
+
test_files: []
|