Skip to content

Instantly share code, notes, and snippets.

@3014zhangshuo
Last active March 30, 2021 07:45
Show Gist options
  • Save 3014zhangshuo/3ccf10630eb2c2241ec29922c173d8d0 to your computer and use it in GitHub Desktop.
Save 3014zhangshuo/3ccf10630eb2c2241ec29922c173d8d0 to your computer and use it in GitHub Desktop.
Udesk open api
SETTING = {
email: 'admin@udesk.cn',
api_token: 'ccd6ed3c-1da5-4173-aea3-e8a7ed74f68e',
url_base: 'https://demo.dog.tryudesk.com'
}
SETTING = {
email: 'admin@brazil.udesk.cn',
api_token: '2212c179-bc9e-433c-8cb9-ae6004e64848',
url_base: 'https://udesk-rd-bj-01.udesk.cn'
}
SETTING = {
email: 'jv.xitong@cheilpengtai.com',
api_token: '54e5d934-9e75-4fa5-95d8-87cb46b56a17',
url_base: 'https://1370515.s4.udesk.cn'
}
def agent_monitor_infos(setting = SETTING)
url_base = setting.fetch(:url_base) { raise 'Not set url' }
email = setting.fetch(:email) { raise 'Not set email' }
timestamp = Time.current.to_i
nonce = SecureRandom.hex(10)
sign_version = 'v2'
auth_info = {
email: email,
api_token: setting.fetch(:api_token) { 'Not set api_token' },
timestamp: timestamp,
nonce: nonce,
sign_version: sign_version
}
query = {
email: email,
timestamp: timestamp,
sign: Digest::SHA256.hexdigest(auth_info.values.join('&')),
nonce: nonce,
sign_version: sign_version
}.to_query
"#{url_base}/open_api_v1/agent_monitor_infos?#{query}"
end
def update_customer(setting = SETTING)
url_base = setting.fetch(:url_base) { raise 'Not set url' }
email = setting.fetch(:email) { raise 'Not set email' }
timestamp = Time.current.to_i
nonce = SecureRandom.hex(10)
sign_version = 'v2'
auth_info = {
email: email,
api_token: setting.fetch(:api_token) { 'Not set api_token' },
timestamp: timestamp,
nonce: nonce,
sign_version: sign_version
}
query = {
email: email,
timestamp: timestamp,
sign: Digest::SHA256.hexdigest(auth_info.values.join('&')),
nonce: nonce,
sign_version: sign_version,
type: "cellphone",
content: "17800456677"
}.to_query
"#{url_base}/open_api_v1/customers/update_customer?#{query}"
end
def generate_put_chained_droplists_url(field_id, setting = SETTING)
url_base = setting.fetch(:url_base) { raise 'Not set url' }
email = setting.fetch(:email) { raise 'Not set email' }
timestamp = Time.current.to_i
nonce = SecureRandom.hex(10)
sign_version = 'v2'
auth_info = {
email: email,
api_token: setting.fetch(:api_token) { 'Not set api_token' },
timestamp: timestamp,
nonce: nonce,
sign_version: sign_version
}
query = {
email: email,
timestamp: timestamp,
sign: Digest::SHA256.hexdigest(auth_info.values.join('&')),
nonce: nonce,
sign_version: sign_version
}.to_query
"#{url_base}/open_api_v1/chained_droplists/#{field_id}?#{query}"
end
def generate_ticket_change_logs_url(ticket_id = nil, setting = SETTING)
url_base = setting.fetch(:url_base) { raise 'Not set url' }
email = setting.fetch(:email) { raise 'Not set email' }
timestamp = Time.current.to_i
nonce = SecureRandom.hex(10)
sign_version = 'v2'
auth_info = {
email: email,
api_token: setting.fetch(:api_token) { 'Not set api_token' },
timestamp: timestamp,
nonce: nonce,
sign_version: sign_version
}
query = {
email: email,
timestamp: timestamp,
sign: Digest::SHA256.hexdigest(auth_info.values.join('&')),
nonce: nonce,
sign_version: sign_version
}.to_query
#"#{url_base}/open_api_v1/tickets/#{ticket_id}/change_logs?#{query}"
"#{url_base}/open_api_v1/agents?#{query}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment