logo资料库

企业微信 身份验证 网页授权登录.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
构造网页授权链接
获取访问用户身份
读取成员
构造网页授权链接 如果企业需要在打开的网页里面携带用户的身份信息,第一步需要构造如下的链接来获取 code 参数: https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type =code&scope=snsapi_base&state=STATE#wechat_redirect 参数说明: 参数 appid redirect_uri response_type scope state 必须 说明 是 是 是 是 否 企业的 CorpID 授权后重定向的回调链接地址,请使用 urlencode 对链接进行处理 返回类型,此时固定为:code 应用授权作用域。企业自建应用固定填写:snsapi_base 重定向后会带上 state 参数,企业可以填写 a-zA-Z0-9 的参数值,长度不可超过 128 个字节 #wechat_redirect 是 终端使用此参数判断是否需要带上身份信息 员工点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE,企业可根据 code 参数获得员工的 userid。 code 长度最大为 512 字节。 示例: 假定当前 企业 CorpID:wxCorpId 访问链接:http://api.3dept.com/cgi-bin/query?action=get 根据 URL 规范,将上述参数分别进行 UrlEncode,得到拼接的 OAuth2 链接为: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxCorpId&redirect_uri=http%3a%2f%2fapi.3dept.com% 2fcgi-bin%2fquery%3faction%3dget&response_type=code&scope=snsapi_base&state=#wechat_redirect 员工点击后,页面将跳转至 http://api.3dept.com/cgi-bin/query?action=get&code=AAAAAAgG333qs9EdaPbCAP1VaOrjuNkiAZHTWgaWsZQ&s tate= 企业可根据 code 参数调用获得员工的 userid 注意到,构造 OAuth2 链接中参数的 redirect_uri 是经过 UrlEncode 的
调试工具 获取 access_token 是调用企业微信 API 接口的第一步,相当于创建了一个登录凭证,其它的业务 API 接口, 都需要依赖于 access_token 来鉴权调用者身份。 因此开发者,在使用业务接口前,要明确 access_token 的颁发来源,使用正确的 access_token。 请求方式: GET(HTTPS) 请求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET 注:此处标注大写的单词ID和SECRET,为需要替换的变量,根据实际获取值更新。其它接口也采用相同的 标注,不再说明。 参数说明: 参数 必须 说明 corpid corpsecret 权限说明: 是 是 企业 ID,获取方式参考:术语说明-corpid 应用的凭证密钥,获取方式参考:术语说明-secret 每个应用有独立的 secret,获取到的 access_token 只能本应用使用,所以每个应用的 access_token 应该分 开来获取 返回结果: 1. { 2. 3. 4. 5. 6. } "errcode": 0, "errmsg": "ok", "access_token": "accesstoken000001", "expires_in": 7200 参数说明: 参数 errcode errmsg access_token expires_in 注意事项: 说明 出错返回码,为 0 表示成功,非 0 表示调用失败 返回码提示语 获取到的凭证,最长为 512 字节 凭证的有效时间(秒) 开发者需要缓存 access_token,用于后续接口的调用(注意:不能频繁调用 gettoken 接口,否则会受到频率 拦截)。当 access_token 失效或过期时,需要重新获取。
access_token 的有效期通过返回的 expires_in 来传达,正常情况下为 7200 秒(2 小时),有效期内重复获 取返回相同结果,过期后获取会返回新的 access_token。 由于企业微信每个应用的 access_token 是彼此独立的,所以进行缓存时需要区分应用来进行存储。 access_token 至少保留 512 字节的存储空间。 企业微信可能会出于运营需要,提前使 access_token 失效,开发者应实现 access_token 失效时重新获取的 逻辑。 获取访问用户身份 该接口用于根据 code 获取成员信息 请求方式:GET(HTTPS) 请求地址: https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE 参数说明: 参数 必须 说明 access_token 是 调用接口凭证 code 是 通过成员授权获取到的 code,最大为 512 字节。每次成员授权带上的 code 将不一样,code 只能使用一次,5 分钟未被使用自动过期。 权限说明:跳转的域名须完全匹配 access_token 对应应用的可信域名,否则会返回 50001 错误。 返回结果:a) 当用户为企业成员时返回示例如下: 1. { 2. 3. 4. 5. 6. } "errcode": 0, "errmsg": "ok", "UserId":"USERID", "DeviceId":"DEVICEID" 参数 说明 errcode 返回码 errmsg 对返回码的文本描述内容 UserId 成员 UserID。若需要获得用户详情信息,可调用通讯录接口:读取成员
参数 说明 DeviceId 手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响) b) 非企业成员授权时返回示例如下: 1. { 2. 3. 4. 5. 6. } "errcode": 0, "errmsg": "ok", "OpenId":"OPENID", "DeviceId":"DEVICEID" 参数 说明 errcode 返回码 errmsg 对返回码的文本描述内容 OpenId 非企业成员的标识,对当前企业唯一。不超过 64 字节 DeviceId 手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响) 出错返回示例: 1. { 2. 3. 4. } "errcode": 40029, "errmsg": "invalid code" 读取成员 在通讯录同步助手中此接口可以读取企业通讯录的所有成员信息,而自建应用可以读取该应用设置的可见范围 内的成员信息。 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=USERID
参数说明: 参数 必须 说明 access_token userid 是 是 调用接口凭证 成员 UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为 1~64 个字节 权限说明: 应用须拥有指定成员的查看权限。 返回结果: 1. { 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. "errcode": 0, "errmsg": "ok", "userid": "zhangsan", "name": "李四", "department": [1, 2], "order": [1, 2], "position": "后台工程师", "mobile": "13800000000", "gender": "1", "email": "zhangsan@gzdev.com", "is_leader_in_dept": [1, 0], "avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TB icnHFlhiafvDwklOpZeXYQQ2icg/0", 14. "thumb_avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TB icnHFlhiafvDwklOpZeXYQQ2icg/100", 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. "telephone": "020-123456", "alias": "jackzhang", "address": "广州市海珠区新港中路", "open_userid": "xxxxxx", "main_department": 1, "extattr": { "attrs": [ { "type": 0, "name": "文本名称", "text": { "value": "文本" } },
"type": 1, "name": "网页名称", "web": { "url": "http://www.test.com", "title": "标题" } { } ] }, "status": 1, "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx", "external_position": "产品经理", "external_profile": { "external_corp_name": "企业简称", "external_attr": [{ "type": 0, "name": "文本名称", "text": { "value": "文本" } }, { "type": 1, "name": "网页名称", "web": { "url": "http://www.test.com", "title": "标题" } }, { "type": 2, "name": "测试 app", "miniprogram": { "appid": "wx8bd80126147dFAKE", "pagepath": "/index", "title": "my miniprogram" } } ] } 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. } 参数说明: 参数 说明
参数 errcode errmsg userid name 说明 返回码 对返回码的文本描述内容 成员 UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为 1~64 个字节 成员名称,此字段从 2019 年 12 月 30 日起,对新创建第三方应用不再返回,2020 年 6 月 30 日起,对所有历史第三方应用不再返回,后续第三方仅通讯录应用可获取,第三方页面需要 通过通讯录展示组件来展示名字 mobile 手机号码,第三方仅通讯录应用可获取 department 成员所属部门 id 列表,仅返回该应用有查看权限的部门 id order position gender email 部门内的排序值,默认为 0。数量必须和 department 一致,数值越大排序越前面。值范围是 [0, 2^32) 职务信息;第三方仅通讯录应用可获取 性别。0 表示未定义,1 表示男性,2 表示女性 邮箱,第三方仅通讯录应用可获取 is_leader_in_dept 表示在所在的部门内是否为上级。;第三方仅通讯录应用可获取 avatar 头像 url。 第三方仅通讯录应用可获取 thumb_avatar 头像缩略图 url。第三方仅通讯录应用可获取 telephone 座机。第三方仅通讯录应用可获取 alias extattr status qr_code 别名;第三方仅通讯录应用可获取 扩展属性,第三方仅通讯录应用可获取 激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。 已激活代表已激活企业微信或已关注微工作台(原企业号)。未激活代表既未激活企业微信 又未关注微工作台(原企业号)。 员工个人二维码,扫描可添加为外部联系人(注意返回的是一个 url,可在浏览器上打开该 url 以展示二维码);第三方仅通讯录应用可获取 external_profile 成员对外属性,字段详情见对外属性;第三方仅通讯录应用可获取 external_position 对外职务,如果设置了该值,则以此作为对外展示的职务,否则以 position 来展示。第三方 仅通讯录应用可获取 address 地址。第三方仅通讯录应用可获取 open_userid 全局唯一。对于同一个服务商,不同应用获取到企业内同一个成员的 open_userid 是相同的, 最多 64 个字节。仅第三方应用可获取 main_department 主部门
分享到:
收藏