Class: TimSdk::Api
- Inherits:
-
Object
- Object
- TimSdk::Api
- Defined in:
- lib/tim_sdk/api.rb
Class Method Summary collapse
- .connection ⇒ Object
-
.invoke_account_check(accounts) ⇒ Object
查询账号.
-
.invoke_account_delete(accounts) ⇒ Object
删除账号.
-
.invoke_account_import(identifier, nick = nil, face_url = nil) ⇒ Object
导入单个帐号.
-
.invoke_admin_msg_withdraw(from_account, to_account, msg_key) ⇒ Object
撤回单聊消息.
-
.invoke_fetch_app_info(fields = []) ⇒ Object
拉取运营数据.
-
.invoke_fetch_history(chat_type, msg_time) ⇒ Object
下载消息记录.
-
.invoke_fetch_ip_list ⇒ Object
获取服务器 IP 地址.
-
.invoke_import_msg(from_account, to_account, msg_random, msg_timestamp, sync_from_old_system, msg_body) ⇒ Object
导入单聊消息.
-
.invoke_kick(identifier) ⇒ Object
失效帐号登录态.
-
.invoke_multi_account_import(accounts) ⇒ Object
导入多个账号.
-
.invoke_portrait_get(accounts, tags) ⇒ Object
拉取资料.
-
.invoke_portrait_set(account, items) ⇒ Object
设置资料.
-
.invoke_query_state(accounts, is_need_detail = 0) ⇒ Object
查询帐号在线状态.
Class Method Details
.connection ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/tim_sdk/api.rb', line 6 def self.connection Faraday.new('https://console.tim.qq.com', params: { sdkappid: TimSdk.configuration.app_id, identifier: TimSdk.configuration.admin_account, usersig: TimSdk::Sign.signature(TimSdk.configuration.admin_account), random: rand(0..4294967295), contenttype: :json }) do |faraday| faraday.response :logger faraday.adapter Faraday.default_adapter end end |
.invoke_account_check(accounts) ⇒ Object
查询账号
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/tim_sdk/api.rb', line 58 def self.invoke_account_check(accounts) response = connection.post('/v4/im_open_login_svc/account_check') do |request| request.body = { :CheckItem => accounts.map do |account| { :UserID => account.to_s } end }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_account_delete(accounts) ⇒ Object
删除账号
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/tim_sdk/api.rb', line 43 def self.invoke_account_delete(accounts) response = connection.post('/v4/im_open_login_svc/account_delete') do |request| request.body = { :DeleteItem => accounts.map do |account| { :UserID => account.to_s } end }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_account_import(identifier, nick = nil, face_url = nil) ⇒ Object
导入单个帐号
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/tim_sdk/api.rb', line 20 def self.invoke_account_import(identifier, nick = nil, face_url = nil) response = connection.post('/v4/im_open_login_svc/account_import') do |request| request_body = { :Identifier => identifier.to_s } request_body.merge!(:Nick => nick) if nick request_body.merge!(:FaceUrl => face_url) if face_url request.body = request_body.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_admin_msg_withdraw(from_account, to_account, msg_key) ⇒ Object
撤回单聊消息
112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/tim_sdk/api.rb', line 112 def self.invoke_admin_msg_withdraw(from_account, to_account, msg_key) response = connection.post('/v4/openim/admin_msgwithdraw') do |request| request.body = { :From_Account => from_account.to_s, :To_Account => to_account.to_s, :MsgKey => msg_key.to_s, }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_fetch_app_info(fields = []) ⇒ Object
拉取运营数据
154 155 156 157 158 159 160 161 162 |
# File 'lib/tim_sdk/api.rb', line 154 def self.invoke_fetch_app_info(fields = []) response = connection.post('/v4/openconfigsvr/getappinfo') do |request| request.body = { :RequestField => fields }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_fetch_history(chat_type, msg_time) ⇒ Object
下载消息记录
165 166 167 168 169 170 171 172 173 174 |
# File 'lib/tim_sdk/api.rb', line 165 def self.invoke_fetch_history(chat_type, msg_time) response = connection.post('/v4/open_msg_svc/get_history') do |request| request.body = { :ChatType => chat_type, :MsgTime => msg_time, }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_fetch_ip_list ⇒ Object
获取服务器 IP 地址
177 178 179 180 181 182 183 |
# File 'lib/tim_sdk/api.rb', line 177 def self.invoke_fetch_ip_list response = connection.post('/v4/ConfigSvc/GetIPList') do |request| request.body = {}.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_import_msg(from_account, to_account, msg_random, msg_timestamp, sync_from_old_system, msg_body) ⇒ Object
导入单聊消息
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/tim_sdk/api.rb', line 96 def self.invoke_import_msg(from_account, to_account, msg_random, , sync_from_old_system, msg_body) response = connection.post('/v4/openim/importmsg') do |request| request.body = { :SyncFromOldSystem => sync_from_old_system, :From_Account => from_account.to_s, :To_Account => to_account.to_s, :MsgRandom => msg_random.to_i, :MsgTimeStamp => .to_i, :MsgBody => msg_body }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_kick(identifier) ⇒ Object
失效帐号登录态
73 74 75 76 77 78 79 80 81 |
# File 'lib/tim_sdk/api.rb', line 73 def self.invoke_kick(identifier) response = connection.post('/v4/im_open_login_svc/kick') do |request| request.body = { :Identifier => identifier.to_s }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_multi_account_import(accounts) ⇒ Object
导入多个账号
32 33 34 35 36 37 38 39 40 |
# File 'lib/tim_sdk/api.rb', line 32 def self.invoke_multi_account_import(accounts) response = connection.post('/v4/im_open_login_svc/multiaccount_import') do |request| request.body = { :Accounts => accounts.map(&:to_s) }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_portrait_get(accounts, tags) ⇒ Object
拉取资料
142 143 144 145 146 147 148 149 150 151 |
# File 'lib/tim_sdk/api.rb', line 142 def self.invoke_portrait_get(accounts, ) response = connection.post('/v4/profile/portrait_get') do |request| request.body = { :To_Account => accounts.map(&:to_s), :TagList => .map(&:to_s), }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_portrait_set(account, items) ⇒ Object
设置资料
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/tim_sdk/api.rb', line 125 def self.invoke_portrait_set(account, items) response = connection.post('/v4/profile/portrait_set') do |request| request.body = { :From_Account => account.to_s, :ProfileItem => items.map do |item| { :Tag => item[:tag], :Value => item[:value], } end }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |
.invoke_query_state(accounts, is_need_detail = 0) ⇒ Object
查询帐号在线状态
84 85 86 87 88 89 90 91 92 93 |
# File 'lib/tim_sdk/api.rb', line 84 def self.invoke_query_state(accounts, is_need_detail = 0) response = connection.post('/v4/openim/querystate') do |request| request.body = { :To_Account => accounts.map(&:to_s), :IsNeedDetail => is_need_detail }.to_json end raise TimServerError, "Response Status: #{response.status}" unless response.success? JSON.parse(response.body, symbolize_names: true) if response.success? end |