身份验证
POST启用/禁用OAuth
https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供者}
启用/禁用使用用户的提供商帐户登录现有的Toggl帐户。
- 旋度
- 去
- Ruby
- JavaScript
- Python
- 生锈
旋度-X POST https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供者}\
- h“application / json内容类型:\
- d{“代码”:“字符串”,“启用”:“布尔”,“令牌”:“字符串”}”\
- u<电子邮件>:<密码>
字节,犯错:=json.元帅('{“代码”:“字符串”,“启用”:“布尔”,“令牌”:“字符串”}')
如果犯错! =零{
打印(犯错)
}
要求的事情,犯错:=http.NewRequest(http.MethodPost,
“https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供商}”,字节.NewBuffer(字节))
如果犯错! =零{
打印(犯错)
}
要求的事情.头.集(“内容类型”,“application / json;charset = utf - 8”)
要求的事情.SetBasicAuth(“< >邮件”,“<密码>”)
客户端:=&http.客户端{}
分别地,犯错:=客户端.做(要求的事情)
如果犯错! =零{
打印(犯错)
}
推迟分别地.身体.关闭()
身体,犯错:=ioutil.ReadAll(分别地.身体)
如果犯错! =零{
打印(犯错)
}
fmt.打印(字符串(身体))
需要“net/http”
需要“uri”
需要json的
uri=URI(“https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供商}”)
http=网::HTTP.新(uri.宿主,uri.港口)
要求的事情=网::HTTP::帖子.新(uri.路径)
要求的事情[“内容类型”]=“application / json”
要求的事情.身体={“代码”:“字符串”,“启用”:“布尔”,“令牌”:“字符串”}.to_json
请求.basic_auth“电子邮件> <”,' <密码> '
res=http.请求(要求的事情)
把JSON.解析(res.身体)
获取(“https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供商}”,{
方法:“职位”,
身体:{“代码”:“字符串”,“启用”:“布尔”,“令牌”:“字符串”},
头:{
“内容类型”:“application / json”,
“授权”:`基本$ {base64.编码(<电子邮件>:<密码>)}`
},
})
.然后((分别地)= >分别地.json())
.然后((json)= >{
控制台.日志(json);
})
.抓(犯错= >控制台.错误(犯错));
进口请求
从base64进口b64encode
数据=请求.帖子(“https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供商}”,json={“代码”:“字符串”,“启用”:“布尔”,“令牌”:“字符串”}”,头={“内容类型”:“application / json”,“授权”:“基本% s”%b64encode(b”<邮件>:<密码> ").解码(“ascii”)})
打印(数据.json())
走读生箱东京;
走读生箱serde_json;
使用reqwest::{客户端};
使用reqwest::头::{CONTENT_TYPE};
#(东京::主要)
异步fn主要()->结果<(),reqwest::错误>{
让客户端=客户端::新().basic_auth(“< >邮件”,“<密码>”);
让json=客户端.请求(方法::帖子,“https://api.track.www.lizkeller.com/api/v9/me/enable_oauth/{提供商}”.to_string())
.json(&serde_json::json !({“代码”:“字符串”,“启用”:“布尔”,“令牌”:“字符串”}))
.头(CONTENT_TYPE,“application / json”)
.发送()
.等待?
.json()
.等待?;
println !(“{:# ?}”,json);
好吧(())
}
参数
查询
的名字 | 类型 | 要求 | 描述 |
---|---|---|---|
错误 | 字符串 | 假 | 错误 |
身体
的名字 | 类型 | 描述 |
---|---|---|
代码 | 字符串 | OAuth代码 |
启用 | 布尔 | 启用或禁用OAuth |
令牌 | 字符串 | OAuth令牌 |
响应
- 200
- 400
成功操作。
可能的错误消息:
*未知提供者
*缺少“enabled”字段
*缺少“代码”或“标记”字段
*用户已经有来自此提供程序的关联oauth帐户
*此oauth帐户已经与toggl帐户相关联
帖子ResetToken
https://api.track.www.lizkeller.com/api/v9/me/reset_token
重置当前用户的API令牌。
- 旋度
- 去
- Ruby
- JavaScript
- Python
- 生锈
旋度-X POST https://api.track.www.lizkeller.com/api/v9/me/reset_token\
- h“application / json内容类型:\
- u<电子邮件>:<密码>
要求的事情,犯错:=http.NewRequest(http.MethodPost,
“https://api.track.www.lizkeller.com/api/v9/me/reset_token”)
如果犯错! =零{
打印(犯错)
}
要求的事情.头.集(“内容类型”,“application / json;charset = utf - 8”)
要求的事情.SetBasicAuth(“< >邮件”,“<密码>”)
客户端:=&http.客户端{}
分别地,犯错:=客户端.做(要求的事情)
如果犯错! =零{
打印(犯错)
}
推迟分别地.身体.关闭()
身体,犯错:=ioutil.ReadAll(分别地.身体)
如果犯错! =零{
打印(犯错)
}
fmt.打印(字符串(身体))
需要“net/http”
需要“uri”
需要json的
uri=URI(“https://api.track.www.lizkeller.com/api/v9/me/reset_token”)
http=网::HTTP.新(uri.宿主,uri.港口)
要求的事情=网::HTTP::帖子.新(uri.路径)
要求的事情[“内容类型”]=“application / json”
请求.basic_auth“电子邮件> <”,' <密码> '
res=http.请求(要求的事情)
把JSON.解析(res.身体)
获取(“https://api.track.www.lizkeller.com/api/v9/me/reset_token”,{
方法:“职位”,
头:{
“内容类型”:“application / json”,
“授权”:`基本$ {base64.编码(<电子邮件>:<密码>)}`
},
})
.然后((分别地)= >分别地.json())
.然后((json)= >{
控制台.日志(json);
})
.抓(犯错= >控制台.错误(犯错));
进口请求
从base64进口b64encode
数据=请求.帖子(“https://api.track.www.lizkeller.com/api/v9/me/reset_token”,头={“内容类型”:“application / json”,“授权”:“基本% s”%b64encode(b”<邮件>:<密码> ").解码(“ascii”)})
打印(数据.json())
走读生箱东京;
走读生箱serde_json;
使用reqwest::{客户端};
使用reqwest::头::{CONTENT_TYPE};
#(东京::主要)
异步fn主要()->结果<(),reqwest::错误>{
让客户端=客户端::新().basic_auth(“< >邮件”,“<密码>”);
让json=客户端.请求(方法::帖子,“https://api.track.www.lizkeller.com/api/v9/me/reset_token”.to_string())
.头(CONTENT_TYPE,“application / json”)
.发送()
.等待?
.json()
.等待?;
println !(“{:# ?}”,json);
好吧(())
}
响应
- 200
- 403
- 500
成功操作。
用户无权访问此资源。
内部服务器错误
创建会话
https://api.track.www.lizkeller.com/api/v9/me/sessions
创建一个会话,并在响应头中设置一个cookie,可用于API请求中的身份验证
- 旋度
- 去
- Ruby
- JavaScript
- Python
- 生锈
旋度-X POST https://api.track.www.lizkeller.com/api/v9/me/sessions\
- h“application / json内容类型:\
- d”{“remember_me”:“布尔”}’
字节,犯错:=json.元帅('{“remember_me”:“布尔”}')
如果犯错! =零{
打印(犯错)
}
要求的事情,犯错:=http.NewRequest(http.MethodPost,
“https://api.track.www.lizkeller.com/api/v9/me/sessions”,字节.NewBuffer(字节))
如果犯错! =零{
打印(犯错)
}
要求的事情.头.集(“内容类型”,“application / json;charset = utf - 8”)
客户端:=&http.客户端{}
分别地,犯错:=客户端.做(要求的事情)
如果犯错! =零{
打印(犯错)
}
推迟分别地.身体.关闭()
身体,犯错:=ioutil.ReadAll(分别地.身体)
如果犯错! =零{
打印(犯错)
}
fmt.打印(字符串(身体))
需要“net/http”
需要“uri”
需要json的
uri=URI(“https://api.track.www.lizkeller.com/api/v9/me/sessions”)
http=网::HTTP.新(uri.宿主,uri.港口)
要求的事情=网::HTTP::帖子.新(uri.路径)
要求的事情[“内容类型”]=“application / json”
要求的事情.身体={“remember_me”:“布尔”}.to_json
res=http.请求(要求的事情)
把JSON.解析(res.身体)
获取(“https://api.track.www.lizkeller.com/api/v9/me/sessions”,{
方法:“职位”,
身体:{“remember_me”:“布尔”},
头:{
“内容类型”:“application / json”
},
})
.然后((分别地)= >分别地.json())
.然后((json)= >{
控制台.日志(json);
})
.抓(犯错= >控制台.错误(犯错));
进口请求
从base64进口b64encode
数据=请求.帖子(“https://api.track.www.lizkeller.com/api/v9/me/sessions”,json=”{“remember_me”:“布尔”}’,头={“内容类型”:“application / json”})
打印(数据.json())
走读生箱东京;
走读生箱serde_json;
使用reqwest::{客户端};
使用reqwest::头::{CONTENT_TYPE};
#(东京::主要)
异步fn主要()->结果<(),reqwest::错误>{
让客户端=客户端::新();
让json=客户端.请求(方法::帖子,“https://api.track.www.lizkeller.com/api/v9/me/sessions”.to_string())
.json(&serde_json::json !({“remember_me”:“布尔”}))
.头(CONTENT_TYPE,“application / json”)
.发送()
.等待?
.json()
.等待?;
println !(“{:# ?}”,json);
好吧(())
}
参数
身体
的名字 | 类型 | 描述 |
---|---|---|
remember_me | 布尔 | 如果为真,会话cookie将在24小时内有效,否则直到浏览器关闭 |
响应
- 200
- 400
{
“api_token”:{
“描述”:"如果为空则省略",
“类型”:“字符串”
},
“电子邮件”:{
“类型”:“字符串”,
“格式”:“电子邮件”
},
“fullname”:{
“类型”:“字符串”
},
“id”:{
“类型”:“整数”
},
“时区”:{
“类型”:“字符串”
}
}
无效的JSON输入
删除会话
https://api.track.www.lizkeller.com/api/v9/me/sessions
删除用于验证当前请求的会话
- 旋度
- 去
- Ruby
- JavaScript
- Python
- 生锈
旋度-X DELETE https://api.track.www.lizkeller.com/api/v9/me/sessions\
- h“application / json内容类型:
要求的事情,犯错:=http.NewRequest(http.MethodPut,
“https://api.track.www.lizkeller.com/api/v9/me/sessions”)
如果犯错! =零{
打印(犯错)
}
要求的事情.头.集(“内容类型”,“application / json;charset = utf - 8”)
客户端:=&http.客户端{}
分别地,犯错:=客户端.做(要求的事情)
如果犯错! =零{
打印(犯错)
}
推迟分别地.身体.关闭()
身体,犯错:=ioutil.ReadAll(分别地.身体)
如果犯错! =零{
打印(犯错)
}
fmt.打印(字符串(身体))
需要“net/http”
需要“uri”
需要json的
uri=URI(“https://api.track.www.lizkeller.com/api/v9/me/sessions”)
http=网::HTTP.新(uri.宿主,uri.港口)
要求的事情=网::HTTP::删除.新(uri.路径)
要求的事情[“内容类型”]=“application / json”
res=http.请求(要求的事情)
把JSON.解析(res.身体)
获取(“https://api.track.www.lizkeller.com/api/v9/me/sessions”,{
方法:“删除”,
头:{
“内容类型”:“application / json”
},
})
.然后((分别地)= >分别地.json())
.然后((json)= >{
控制台.日志(json);
})
.抓(犯错= >控制台.错误(犯错));
进口请求
从base64进口b64encode
数据=请求.删除(“https://api.track.www.lizkeller.com/api/v9/me/sessions”,头={“内容类型”:“application / json”})
打印(数据.json())
走读生箱东京;
走读生箱serde_json;
使用reqwest::{客户端};
使用reqwest::头::{CONTENT_TYPE};
#(东京::主要)
异步fn主要()->结果<(),reqwest::错误>{
让客户端=客户端::新();
让json=客户端.请求(方法::删除,“https://api.track.www.lizkeller.com/api/v9/me/sessions”.to_string())
.头(CONTENT_TYPE,“application / json”)
.发送()
.等待?
.json()
.等待?;
println !(“{:# ?}”,json);
好吧(())
}
响应
- 200
- 500
内部服务器错误
注册后
https://api.track.www.lizkeller.com/api/v9/signup
以新用户身份注册。
- 旋度
- 去
- Ruby
- JavaScript
- Python
- 生锈
旋度-X POST https://api.track.www.lizkeller.com/api/v9/signup\
- h“application / json内容类型:\
- d”{“代码”:“字符串”,“country_id”:“整数”、“created_with”:“弦”、“电子邮件”:“弦”、“full_name”:“弦”、“google_access_token”:“弦”、“invitation_code”:“字符串”,“密码”:“弦”、“提供者”:“弦”、“时区”:“字符串”,“令牌”:“弦”、“tos_accepted”:“布尔”、“工作区”:{“initial_pricing_plan”:“整数”、“名称”:“字符串”}}”
字节,犯错:=json.元帅('{“代码”:“字符串”,“country_id”:“整数”,“created_with”:“字符串”,“电子邮件”:“字符串”,“full_name”:“字符串”,“google_access_token”:“字符串”,“invitation_code”:“字符串”,“密码”:“字符串”,“供应商”:“字符串”,“时区”:“字符串”,“令牌”:“字符串”,“tos_accepted”:“布尔”,“工作区”:{“initial_pricing_plan”:“整数”,“名称”:“字符串”}}')
如果犯错! =零{
打印(犯错)
}
要求的事情,犯错:=http.NewRequest(http.MethodPost,
“https://api.track.www.lizkeller.com/api/v9/signup”,字节.NewBuffer(字节))
如果犯错! =零{
打印(犯错)
}
要求的事情.头.集(“内容类型”,“application / json;charset = utf - 8”)
客户端:=&http.客户端{}
分别地,犯错:=客户端.做(要求的事情)
如果犯错! =零{
打印(犯错)
}
推迟分别地.身体.关闭()
身体,犯错:=ioutil.ReadAll(分别地.身体)
如果犯错! =零{
打印(犯错)
}
fmt.打印(字符串(身体))
需要“net/http”
需要“uri”
需要json的
uri=URI(“https://api.track.www.lizkeller.com/api/v9/signup”)
http=网::HTTP.新(uri.宿主,uri.港口)
要求的事情=网::HTTP::帖子.新(uri.路径)
要求的事情[“内容类型”]=“application / json”
要求的事情.身体={“代码”:“字符串”,“country_id”:“整数”,“created_with”:“字符串”,“电子邮件”:“字符串”,“full_name”:“字符串”,“google_access_token”:“字符串”,“invitation_code”:“字符串”,“密码”:“字符串”,“供应商”:“字符串”,“时区”:“字符串”,“令牌”:“字符串”,“tos_accepted”:“布尔”,“工作区”:{“initial_pricing_plan”:“整数”,“名称”:“字符串”}}.to_json
res=http.请求(要求的事情)
把JSON.解析(res.身体)
获取(“https://api.track.www.lizkeller.com/api/v9/signup”,{
方法:“职位”,
身体:{“代码”:“字符串”,“country_id”:“整数”,“created_with”:“字符串”,“电子邮件”:“字符串”,“full_name”:“字符串”,“google_access_token”:“字符串”,“invitation_code”:“字符串”,“密码”:“字符串”,“供应商”:“字符串”,“时区”:“字符串”,“令牌”:“字符串”,“tos_accepted”:“布尔”,“工作区”:{“initial_pricing_plan”:“整数”,“名称”:“字符串”}},
头:{
“内容类型”:“application / json”
},
})
.然后((分别地)= >分别地.json())
.然后((json)= >{
控制台.日志(json);
})
.抓(犯错= >控制台.错误(犯错));
进口请求
从base64进口b64encode
数据=请求.帖子(“https://api.track.www.lizkeller.com/api/v9/signup”,json=”{“代码”:“字符串”,“country_id”:“整数”、“created_with”:“弦”、“电子邮件”:“弦”、“full_name”:“弦”、“google_access_token”:“弦”、“invitation_code”:“字符串”,“密码”:“弦”、“提供者”:“弦”、“时区”:“字符串”,“令牌”:“弦”、“tos_accepted”:“布尔”、“工作区”:{“initial_pricing_plan”:“整数”、“名称”:“字符串”}}”,头={“内容类型”:“application / json”})
打印(数据.json())
走读生箱东京;
走读生箱serde_json;
使用reqwest::{客户端};
使用reqwest::头::{CONTENT_TYPE};
#(东京::主要)
异步fn主要()->结果<(),reqwest::错误>{
让客户端=客户端::新();
让json=客户端.请求(方法::帖子,“https://api.track.www.lizkeller.com/api/v9/signup”.to_string())
.json(&serde_json::json !({“代码”:“字符串”,“country_id”:“整数”,“created_with”:“字符串”,“电子邮件”:“字符串”,“full_name”:“字符串”,“google_access_token”:“字符串”,“invitation_code”:“字符串”,“密码”:“字符串”,“供应商”:“字符串”,“时区”:“字符串”,“令牌”:“字符串”,“tos_accepted”:“布尔”,“工作区”:{“initial_pricing_plan”:“整数”,“名称”:“字符串”}}))
.头(CONTENT_TYPE,“application / json”)
.发送()
.等待?
.json()
.等待?;
println !(“{:# ?}”,json);
好吧(())
}
参数
身体
的名字 | 类型 | 描述 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
代码 | 字符串 | 如果通过OAuth注册,这是必需的 | |||||||||
country_id | 整数 | 用户的国家ID,如果没有提供将是美国 | |||||||||
created_with | 字符串 | 是否应该描述使用API的应用程序/服务 | |||||||||
电子邮件 | 字符串 | 新用户帐户的电子邮件 | |||||||||
full_name | 字符串 | 用户的全名,如果没有提供,将从电子邮件地址派生 | |||||||||
google_access_token | 字符串 | 传统领域 | |||||||||
invitation_code | 字符串 | 可选,在通过邀请创建帐户时使用 | |||||||||
密码 | 字符串 | 新用户的密码 | |||||||||
提供者 | 字符串 | 如果通过OAuth注册,这是必需的 | |||||||||
时区 | 字符串 | 用户的时区,如果没有提供,将是UTC | |||||||||
令牌 | 字符串 | 如果通过OAuth注册,这是必需的 | |||||||||
tos_accepted | 布尔 | 服务条款是否已被接受 | |||||||||
工作空间 |
|
可选的工作空间设置,在不通过邀请创建帐户时使用 |
响应
- 200
- 400
- 403
- 408
- 500
- 503
{
“api_token”:{
“描述”:"如果为空则省略",
“类型”:“字符串”
},
“在”:{
“类型”:“字符串”,
“格式”:“日期时间”
},
“beginning_of_week”:{
“类型”:“整数”
},
“country_id”:{
“类型”:“整数”
},
“created_at”:{
“类型”:“字符串”,
“格式”:“日期时间”
},
“default_workspace_id”:{
“类型”:“整数”
},
“电子邮件”:{
“类型”:“字符串”,
“格式”:“电子邮件”
},
“fullname”:{
“类型”:“字符串”
},
“id”:{
“类型”:“整数”
},
“image_url”:{
“类型”:“字符串”,
“例子”:“http://example.com”
},
“intercom_hash”:{
“描述”:"如果为空则省略",
“类型”:“字符串”
},
“openid_email”:{
“类型”:“字符串”,
“格式”:“电子邮件”
},
“openid_enabled”:{
“类型”:“布尔”
},
“选项”:{
“对象”:{
“additionalProperties”:“对象”
},
“描述”:"如果为空则省略"
},
“时区”:{
“类型”:“字符串”
},
“updated_at”:{
“类型”:“字符串”,
“格式”:“日期时间”
}
}
可能的错误消息:
*帐户已等待邀请
*需要电子邮件
*必须指定初始工作空间定价计划
*无效的国家ID
*无效电子邮件
*无效的电子邮件:域名不允许
*无效的邀请代码
*指定的定价计划无效
*无效的时区值
*必须接受服务条款
密码丢失
*密码至少6个字符
*提供者缺失
抱歉,这个邀请不是被接受就是被取消
*具有此电子邮件的用户已存在
*工作区名称必须包含非空格字符
可能的错误消息:
*期望的OAuth 2访问令牌
*无效凭证
* invalid_grant
* token过期且未设置刷新token
* unauthorized_client
连接被对等体重置
内部服务器错误
任何意外的OAuth错误消息。