我已经按照此教程进行了开发,但卡在获取用户信息这里 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>
你好,有提示报错信息吗?根据错误码排查下具体原因。
这是我之前写的获取用户信息的代码,你可以参考下
/**
* 获取用户信息
*
* @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);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。