北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

钉钉用户查询:根据手机号获取UserID

最近在做服务端发送钉钉工作通知消息给钉钉用户,需要先获取钉钉用户的UserID,遇到了钉钉新版旧版sdk版本问题一直无法获取用户的UserID,去查了deepseek返回了几个版本的代码都无法使用,最终通过HTTP POST请求方法去获取。

1.第一步先获取access_token

$url = "https://oapi.dingtalk.com/gettoken?appkey=$appKey&appsecret=$appSecret";
$response = file_get_contents($url);
$result = json_decode($response, true);
if ($result && $result['errcode'] == 0) {
    $accessToken = $result['access_token'];
        return $accessToken;
    } else {
        return $this->error("获取AccessToken失败: " . $response);
}

2.第二步通过http post请求

        $url = "https://oapi.dingtalk.com/topapi/v2/user/getbymobile";

        $data = [
            'mobile' => $mobile
        ];

        $params = [
            'access_token' => $accessToken
        ];
        $response = $this->httpPost($url, $data, $params);
        return $response;

     /**
     * 通用的HTTP POST请求方法
     */
    /**
     * HTTP POST请求方法
     */
    private function httpPost($url, $data, $params = [])
    {
        if (!empty($params)) {
            $url .= '?' . http_build_query($params);
        }
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Accept: application/json'
        ]);
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        var_dump($httpCode);
        if (curl_errno($ch)) {
            throw new Exception('CURL错误: ' . curl_error($ch));
        }

        curl_close($ch);
        $result = json_decode($response, true);

        if ($httpCode !== 200) {
            throw new Exception('API请求失败: HTTP ' . $httpCode);
        }

        return $result;
    }

备注:中间可能会遇到权限问题就去钉钉开发者的控制台权限配置找到个人手机号信息权限启用一下就行了。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言