zalo-api 0.1.0 → 0.1.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/Gemfile.lock +1 -1
- data/lib/zalo_api.rb +1 -1
- data/lib/zalo_api/client.rb +1 -0
- data/lib/zalo_api/oa.rb +4 -24
- data/lib/zalo_api/offical_account/information.rb +111 -0
- data/lib/zalo_api/offical_account/message.rb +24 -0
- data/lib/zalo_api/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcc02321e2fdf4f94282f384a457d8440e867577fb4348b4f57f0567750fac93
|
4
|
+
data.tar.gz: 5615c6cbb03212f65edc4a812ef0302e04a15d85b0c211fc91f2dcd808691cb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daad847ca6eb85c76a7b01513177f1d128420d785cbe3c1cc2ac468787aeaf94845fbbfe6d03980922e90f378fd0c24d6999fb6ede4dbb0bb592cb847c53ae54
|
7
|
+
data.tar.gz: 9a8db712713d26f01c16393a46efac3b60c1ebb655b709d27d6aca74a5a527e0fc4f4e13446983fe895e6b955fe8daf518e3f08643e68eeb5d991168035b1cd1
|
data/Gemfile.lock
CHANGED
data/lib/zalo_api.rb
CHANGED
data/lib/zalo_api/client.rb
CHANGED
@@ -2,6 +2,7 @@ require 'faraday'
|
|
2
2
|
|
3
3
|
require 'zalo_api/version'
|
4
4
|
require 'zalo_api/configuration'
|
5
|
+
require 'zalo_api/oa'
|
5
6
|
require 'zalo_api/middleware/request/encode_json'
|
6
7
|
require 'zalo_api/middleware/request/url_based_access_token'
|
7
8
|
require 'zalo_api/middleware/response/sanitize_response'
|
data/lib/zalo_api/oa.rb
CHANGED
@@ -1,31 +1,11 @@
|
|
1
1
|
require 'zalo_api/resource'
|
2
|
+
require 'zalo_api/offical_account/information'
|
3
|
+
require 'zalo_api/offical_account/message'
|
2
4
|
|
3
5
|
module ZaloAPI
|
4
6
|
# API for Offical Account
|
5
7
|
class OA < Resource
|
6
|
-
|
7
|
-
|
8
|
-
@client.connection.get "#{base_url}/oa/getoa"
|
9
|
-
end
|
10
|
-
|
11
|
-
# Get a list of followers
|
12
|
-
# @param [Integer] offset Start position in the list of people followers
|
13
|
-
# @param [Integer] count Number of follower people want to take
|
14
|
-
# @return [Hash] List user_id
|
15
|
-
# {
|
16
|
-
# "error": int,
|
17
|
-
# "message": String,
|
18
|
-
# "data": {
|
19
|
-
# "total": int,
|
20
|
-
# "followers": [
|
21
|
-
# {
|
22
|
-
# "user_id": String
|
23
|
-
# },...
|
24
|
-
# ]
|
25
|
-
# }
|
26
|
-
# }
|
27
|
-
def followers(offset: 0, count: 5)
|
28
|
-
@client.connection.get "#{base_url}/oa/getfollowers", { data: { offset: offset, count: count }.to_json }
|
29
|
-
end
|
8
|
+
include ZaloAPI::OfficalAccount::Information
|
9
|
+
include ZaloAPI::OfficalAccount::Message
|
30
10
|
end
|
31
11
|
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
module ZaloAPI
|
2
|
+
module OfficalAccount
|
3
|
+
module Information
|
4
|
+
# Get Offical Account profile
|
5
|
+
def me
|
6
|
+
@client.connection.get "#{base_url}/oa/getoa"
|
7
|
+
end
|
8
|
+
|
9
|
+
# Get a list of followers
|
10
|
+
#
|
11
|
+
# @param [Integer] offset Start position in the list of people followers
|
12
|
+
# @param [Integer] count Number of follower people want to take
|
13
|
+
# @return [Faraday::Response] List user_id
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# res = ZaloAPI::OA.new(client).followers
|
17
|
+
# res.body
|
18
|
+
# {
|
19
|
+
# "error": int,
|
20
|
+
# "message": String,
|
21
|
+
# "data": {
|
22
|
+
# "total": int,
|
23
|
+
# "followers": [
|
24
|
+
# {
|
25
|
+
# "user_id": String
|
26
|
+
# },...
|
27
|
+
# ]
|
28
|
+
# }
|
29
|
+
# }
|
30
|
+
def followers(offset = 0, count = 5)
|
31
|
+
param = { offset: offset, count: count }
|
32
|
+
@client.connection.get "#{base_url}/oa/getfollowers", { data: param.to_json }
|
33
|
+
end
|
34
|
+
|
35
|
+
# Get a list of the most recent messages
|
36
|
+
def recent_chat(offset = 0, count = 5)
|
37
|
+
param = { offset: offset, count: count }
|
38
|
+
@client.connection.get "#{base_url}/oa/listrecentchat", { data: param.to_json }
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get profile of follower
|
42
|
+
#
|
43
|
+
# @param [String] user_id Support user_id or phone with country code (ex: 84)
|
44
|
+
# @example
|
45
|
+
# conn.get_user_profile('84123456789')
|
46
|
+
# {
|
47
|
+
# "error": int,
|
48
|
+
# "message": String,
|
49
|
+
# "data": {
|
50
|
+
# "user_gender": int,
|
51
|
+
# "user_id": Long,
|
52
|
+
# "user_id_by_app": Long,
|
53
|
+
# "avatar": String,
|
54
|
+
# "avatars": {
|
55
|
+
# "120": String,
|
56
|
+
# "240": String
|
57
|
+
# },
|
58
|
+
# "display_name": String,
|
59
|
+
# "birth_date": int,
|
60
|
+
# "shared_info": String,
|
61
|
+
# "tags_and_notes_info": {
|
62
|
+
# "tag_names": Array,
|
63
|
+
# "notes": Array
|
64
|
+
# }
|
65
|
+
# }
|
66
|
+
# }
|
67
|
+
def get_user_profile(user_id)
|
68
|
+
@client.connection.get "#{base_url}/oa/getprofile", { data: { user_id: user_id }.to_json }
|
69
|
+
end
|
70
|
+
|
71
|
+
# Get a list of messages with interested people
|
72
|
+
#
|
73
|
+
# @param [String] user_id
|
74
|
+
# @param [Integer] offset
|
75
|
+
# @param [Integer] count
|
76
|
+
# @return [Faraday::Response]
|
77
|
+
#
|
78
|
+
# @example
|
79
|
+
# res = conn.get_conversation_with_user('2512523625412515')
|
80
|
+
# res.body
|
81
|
+
# {
|
82
|
+
# "error": int,
|
83
|
+
# "message": String,
|
84
|
+
# "data": [
|
85
|
+
# {
|
86
|
+
# "msg_id": String,
|
87
|
+
# "src": int,
|
88
|
+
# "time": int,
|
89
|
+
# "type": String,
|
90
|
+
# "message": String,
|
91
|
+
# "links": JsonObject,
|
92
|
+
# "thumb": String,
|
93
|
+
# "url": String,
|
94
|
+
# "description": String,
|
95
|
+
# "from_id": Long,
|
96
|
+
# "to_id": Long,
|
97
|
+
# "from_display_name": "Huỳnh Hồng Hiển",
|
98
|
+
# "from_avatar": String,
|
99
|
+
# "to_display_name": String,
|
100
|
+
# "to_avatar": String,
|
101
|
+
# "location": String
|
102
|
+
# },...
|
103
|
+
# ]
|
104
|
+
# }
|
105
|
+
def get_conversation_with_user(user_id, offset = 0, count = 5)
|
106
|
+
param = { user_id: user_id, offset: offset, count: count }
|
107
|
+
@client.connection.get "#{base_url}/oa/conversation", { data: param.to_json }
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module ZaloAPI::OfficalAccount
|
2
|
+
module Message
|
3
|
+
# Send message to user_id
|
4
|
+
# @param [String] user_id
|
5
|
+
# @param [String] message
|
6
|
+
def send_text_message(user_id, message)
|
7
|
+
execute(user_id, message)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def execute(user_id, text, attachment = {})
|
13
|
+
payload = {
|
14
|
+
recipient: { user_id: user_id },
|
15
|
+
message: {
|
16
|
+
text: text,
|
17
|
+
attachment: attachment
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
@client.connection.post "#{base_url}/oa/message", payload
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/zalo_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zalo-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Huy Hùng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -123,6 +123,8 @@ files:
|
|
123
123
|
- lib/zalo_api/middleware/response/parse_json.rb
|
124
124
|
- lib/zalo_api/middleware/response/sanitize_response.rb
|
125
125
|
- lib/zalo_api/oa.rb
|
126
|
+
- lib/zalo_api/offical_account/information.rb
|
127
|
+
- lib/zalo_api/offical_account/message.rb
|
126
128
|
- lib/zalo_api/resource.rb
|
127
129
|
- lib/zalo_api/version.rb
|
128
130
|
- zalo-api.gemspec
|