tim_sdk 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +1 -1
- data/README.md +159 -1
- data/lib/tim_sdk/api.rb +1 -1
- data/lib/tim_sdk/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7cbd2bbc3b9aa2b89b6b05560ff1f43fa2bead8b14147a96201c9bef8882e2d5
|
4
|
+
data.tar.gz: ab03db61a147d809b00965cf5ed9f33cd2389f62213aa85726df78c9ddbe42af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d00e806e56a05e958c3063e1b280d10f46d1cea2bd610d6d29db6d932491b4e47c71b77b6422a893aad20a076dd4bdc40c301b1075d6e3af50e0b50c24edbdf2
|
7
|
+
data.tar.gz: b0c110e06d0a991e114f23496475bce6fb823f71ab8655d92b9a4f0409fca25863451f79f6e3b77600db3e522e0479d7b8d199b3636603f963d580066a1c9494
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1 +1,159 @@
|
|
1
|
-
# TimSdk
|
1
|
+
# TimSdk
|
2
|
+
|
3
|
+
[腾讯云即时通信IM](https://cloud.tencent.com/product/im) Ruby SDK。提供登录签名和部分常用的 API 接口。已经完成的功能:
|
4
|
+
|
5
|
+
- [x] 用户登录即时通信签名
|
6
|
+
- [x] 服务端计算 UserSig
|
7
|
+
|
8
|
+
- [x] 账号管理
|
9
|
+
- [x] 导入单个账号
|
10
|
+
- [x] 导入多个帐号
|
11
|
+
- [x] 删除帐号
|
12
|
+
- [x] 查询帐号
|
13
|
+
- [x] 失效帐号登录态
|
14
|
+
- [x] 查询帐号在线状态
|
15
|
+
|
16
|
+
- [x] 资料管理
|
17
|
+
- [x] 设置资料
|
18
|
+
- [x] 拉取资料
|
19
|
+
|
20
|
+
- [x] 运营管理
|
21
|
+
- [x] 拉取运营数据
|
22
|
+
- [x] 下载消息记录
|
23
|
+
- [x] 获取服务器 IP 地址
|
24
|
+
|
25
|
+
## Installation
|
26
|
+
|
27
|
+
Add this line to your application's Gemfile:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
gem 'tim_sdk'
|
31
|
+
```
|
32
|
+
|
33
|
+
And then execute:
|
34
|
+
|
35
|
+
$ bundle install
|
36
|
+
|
37
|
+
Or install it yourself as:
|
38
|
+
|
39
|
+
$ gem install tim_sdk
|
40
|
+
|
41
|
+
## Usage
|
42
|
+
|
43
|
+
配置参数
|
44
|
+
```ruby
|
45
|
+
TimSdk.configure do |config|
|
46
|
+
config.app_id = 'you app id'
|
47
|
+
config.admin_account = 'you admin account'
|
48
|
+
config.app_key = 'you app key'
|
49
|
+
end
|
50
|
+
```
|
51
|
+
|
52
|
+
生成UserSig
|
53
|
+
```ruby
|
54
|
+
TimSdk::Sign.signature('10001')
|
55
|
+
#=> eJyrVgrxCdYrzkxXslJQ8jA0dkoN99LOTXNONrHwca0K8Qmv0NY3zqxICfU3zAqscvMqLcxPNHYyLrdV0lEAa02tKMgsSgXqtjAzMTCAChanZCcWFGSmgAytzC9VAHIUgDyobFlqEUjCSM8AJlKSmQsywtDMwMDQ1MTcwgQqnpmSmleSmZYJ0WBoAJRWqgUASukybQ__
|
56
|
+
TimSdk::Sign.signature('10001', 7 * 24 * 60 * 60)
|
57
|
+
#=> eJyrVgrxCdYrzkxXslJQ8jA0dkoN99LOTXNONrHwca0K8Qmv0NY3zqxICfU3zAqscvMqLcxPNHYyLrdV0lEAa02tKMgsSgXqtjAzMTCAChanZCcWFGSmgAytzC9VAHIUgDyobFlqEUjCSM8AJlKSmQsywtDMwMDQ1MTcwgQqnpmSmleSmZYJ0WBoAJRWqgUASukybQ__
|
58
|
+
```
|
59
|
+
|
60
|
+
导入单个账号
|
61
|
+
```ruby
|
62
|
+
TimSdk::Api.invoke_account_import('foo')
|
63
|
+
#=> {:ActionStatus=>"OK", :ErrorCode=>0, :ErrorInfo=>""}
|
64
|
+
```
|
65
|
+
|
66
|
+
导入多个帐号
|
67
|
+
```ruby
|
68
|
+
TimSdk::Api.invoke_multi_account_import(%w[foo bar])
|
69
|
+
#=> {:ActionStatus=>"OK", :ErrorCode=>0, :ErrorInfo=>"", :FailAccounts=>[]}
|
70
|
+
```
|
71
|
+
|
72
|
+
删除帐号
|
73
|
+
```ruby
|
74
|
+
TimSdk::Api.invoke_account_delete(%w[foo bar])
|
75
|
+
#=> {:ActionStatus=>"OK", :ErrorCode=>0, :ErrorInfo=>"", :ResultItem=>[{:ResultCode=>0, :ResultInfo=>"", :UserID=>"bar"}, {:ResultCode=>0, :ResultInfo=>"", :UserID=>"foo"}]}
|
76
|
+
```
|
77
|
+
|
78
|
+
查询帐号
|
79
|
+
```ruby
|
80
|
+
TimSdk::Api.invoke_account_check(%w[foo bar])
|
81
|
+
#=> {:ActionStatus=>"OK", :ErrorCode=>0, :ErrorInfo=>"", :ResultItem=>[{:AccountStatus=>"Imported", :ResultCode=>0, :ResultInfo=>"", :UserID=>"bar"}, {:AccountStatus=>"Imported", :ResultCode=>0, :ResultInfo=>"", :UserID=>"foo"}]}
|
82
|
+
```
|
83
|
+
|
84
|
+
失效帐号登录态
|
85
|
+
```ruby
|
86
|
+
TimSdk::Api.invoke_kick('foo')
|
87
|
+
#=> {:ActionStatus=>"OK", :ErrorInfo=>"", :ErrorCode=>0}
|
88
|
+
```
|
89
|
+
|
90
|
+
查询帐号在线状态
|
91
|
+
```ruby
|
92
|
+
TimSdk::Api.invoke_query_state(%w[foo bar])
|
93
|
+
#=> {:ActionStatus=>"OK", :ErrorInfo=>"", :ErrorCode=>0, :QueryResult=>[{:To_Account=>"bar", :State=>"Offline", :Status=>"Offline"}, {:To_Account=>"foo", :State=>"Offline", :Status=>"Offline"}]}
|
94
|
+
```
|
95
|
+
|
96
|
+
设置资料
|
97
|
+
```ruby
|
98
|
+
TimSdk::Api.invoke_portrait_set('foo', [
|
99
|
+
{ tag: 'Tag_Profile_IM_Nick', value: 'vincent', },
|
100
|
+
{ tag: 'Tag_Profile_IM_Image', value: 'https://example.com/avatar.png' },
|
101
|
+
])
|
102
|
+
#=> {:ActionStatus=>"OK", :ErrorCode=>0, :ErrorInfo=>"", :ErrorDisplay=>""}
|
103
|
+
```
|
104
|
+
|
105
|
+
拉取资料
|
106
|
+
```ruby
|
107
|
+
TimSdk::Api.invoke_portrait_get(%w[foo bar], %w[Tag_Profile_IM_Nick Tag_Profile_IM_Image])
|
108
|
+
#=> {:UserProfileItem=>[{:To_Account=>"bar", :ResultCode=>0, :ResultInfo=>""}, {:To_Account=>"foo", :ProfileItem=>[{:Tag=>"Tag_Profile_IM_Nick", :Value=>"vincent"}, {:Tag=>"Tag_Profile_IM_Image", :Value=>"https://example.com/avatar.png"}], :ResultCode=>0, :ResultInfo=>""}], :CurrentStandardSequence=>0, :ActionStatus=>"OK", :ErrorCode=>0, :ErrorInfo=>"", :ErrorDisplay=>""}
|
109
|
+
```
|
110
|
+
|
111
|
+
拉取运营数据
|
112
|
+
```ruby
|
113
|
+
TimSdk::Api.invoke_fetch_app_info
|
114
|
+
#=> {:ErrorCode=>0, :ErrorInfo=>"OK", :Result=>[{:Date=>"20200914"}, {:Date=>"20200913"}, {:Date=>"20200912"}, {:Date=>"20200911"}, {:Date=>"20200910"}, {:Date=>"20200909"}, {:Date=>"20200908"}, {:Date=>"20200907"}, {:Date=>"20200906"}, {:Date=>"20200905"}, {:Date=>"20200904"}, {:Date=>"20200903"}, {:Date=>"20200902"}, {:Date=>"20200901"}, {:Date=>"20200831"}, {:Date=>"20200830"}, {:Date=>"20200829"}, {:Date=>"20200828"}, {:Date=>"20200827"}, {:Date=>"20200826"}, {:Date=>"20200825"}, {:Date=>"20200824"}, {:Date=>"20200823"}, {:Date=>"20200822"}, {:Date=>"20200821"}, {:Date=>"20200820"}, {:Date=>"20200819"}, {:Date=>"20200818"}, {:Date=>"20200817"}, {:Date=>"20200816"}]}
|
115
|
+
```
|
116
|
+
|
117
|
+
下载消息记录
|
118
|
+
```ruby
|
119
|
+
TimSdk::Api.invoke_fetch_history('C2C', '2020091116')
|
120
|
+
#=> {:ChatType=>"C2C", :MsgTime=>"2020091116", :File=>[{:URL=>"https://download.tim.qq.com/msg_history/4/f5da9cce4789eda2f72511ea89280c42a1292b80.gz", :ExpireTime=>"2020-09-15 15:50:07", :FileSize=>7273, :FileMD5=>"6fde5543bbc4a5aea5e35a64edf0553e", :GzipSize=>1535, :GzipMD5=>"92a00693794328453010e083e8193eed"}], :ActionStatus=>"OK", :ErrorInfo=>"", :ErrorCode=>0}
|
121
|
+
```
|
122
|
+
|
123
|
+
获取服务器 IP 地址
|
124
|
+
```ruby
|
125
|
+
TimSdk::Api.invoke_fetch_ip_list
|
126
|
+
#=> {:ActionStatus=>"OK", :ErrorCode=>0, :IPList=>["101.226.212.0/25", "101.226.233.0/25", "101.89.18.0/25", "101.91.60.0/25", "101.91.69.0/25", "101.91.96.0/25", "106.52.138.0/25", "106.52.142.0/25", "106.52.145.0/25", "106.52.14.0/25", "106.52.148.0/25", "106.52.159.0/25", "106.52.164.0/25", "106.52.165.0/25", "106.52.172.0/25", "106.52.178.0/25", "106.52.180.0/25", "106.52.183.0/25", "106.52.187.0/25", "106.52.190.0/25", "106.52.201.0/25", "106.52.29.0/25", "106.52.32.0/25", "106.53.102.0/25", "106.53.125.0/25", "106.53.203.0/25", "106.53.76.0/25", "106.55.14.0/25", "106.55.15.0/25", "106.55.17.0/25", "106.55.173.0/25", "106.55.18.0/25", "106.55.249.0/25", "106.55.253.0/25", "111.13.35.0/25", "111.161.111.0/25", "111.161.64.0/25", "111.30.138.0/25", "111.30.144.0/25", "111.30.155.0/25", "113.96.237.0/25", "116.128.138.0/25", "116.128.146.0/25", "116.128.160.0/25", "116.128.163.0/25", "117.135.172.0/25", "117.144.244.0/25", "117.184.248.0/25", "118.126.91.0/25", "118.89.30.0/25", "118.89.64.0/25", "119.29.105.0/25", "119.29.130.0/25", "119.29.147.0/25", "119.29.191.0/25", "119.29.72.0/25", "119.29.73.0/25", "119.29.74.0/25", "119.29.77.0/25", "119.45.147.0/25", "119.45.33.0/25", "119.45.41.0/25", "119.45.43.0/25", "119.45.44.0/25", "119.45.46.0/25", "119.45.47.0/25", "120.204.11.0/25", "120.232.21.0/25", "121.51.131.0/25", "121.51.132.0/25", "121.51.141.0/25", "121.51.158.0/25", "121.51.176.0/25", "121.51.74.0/25", "121.51.90.0/25", "123.126.122.0/25", "123.150.174.0/25", "123.151.137.0/25", "123.151.179.0/25", "123.151.190.0/25", "123.151.72.0/25", "123.151.79.0/25", "123.207.31.0/25", "125.39.133.0/25", "129.204.177.0/25", "129.204.186.0/25", "129.204.73.0/25", "129.211.162.0/25", "129.211.163.0/25", "129.211.181.0/25", "129.211.182.0/25", "134.175.142.0/25", "134.175.161.0/25", "134.175.205.0/25", "134.175.227.0/25", "14.18.180.0/25", "157.255.196.0/25", "157.255.243.0/25", "163.177.56.0/25", "180.163.32.0/25", "182.254.21.0/25", "182.254.34.0/25", "182.254.50.0/25", "182.254.51.0/25", "182.254.56.0/25", "182.254.57.0/25", "182.254.78.0/25", "182.254.86.0/25", "183.192.172.0/25", "183.192.173.0/25", "183.192.202.0/25", "183.194.184.0/25", "183.232.125.0/25", "183.232.95.0/25", "183.232.96.0/25", "183.3.225.0/25", "193.112.125.0/25", "193.112.151.0/25", "193.112.153.0/25", "193.112.169.0/25", "203.205.232.0/25", "203.205.254.0/25", "220.249.243.0/25", "223.167.154.0/25", "36.155.230.0/25", "42.194.134.0/25", "42.194.145.0/25", "42.194.168.0/25", "42.194.192.0/25", "42.194.224.0/25", "42.194.225.0/25", "58.247.206.0/25", "58.250.136.0/25", "58.60.9.0/25", "59.36.121.0/25", "59.37.116.0/25", "59.37.97.0/25", "61.151.206.0/25", "81.71.1.0/25", "81.71.3.0/25", "81.71.6.0/25", "182.254.116.116", "162.14.6.247"]}
|
127
|
+
```
|
128
|
+
|
129
|
+
|
130
|
+
## Development
|
131
|
+
|
132
|
+
运行 `rspec` 前请先配置正确的参数
|
133
|
+
```ruby
|
134
|
+
# ./spec/tim_sdk_spec.rb
|
135
|
+
before(:all) do
|
136
|
+
TimSdk.configure do |config|
|
137
|
+
config.app_id = 'you app id'
|
138
|
+
config.admin_account = 'you admin account'
|
139
|
+
config.app_key = 'you app key'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
```
|
143
|
+
|
144
|
+
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.
|
145
|
+
|
146
|
+
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).
|
147
|
+
|
148
|
+
## Contributing
|
149
|
+
|
150
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/JiangYongKang/tim_sdk. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/JiangYongKang/tim_sdk/blob/master/CODE_OF_CONDUCT.md).
|
151
|
+
|
152
|
+
|
153
|
+
## License
|
154
|
+
|
155
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
156
|
+
|
157
|
+
## Code of Conduct
|
158
|
+
|
159
|
+
Everyone interacting in the Test project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/JiangYongKang/tim_sdk/blob/master/CODE_OF_CONDUCT.md).
|
data/lib/tim_sdk/api.rb
CHANGED
@@ -4,7 +4,7 @@ module TimSdk
|
|
4
4
|
class Api
|
5
5
|
|
6
6
|
def self.connection
|
7
|
-
|
7
|
+
Faraday.new('https://console.tim.qq.com', params: {
|
8
8
|
sdkappid: TimSdk.configuration.app_id,
|
9
9
|
identifier: TimSdk.configuration.admin_account,
|
10
10
|
usersig: TimSdk::Sign.signature(TimSdk.configuration.admin_account),
|
data/lib/tim_sdk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tim_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JiangYongKang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: a ruby program to facilitate accessing tim service
|
14
14
|
email:
|