whatsapp_sdk 0.3.0 → 0.3.1
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/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- data/.github/workflows/codeql-analysis.yml +72 -0
- data/CHANGELOG.md +3 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +4 -1
- data/README.md +5 -5
- data/example.rb +17 -9
- data/lib/version.rb +1 -1
- data/lib/whatsapp_sdk/api/request.rb +1 -1
- data/lib/whatsapp_sdk/configuration.rb +0 -11
- data/lib/whatsapp_sdk.rb +13 -34
- data/whatsapp_sdk.gemspec +1 -0
- metadata +19 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 309171f5666c8ab046ca3e386ea48486076ba6aa1412eb088b9a884e30d06bf3
|
|
4
|
+
data.tar.gz: 3bf929a941471762f0f35333b7179fc03c6c48c227a6fbd83246169f0739c505
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cb2485c108c4c8ec5fd431bb906fd6f82046fb12344fa2fdda23eea9dc2eac97753f47cf600871d7c81a043d1c14fdcfa518d20e9c5fa3363cb4c88224c0f179
|
|
7
|
+
data.tar.gz: 157afd0a17d5e310c803c7d7e36b88fcb7c8ea4d33d0bff2800aec57459442f08a2bb820b137e0184f4d5edf87177d2f3643f445bc07e0b1a3bd8f0fee954999
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
|
|
17
|
+
**Expected behavior**
|
|
18
|
+
A clear and concise description of what you expected to happen.
|
|
19
|
+
|
|
20
|
+
**Additional context**
|
|
21
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Additional context**
|
|
14
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
|
2
|
+
# to commit it to your repository.
|
|
3
|
+
#
|
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
|
5
|
+
# or to provide custom queries or build logic.
|
|
6
|
+
#
|
|
7
|
+
# ******** NOTE ********
|
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
|
10
|
+
# supported CodeQL languages.
|
|
11
|
+
#
|
|
12
|
+
name: "CodeQL"
|
|
13
|
+
|
|
14
|
+
on:
|
|
15
|
+
push:
|
|
16
|
+
branches: [ "main" ]
|
|
17
|
+
pull_request:
|
|
18
|
+
# The branches below must be a subset of the branches above
|
|
19
|
+
branches: [ "main" ]
|
|
20
|
+
schedule:
|
|
21
|
+
- cron: '20 22 * * 6'
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
analyze:
|
|
25
|
+
name: Analyze
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
permissions:
|
|
28
|
+
actions: read
|
|
29
|
+
contents: read
|
|
30
|
+
security-events: write
|
|
31
|
+
|
|
32
|
+
strategy:
|
|
33
|
+
fail-fast: false
|
|
34
|
+
matrix:
|
|
35
|
+
language: [ 'ruby' ]
|
|
36
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
|
37
|
+
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Checkout repository
|
|
41
|
+
uses: actions/checkout@v3
|
|
42
|
+
|
|
43
|
+
# Initializes the CodeQL tools for scanning.
|
|
44
|
+
- name: Initialize CodeQL
|
|
45
|
+
uses: github/codeql-action/init@v2
|
|
46
|
+
with:
|
|
47
|
+
languages: ${{ matrix.language }}
|
|
48
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
49
|
+
# By default, queries listed here will override any specified in a config file.
|
|
50
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
51
|
+
|
|
52
|
+
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
|
53
|
+
# queries: security-extended,security-and-quality
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
57
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
|
58
|
+
- name: Autobuild
|
|
59
|
+
uses: github/codeql-action/autobuild@v2
|
|
60
|
+
|
|
61
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
|
62
|
+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
|
63
|
+
|
|
64
|
+
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
|
65
|
+
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
|
66
|
+
|
|
67
|
+
# - run: |
|
|
68
|
+
# echo "Run, Build Application using script"
|
|
69
|
+
# ./location_of_script_within_repo/buildscript.sh
|
|
70
|
+
|
|
71
|
+
- name: Perform CodeQL Analysis
|
|
72
|
+
uses: github/codeql-action/analyze@v2
|
data/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Unreleased
|
|
2
2
|
|
|
3
|
+
# v 0.3.1
|
|
4
|
+
- Update Meta API to v14
|
|
5
|
+
|
|
3
6
|
# v 0.3.0
|
|
4
7
|
- Allow Apps to have a singleton global authentication client.
|
|
5
8
|
|
|
6
9
|
# v 0.2.0
|
|
7
10
|
- Added Media API
|
|
8
|
-
- Update Facebook API to v14
|
|
9
11
|
- Added error and sucess responses
|
|
10
12
|
- Added faraday-multiplart as part of the library
|
|
11
13
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
whatsapp_sdk (0.
|
|
4
|
+
whatsapp_sdk (0.3.0)
|
|
5
5
|
faraday (~> 2.3.0)
|
|
6
6
|
faraday-multipart (~> 1.0.4)
|
|
7
7
|
oj (~> 3.13.13)
|
|
8
|
+
zeitwerk (~> 2.6.0)
|
|
8
9
|
|
|
9
10
|
GEM
|
|
10
11
|
remote: https://rubygems.org/
|
|
@@ -53,6 +54,7 @@ GEM
|
|
|
53
54
|
ruby-progressbar (1.11.0)
|
|
54
55
|
ruby2_keywords (0.0.5)
|
|
55
56
|
unicode-display_width (2.2.0)
|
|
57
|
+
zeitwerk (2.6.0)
|
|
56
58
|
|
|
57
59
|
PLATFORMS
|
|
58
60
|
x86_64-darwin-21
|
|
@@ -71,6 +73,7 @@ DEPENDENCIES
|
|
|
71
73
|
rubocop-minitest
|
|
72
74
|
rubocop-performance
|
|
73
75
|
whatsapp_sdk!
|
|
76
|
+
zeitwerk (>= 2.6.0)
|
|
74
77
|
|
|
75
78
|
BUNDLED WITH
|
|
76
79
|
2.3.9
|
data/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<a href="https://codeclimate.com/github/ignacio-chiazzo/ruby_whatsapp_sdk/maintainability"><img src="https://api.codeclimate.com/v1/badges/169cce95450272e4ad7d/maintainability" /></a>
|
|
5
5
|
|
|
6
6
|
The SDK provides a set of operations and classes to use the Whatsapp API.
|
|
7
|
-
Send stickers, messages, audio, videos, locations or just ask for the phone numbers through this library in a few steps!
|
|
7
|
+
Send stickers, messages, audio, videos, and locations or just ask for the phone numbers through this library in a few steps!
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
https://user-images.githubusercontent.com/11672878/173238826-6fc0a6f8-d0ee-4eae-8947-7dfd3b8b3446.mov
|
|
@@ -28,9 +28,9 @@ Or install it yourself as:
|
|
|
28
28
|
|
|
29
29
|
## Quick Start
|
|
30
30
|
|
|
31
|
-
There are three primary resources, `Messages`, `Media` and `PhoneNumbers`.
|
|
31
|
+
There are three primary resources, `Messages`, `Media` and `PhoneNumbers`. `Messages` allows users to send any kind of message (text, audio, location, video, image, etc.). `Media` allows users to manage media, and `Phone Numbers` enable clients to query the associated phone numbers.
|
|
32
32
|
|
|
33
|
-
To use `Messages`, `Media` or `PhoneNumbers
|
|
33
|
+
To use `Messages`, `Media` or `PhoneNumbers`, you need to initialize the `Client` that contains auth information. There are two ways to do it
|
|
34
34
|
|
|
35
35
|
1) Using an initializer
|
|
36
36
|
|
|
@@ -39,7 +39,7 @@ WhatsappSdk.configure do |config|
|
|
|
39
39
|
config.access_token = ACCESS_TOKEN
|
|
40
40
|
end
|
|
41
41
|
```
|
|
42
|
-
OR creating
|
|
42
|
+
OR 2) creating a `Client` instance and pass it to the `Messages`, `Medias` or `PhoneNumbers` instance like this:
|
|
43
43
|
|
|
44
44
|
```ruby
|
|
45
45
|
client = WhatsappSdk::Api::Client.new("<ACCESS TOKEN>") # replace this with a valid access token
|
|
@@ -244,7 +244,7 @@ Visit [the example file](/example.rb) with examples to call the API in a single
|
|
|
244
244
|
|
|
245
245
|
## Troubleshooting
|
|
246
246
|
|
|
247
|
-
- If the API response is success but the message is not delivered, make sure the device you're sending the message to is using a supported Whatsapp version. [Check documentation](https://developers.facebook.com/docs/whatsapp/cloud-api/support/troubleshooting#message-not-delivered)
|
|
247
|
+
- If the API response is `success` but the message is not delivered, make sure the device you're sending the message to is using a supported Whatsapp version. [Check documentation](https://developers.facebook.com/docs/whatsapp/cloud-api/support/troubleshooting#message-not-delivered)
|
|
248
248
|
|
|
249
249
|
## Development
|
|
250
250
|
|
data/example.rb
CHANGED
|
@@ -11,7 +11,7 @@ gemfile(true) do
|
|
|
11
11
|
|
|
12
12
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
13
13
|
|
|
14
|
-
gem "whatsapp_sdk"
|
|
14
|
+
gem "whatsapp_sdk", path: "/Users/ignaciochiazzo/src/whatsapp_sdk"
|
|
15
15
|
gem "pry"
|
|
16
16
|
gem "pry-nav"
|
|
17
17
|
end
|
|
@@ -22,11 +22,13 @@ require "pry-nav"
|
|
|
22
22
|
|
|
23
23
|
################# UPDATE CONSTANTS #################
|
|
24
24
|
|
|
25
|
-
ACCESS_TOKEN = "
|
|
26
|
-
SENDER_ID =
|
|
27
|
-
RECIPIENT_NUMBER =
|
|
28
|
-
BUSINESS_ID =
|
|
29
|
-
IMAGE_LINK = "
|
|
25
|
+
ACCESS_TOKEN = "EAAHwuHDNkqoBAOtjFZAw1MUOXsFOv4EMP8Hi2mtzvcHSPbYWD4HLLLRapjPIDQWagke3cF2IIZCbtlhMZCluO1sH7C594q0q9UqZAXwufTqBtebRlssZCLwKeC69l6Emdmt2gRYGDnhTJH0mrM7L5ivZAWezhjOvtzdnKJ7xBZALiQRKB6JrEAgAZBcnBMfBZC75xR0ZACXQUPoplhjN1a5FTA" # replace this with a valid access_token # TODO replace
|
|
26
|
+
SENDER_ID = 107_878_721_936_019
|
|
27
|
+
RECIPIENT_NUMBER = 13_437_772_910
|
|
28
|
+
BUSINESS_ID = 114_503_234_599_312
|
|
29
|
+
IMAGE_LINK = "https://ignaciochiazzo.com/static/4c403819b9750c8ad8b20a75308f2a8a/876d5/profile-pic.avif"
|
|
30
|
+
binding.pry
|
|
31
|
+
# message_sent = messages_api.send_text(sender_id: SENDER_ID, recipient_number: RECIPIENT_NUMBER, message: "holis")
|
|
30
32
|
|
|
31
33
|
################# Initialize Client #################
|
|
32
34
|
WhatsappSdk.configure do |config|
|
|
@@ -57,6 +59,7 @@ uploaded_media = medias_api.upload(sender_id: SENDER_ID, file_path: "tmp/whatsap
|
|
|
57
59
|
puts "Uploaded media id: #{uploaded_media.data&.id}"
|
|
58
60
|
|
|
59
61
|
# get a media
|
|
62
|
+
uploaded_media = medias_api.upload(sender_id: SENDER_ID, file_path: "tmp/whatsapp.png", type: "image/png")
|
|
60
63
|
media = medias_api.media(media_id: uploaded_media.data&.id).data
|
|
61
64
|
puts "Media info: #{media.raw_data_response}"
|
|
62
65
|
|
|
@@ -64,9 +67,9 @@ puts "Media info: #{media.raw_data_response}"
|
|
|
64
67
|
download_image = medias_api.download(url: media&.url, file_path: 'tmp/downloaded_whatsapp.png')
|
|
65
68
|
puts "Downloaded: #{download_image.data.success?}"
|
|
66
69
|
|
|
67
|
-
# delete a media
|
|
68
|
-
deleted_media = medias_api.delete(media_id: media&.id)
|
|
69
|
-
puts "Deleted: #{deleted_media.data.success?}"
|
|
70
|
+
# # delete a media
|
|
71
|
+
# deleted_media = medias_api.delete(media_id: media&.id)
|
|
72
|
+
# puts "Deleted: #{deleted_media.data.success?}"
|
|
70
73
|
|
|
71
74
|
############################## Messages API ##############################
|
|
72
75
|
|
|
@@ -205,3 +208,8 @@ response_with_json = messages_api.send_template(
|
|
|
205
208
|
]
|
|
206
209
|
)
|
|
207
210
|
puts response_with_json
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
# # delete a media
|
|
214
|
+
deleted_media = medias_api.delete(media_id: media&.id)
|
|
215
|
+
puts "Deleted: #{deleted_media.data.success?}"
|
data/lib/version.rb
CHANGED
|
@@ -7,17 +7,6 @@ module WhatsappSdk
|
|
|
7
7
|
# end
|
|
8
8
|
#
|
|
9
9
|
# The gem have access to the client through WhatsappSdk.configuration.client
|
|
10
|
-
|
|
11
|
-
class << self
|
|
12
|
-
def configuration
|
|
13
|
-
@configuration ||= Configuration.new
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def configure
|
|
17
|
-
yield(configuration)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
10
|
class Configuration
|
|
22
11
|
attr_accessor :access_token
|
|
23
12
|
|
data/lib/whatsapp_sdk.rb
CHANGED
|
@@ -1,38 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
require "zeitwerk"
|
|
4
|
+
loader = Zeitwerk::Loader.for_gem
|
|
5
|
+
loader.setup # ready!
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
module WhatsappSdk
|
|
8
|
+
class << self
|
|
9
|
+
def configuration
|
|
10
|
+
@configuration ||= Configuration.new
|
|
11
|
+
end
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
require_relative "whatsapp_sdk/api/responses/data_response"
|
|
18
|
-
require_relative "whatsapp_sdk/api/responses/read_message_data_response"
|
|
19
|
-
require_relative "whatsapp_sdk/api/responses/media_data_response"
|
|
20
|
-
require_relative "whatsapp_sdk/api/responses/success_response"
|
|
21
|
-
require_relative "whatsapp_sdk/api/responses/error_response"
|
|
22
|
-
|
|
23
|
-
# Resources
|
|
24
|
-
require_relative "whatsapp_sdk/resource/address"
|
|
25
|
-
require_relative "whatsapp_sdk/resource/button_parameter"
|
|
26
|
-
require_relative "whatsapp_sdk/resource/component"
|
|
27
|
-
require_relative "whatsapp_sdk/resource/contact_response"
|
|
28
|
-
require_relative "whatsapp_sdk/resource/contact"
|
|
29
|
-
require_relative "whatsapp_sdk/resource/currency"
|
|
30
|
-
require_relative "whatsapp_sdk/resource/date_time"
|
|
31
|
-
require_relative "whatsapp_sdk/resource/email"
|
|
32
|
-
require_relative "whatsapp_sdk/resource/media"
|
|
33
|
-
require_relative "whatsapp_sdk/resource/message"
|
|
34
|
-
require_relative "whatsapp_sdk/resource/name"
|
|
35
|
-
require_relative "whatsapp_sdk/resource/org"
|
|
36
|
-
require_relative "whatsapp_sdk/resource/parameter_object"
|
|
37
|
-
require_relative "whatsapp_sdk/resource/phone_number"
|
|
38
|
-
require_relative "whatsapp_sdk/resource/url"
|
|
13
|
+
def configure
|
|
14
|
+
yield(configuration)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
data/whatsapp_sdk.gemspec
CHANGED
|
@@ -45,5 +45,6 @@ Gem::Specification.new do |spec|
|
|
|
45
45
|
spec.add_dependency("faraday", "~> 2.3.0")
|
|
46
46
|
spec.add_dependency("faraday-multipart", "~> 1.0.4")
|
|
47
47
|
spec.add_dependency("oj", "~> 3.13.13")
|
|
48
|
+
spec.add_dependency("zeitwerk", "~> 2.6.0")
|
|
48
49
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
49
50
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: whatsapp_sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ignacio-chiazzo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-07-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -94,6 +94,20 @@ dependencies:
|
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: 3.13.13
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: zeitwerk
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 2.6.0
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 2.6.0
|
|
97
111
|
description: |2
|
|
98
112
|
Use the Ruby Whatsapp SDK to comunicate with Whatsapp API using the Cloud API.
|
|
99
113
|
Create bots to send and receive messages using the Whatsapp SDK in a few minutes.
|
|
@@ -104,6 +118,9 @@ extensions: []
|
|
|
104
118
|
extra_rdoc_files: []
|
|
105
119
|
files:
|
|
106
120
|
- ".circleci/config.yml"
|
|
121
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
122
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
123
|
+
- ".github/workflows/codeql-analysis.yml"
|
|
107
124
|
- ".github/workflows/dependency-review.yml"
|
|
108
125
|
- ".github/workflows/ruby.yml"
|
|
109
126
|
- ".gitignore"
|