企业微信应用获取本企业成员及互联企业成员手机号等敏感信息

本文详细介绍了如何使用企业微信OAuth2进行授权登录,包括scope设置、agentid要求、授权过程、code和access_token的获取,以及如何获取用户手机号、邮箱等敏感信息的步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提

1、应用需要通过OAuth2的授权登录方式登录。

企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。

构造OAuth2网页授权链接时:scope必须为snsapi_privateinfo;且agentid必填。

若agentid不填,怎会将scope默认为snsapi_base。

当用户进入网页授权链接后,将弹出授权窗口,用户授权同意后才会返回信息。默认授权为头像、邮箱、手机号。

详情见开始开发 - 接口文档 - 企业微信开发者中心

2、该应用需从企业微信终端(PC端移动端皆可)打开

因为OAuth2网页授权链接只能在企业微信终端打开


获取手机号

1、获取用户身份

通过OAuth2的授权登录后,会跳转至redirect_uri?code=CODE&state=STATE,我们就能从当前的URL上获取code,可用如下代码获取

//search 函数用来获取当前URL的参数
const search = () => {
    const params: any = {}
    const href = window.location.href
        .replace(/^(.*?)(#.*)?$/, '$1')
        .replace(/^.*?(\?(.*))?$/, '$2')
        .split('&')
        .forEach(ps =>
            ps.replace(/(.*?)=(.*)/g, ($0: string, $1: string, $2: string) => {
                return (params[$1.trim()] = $2.trim())
            })
        )

    return params
}

const { code } = search() || {}


获取到code后,可通过 get请求以下接口获取到当前登录人userId以及获取敏感数据票据的user_ticket。https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

注意:code只能使用一次,需要定义好前端还是后端使用;

access_token:通过corpid(企业ID)、corpsecret(应用的凭证密钥)获得,可多次使用,但是会有过期时间。详情见获取access_token - 接口文档 - 企业微信开发者中心

获取用户身份接口详情见获取访问用户身份 - 接口文档 - 企业微信开发者中心

2、获取用户手机号等敏感信息

通过post请求以下接口,可获取用户的手机号、邮箱l、性别等敏感信息。https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=ACCESS_TOKEN

//请求体
{
   "user_ticket": "USER_TICKET"
}

user_ticket为上一步获取用户身份 的get请求的返回值。

具体接口详情见获取访问用户敏感信息 - 接口文档 - 企业微信开发者中心

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值