开发者社区> 问答> 正文

网站采用钉钉免登,遇到了没有权限的问题

我已经按照此教程进行了开发,但卡在获取用户信息这里 https://open.dingtalk.com/document/orgapp/tutorial-obtaining-user-personal-information

该给的权限都给了。


public String getUserinfo(String accessToken) throws Exception {
        com.aliyun.dingtalkcontact_1_0.Client client = contactClient();
        GetUserHeaders getUserHeaders = new GetUserHeaders();
        getUserHeaders.xAcsDingtalkAccessToken = accessToken;
        //获取用户个人信息,如需获取当前授权人的信息,unionId参数必须传me
        String me = JSON.toJSONString(client.getUserWithOptions("me", getUserHeaders, new RuntimeOptions()).getBody());
        System.out.println(me);
        return me;
    }

没有调用该接口的权限,接口权限申请参考:https://open.dingtalk.com/document/orgapp-server/add-api-permission

sdk是

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>dingtalk</artifactId>
        <version>1.5.47</version>
    </dependency>

展开
收起
游客6yssmzwaznrci 2023-03-01 15:49:35 661 0
2 条回答
写回答
取消 提交回答
  • 这个人很懒....什么都没写。

    我的文档有教程,可以去看看

    2023-03-02 16:38:06
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,有提示报错信息吗?根据错误码排查下具体原因。

    这是我之前写的获取用户信息的代码,你可以参考下

       /**
         * 获取用户信息
         * 
         * @param accessToken
         * @param code
         * @return
         * @throws Exception
         */
        public static JSONObject getUserInfo(String accessToken, String code) throws Exception {
            // 获取用户 ID
            JSONObject jsonObject = getUserId(accessToken, code);
    
            // 获取用户信息
            String url = "https://oapi.dingtalk.com/user/getuserinfo";
            String params = "access_token=" + accessToken + "&code=" + code;
            String result = HttpUtil.sendGet(url, params);
    
            JSONObject jsonResult = JSON.parseObject(result);
    
            if (jsonResult.containsKey("errcode") && jsonResult.getIntValue("errcode") != 0) {
                throw new RuntimeException("Failed to get user info. Error code: " + jsonResult.getIntValue("errcode") + ", Error message: " + jsonResult.getString("errmsg"));
            }
    
            String userId = jsonResult.getString("userid");
            String userInfoUrl = "https://oapi.dingtalk.com/user/get";
            String userInfoParams = "access_token=" + accessToken + "&userid=" + userId;
            String userInfoResult = HttpUtil.sendGet(userInfoUrl, userInfoParams);
    
            return JSON.parseObject(userInfoResult);
        }
    
    2023-03-01 17:46:45
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载