Hi,欢迎使用小周的API,此文章最后更新于:2024年7月1日
0.介绍
小周的开放平台API是由一碗小米周开发的用于用户登录,统一用户各平台账号的API。API整合了账号密码登录、QQ登录、微信登录、手机验证码登录、邮箱登录、抖音登录(正在接入)、微博登录(正在接入)等多平台登录方式,便于开发者不用一个一个地去对接。
Ⅰ.开放平台账号注册
开放平台账号与此API账户不互通(后期计划俩账号可以相互绑定,实现账号互通)。
1.访问一碗小米周的登录页、点击此图标、进入账号注册页面、根据提示注册总帐号。
2.访问一碗小米周API控制台、等待加载,若未登录会跳转至登陆页面,填写你刚刚注册的账号后,点击登录,首次登录由于API平台没有你的信息,会自动创建相关信息,创建完成后,请点击[点我完成授权重新登录],若你的登录信息没有过期,你不用做任何操作,页面会自动回调,完成重新登录。
若有报错,请根据页面提示完成操作,若无法解决请留言或联系小周。
Ⅱ.开通用户API服务
点击左侧[API列表]、选择[共享用户]、选择[配置]
稍等页面加载与信息获取,在重定向的页面中选择,点击后请稍等,加载可能缓慢(页面的服务器位于大陆外,延迟有点小高,小周正在搭建国内节点)。开通成功后会自动重定向至管理页面。
原始节点已经自动生成,后续需要使用原始节点完成服务。
Ⅲ.完善服务
1.网站名称配置
点击左侧[API列表]、选择[共享用户]、选择[配置]、找到[网站名称]一栏、点击后方[设置网站名称]、在弹出的输入框中设置自己的网站名称。
注意:设置网站名称请三思,设置后无法修改,禁止设置违禁词!
2.设置请求IP
点击左侧[API列表]、选择[共享用户]、选择[配置]、找到[请求IP]一栏,在输入框中输入你的服务器IP,当回调获得Access_Token后,在获取用户信息时,非许可列表中的IP将不会返回信息,以防止Access_Token泄露造成用户信息泄露。
注意:一次只能输入一个IP,后续版本优化。
3.回调域名设置
点击左侧[API列表]、选择[共享用户]、选择[配置]、找到[回调域名]一栏,在输入框中输入你的根域名。
设置根域支持下辖所有域名,包括二级、三级等等......
注意:a.一次只能设置一个域名,后续版本优化。b.免费版只支持设置一个根域,其实已经很好了,相信我......
3.1域名所有权验证
找到刚刚添加的域名,选择[域名验证]
等待页面重定向至验证页面。
然后前往域名DNS解析服务商,添加一条TXT记录,完成后点击[立即验证]
点击后请稍等域名核验,完成后将回调至设置页面。此时域名验证将变为绿色
3.2域名备案验证
注意:如果你的域名没有备案,但是想使用此API,请将以下信息发送至小周的邮箱:xz@mail.ihwx.cn
需要的资料:1.身份证正反照片。2.域名实名认证页面截图。身份证信息需要与域名实名认证一致,且清晰可见。3.你的APPID以及注册时使用的手机号。
如果你不信任小周,建议在图片上添加水印,水印内容只能为:仅供一碗小米周域名核验使用
收到一碗小米周的邮件回复后,再进行接下来的步骤。
找到刚刚添加的域名,选择[备案验证]
等待页面重定向至验证页面。
确认域名无误后,点击[立即验证]
由于受域名热度的影响,你的验证可能消耗较长时间,点击可能无反应,请稍等,不要重复提交,验证成功后会回调至配置页面。
回调后可以查看,对应的域名显示已备案。
Ⅳ.请求登录
1.请求登录页面构造
在页面上方有原始节点(开通服务时生成)和加速节点(订阅版本获得,默认为空),如果你的原始节点为空,请联系小周。
原始此处节点为:https://v1.oauth.forhwx.cn原始登录路径为:/
则请求登录的路径为:https://v1.oauth.forhwx.cn/?参数
请求方法:GET
参数信息:
参数 | 必要性 | 说明 |
appid | 必须 | APPID在首页(数据详情)可以查看 |
bauri | 必须 | 回调域,用户完成验证后的回调路径,需要在已经设置的回调域名下 |
need | 必须 | 需要获取的信息,当前只能是get_user_info |
code | 非必须 | 传入的code会在回调时不变传回。 |
2.请求登录错误码
此段错误码不会直接显示,会直接在页面输出信息,你可以根据页面提示完成相关配置。
错误代码 | 错误码释义以及解决措施 |
400 | APPID为空或者含有特殊字符。 检查APPID的值是否正确 |
4001 | IP处于封禁列表,请稍后再试. 该IP被识别为恶意IP,请稍后再试。 |
4002 | APPID不存在。 检查你的APPID是否与后台一致。 |
4003 | 无法获取回调域名主域名! 请参照[Ⅲ.3回调域名设置],配置你的根域名例如:txtx.xyz |
4004 | 回调域未在允许域列表中! 检查你的回调域链接中,根域名是否为你在[Ⅲ.3回调域名设置]设置的域名 |
4005 | 回调域为空!请先登陆控制台,设置回调域! 请参照[Ⅲ.3回调域名设置] |
4006 | 该APPID没有权限获取所需数据,请检查need设置。 检查传参中need参数是否为:get_user_info(当前只支持这个) |
4007 | 该APPID没有设置网站名称,请检查web_name设置。 请参照[Ⅲ.1网站名称配置] |
4008 | 网站状态异常。 网站可能由于违规等操作被封禁或网站管理员状态异常 |
4009 | 回调域未备案! 请参照[Ⅲ.3回调域名设置-3.2域名备案验证] |
4010 | APPID未配置所需权限。 当前已经自动配置所需权限,若出现此代码请联系小周。 |
4011 | APPID未配置节点。 在后台查看自己APPID支持的服务节点是否存在,若不存在请联系小周。 |
4012 | APPID不支持在此节点获取服务。 在后台所示的服务节点获取服务。 |
4013 | 回调域未验证所属权! 请参照[Ⅲ.3回调域名设置-3.1域名所有权验证] |
Ⅴ.用户登录错误码
此阶段可能会报一些错误码与配置相关,接入时需要注意。但大部分与用户登录相关
错误码 | 错误码释义以及解决措施 |
4000 | 数据不合规。 必要参数不全。 |
4001 | APPID不合规,请检查APPID. 传入的APPID存在为空、含有特殊字符等情况 |
4002 | APPID不存在或用户未开通服务。 检查APPID是否正确、该服务是否开通。 |
4003 | APPID状态异常。 管理员状态异常。 |
4004 | 密码登录状态异常。 这可能是密码登录被禁止。请登录控制台查看。 |
4005 | 密码登录次数已达上限,请通过订阅方式增加次数。 |
4006 | 当前需要的权限不在APPID权限内。 请检查need参数是否在权限许可内,当前只允许为get_user_info |
4007 4008 4009 4010 | 账号或密码错误。 用户输入的账号密码错误。 4007-ID密码;4008-账号密码;其他-邮箱密码 |
4011 | 用户账号异常 |
4012 | 域名所属权未校验,请管理员在后台完成域名归属权校验! 请参照[Ⅲ.3回调域名设置-3.1域名所有权验证] |
4013 | 该网站未配置该回调,请检查回调域设置! 请参照[Ⅲ.3回调域名设置] |
4014 | 回调域未验证备案,请管理员在后台验证备案! 请参照[Ⅲ.3回调域名设置-3.2域名备案验证] |
4015 | 密码登录版本已过期,请通过订阅方式更新版本。 订阅过付费版本到期后需要手动订阅免费版。 |
4601 | QQ登录状态异常。 这可能是QQ登录被禁止。请登录控制台查看。 |
4501 | 未知的登陆方式。 检查是否为正常通道请求登录服务。 |
4602 | QQ登录次数已达上限,请通过订阅方式增加次数 |
4603 | QQ登录版本已过期,请通过订阅方式更新版本。 订阅过付费版本到期后需要手动订阅免费版。 |
4604 | 该APPID未配置服务节点。 这可能是创建服务时出错,请联系小周。 |
4605 | 该APPID无法在此节点获取服务,可能是因为未开通此节点或此节点服务已经被禁止 请联系小周,获取详细情况。 |
4701 | 微信登录状态异常。 这可能是微信登录被禁止。请登录控制台查看。 |
4702 | QQ登录次数已达上限,请通过订阅方式增加次数 |
4703 | 微信登录版本已过期,请通过订阅方式更新版本。 订阅过付费版本到期后需要手动订阅免费版。 |
4801 | 短信登录状态异常。 这可能是短信登录被禁止。请登录控制台查看。 |
4802 | 短信登录次数已达上限,请通过订阅方式增加次数 |
4803 | 短信登录版本已过期,请通过订阅方式更新版本。 订阅过付费版本到期后需要手动订阅免费版。 |
5001 | 登陆方式不受支持。 检查是否为正常通道请求登录服务。 |
5003 | 该QQ账户未绑定相关账号! |
5002 5005 5006 | 数据库错误 |
5004 5105 | 用户账号异常 |
5103 | 该微信账户未绑定相关账号! |
5101 5102 | 数据库错误 |
5201 | 验证码格式错误! |
5202 | 数据库错误 |
5203 | 该手机号未注册请先注册账号! |
5204 | 账号异常 |
5205 | 手机号格式错误! |
5206 | 短信唯一ID错误! |
5207 5208 | 短信验证码ID错误 |
5209 5210 | 短信验证码已过期 |
5211 | 验证码与手机号不匹配! |
5212 | 验证码错误! |
5213 | 验证码与用途不匹配! |
5214 | 数据库错误 |
Ⅵ.回调
当用户完成登陆后,会回调至传入的bauri地址。
回调方法:GET
回调参数 | 回调说明 |
access_token | 用于获取用户信息的凭证,请妥善保管,有效期1小时 |
code | 在请求登陆时传入的code。 |
Ⅶ.获取用户信息以及Rfresh_token
1.请求
首次使用access_token获取用户信息时,会创建refresh_token,便于刷新access_token.
获取请求地址:
在服务节点中有[API路径],如图所示
路径为服务节点+API路径。例如:https://v1.oauth.forhwx.cn/api/get_user_info.php?参数
请求方式:GET
返回格式:json
请求参数:
请求参数 | 必须性 | 说明 |
appid | 必须 | 你的授权ID,可以通过控制台查看。 |
appkey | 必须 | 你的密钥,可以通过控制台查看。 |
access_token | 必须 | 回调给你的access_token. |
示例:https://v1.oauth.forhwx.cn/api/get_user_info.php?appid=1111111&appkey=222222&access_token=33333333
2.返回
返回的数据为json格式。
返回字段 | 说明 | 是否必然返回 |
code | 状态值,正常为200 | 是 |
access_token | 传入的access_token | 是 |
serverid | 服务ID,出错无法自己解决请保存此ID联系小周 | 是 |
msg | 信息,会输出错误的解决方式等 | 是 |
data | 请见下表 | 否 |
data信息字段说明
data字段 | 说明 | 是否必然返回 |
uuid | 用户在该网站的唯一ID,用于标明用户的身份 | 在data返回时必然返回 |
avatar | 用户的头像地址 | 在data返回时必然返回 |
nickname | 用户设置的昵称 | 在data返回时必然返回 |
refresh_token | 刷新access_token的code,请妥善保存 | 仅在第一次使用access_token时返回 |
access_token_expires | access_token的有效期(秒)从获取到时计算起 | 在data返回时必然返回 |
refresh_token_expires | refresh_token的有效期(秒)从获取到时计算起 | 仅在第一次使用access_token时返回 |
3.错误码释义
错误码 | 释义及说明 |
400 | 参数缺失 |
4001 | APPID或APPKEY错误 |
4002 | 主账号状态异常。 检查账号状态是否被封禁。 |
4003 | 该服务状态异常。 该项服务未开启或者被封禁。 |
4004 | 请求IP不在许可范围内。 请参照[Ⅲ.2设置请求IP]将你的IP设置正确,请不要设置代理 |
4005 4006 4007 | AccessToken不存在或已经过期! 重新获取Access_token. |
4008 | 获取AccessToken的APPID与当前请求APPID不一致,请检查你的APPID Access_Token与APPID不匹配。 |
4011 | 获取用户信息失败。 可能是由于网络原因导致无法获取用户信息,建议再次尝试。 |
4012 | 用户不存在。 Access_token获取到的用户信息是错误的。 |
4013 | 该用户的状态异常。 登录的用户被封禁或者其他策略原因无法登录。 |
4014 | 为用户创建uuid失败. 尝试再次请求,若问题依旧,请联系小周。 |
4015 | 更新get_refresh_token状态失败。 尝试再次请求,若问题依旧,请联系小周。 |
4016 | 为用户更新RefreshToken失败。 尝试再次请求,若问题依旧,请联系小周。 |
4017 | 该用户未开启OpenUser服务 参照[Ⅱ.开通用户API服务]开启服务。 |
请妥善保管相关信息,可以避免反复调用登录接口,消耗自己的配额。
Ⅷ.通过refresh_token更新access_token
1.请求
对于临近过期的access_token你可以采取刷新access_token的操作,以保持用户的登录状态。
获取请求地址:
此节点未在控制台配置当中写出,接口地址为获取用户的地址,但需要将get_user_info.php修改为
refresh_access_token.php。
请求路径示例:https://v1.oauth.forhwx.cn/api/refresh_access_token.php?参数
请求方式:GET
返回格式:json
请求参数及说明:
请求参数 | 必须性 | 说明 |
refresh_token | 必须 | 在第一次通过access_token获取用户信息时获得的字段。 |
access_token | 必须 | 用户登录时回调、通过刷新到的access_token |
appid | 必须 | 你的授权ID,可以通过控制台查看。 |
appkey | 必须 | 你的密钥,可以通过控制台查看。 |
注意:刷新access_token后,原access_token会立即失效,新获得的access_token在第一次获取用户信息时不会产生refresh_token因此,请妥善保管你的access_token和refresh_token.
2.返回字段
返回字段 | 说明 | 是否必然返回 |
appid | 你的APPID | 是 |
access_token | 你的旧access_toekn | 是 |
refresh_token | 你的refresh_token | 是 |
code | 状态码,正常为200 | 是 |
msg | 说明,正常为空 | 是 |
serverid | 服务ID,当你无法解决此问题时,请记录下此服务ID,联系小周 | 是 |
data | 返回的主要数据 | 否 |
data返回字段说明:
当code为200时,此字段才有值。
data字段 | 说明 | 是否必然返回 |
new_access_token | 新的access_token | 在data返回时必然返回 |
new_access_token_expires | 新的access_token有效时间(秒)一般为3600 | 在data返回时必然返回 |
3.错误码说明
错误代码 | 释义及说明 |
4001 | APPID或APPKEY错误。 |
4002 | 主账号状态异常。 检查账号状态是否被封禁。 |
4003 | 该服务状态异常。 该项服务未开启或者被封禁。 |
4004 | 请求IP不在许可范围内。 请参照[Ⅲ.2设置请求IP]将你的IP设置正确,请不要设置代理 |
4005 4006 4007 | AccessToken不存在或已经过期! 重新获取Access_token. |
4008 | 获取AccessToken的APPID与当前请求APPID不一致,请检查你的APPID Access_Token与APPID不匹配。 |
4017 | 该用户未开启OpenUser服务 参照[Ⅱ.开通用户API服务]开启服务。 |
4600 | 为用户更新AccessToken失败。 可能是网络的原因,建议重试,若问题依旧,请联系小周。 |
4601 | 更新原始AccessToken失效失败。 可能是网络的原因,建议重试,若问题依旧,请联系小周。 |
4602 | 更新RefreshToken绑定的AccessToken失败。 可能是网络的原因,建议重试,若问题依旧,请联系小周。 |