我开发了一个github应用程序,它监听合并事件并为组织提供分析。App具有user:read权限。映射git用户与我的应用程序用户,我们需要一个电子邮件id。我试着调用下面的API,但它总是给电子邮件为空(可能是这些用户没有他们的电子邮件作为公共)。无论个人资料设置如何,我们如何访问电子邮件?. 有没有其他方法可以将git用户映射到我们的应用程序用户(我们只有电子邮件和用户名)
Request req = new Request.Builder()
.url("https://api.github.com/user/emails" + userName)
.header("Authorization", "Bearer " + installationToken)
.get()
.build();
Response resp = client.newCall(req).execute();
String jsonResp2 = resp.body().string();
Map userDetail = gson.fromJson(jsonResp2, Map.class);
String email = userDetail.get("email").toString();
你的代码构造了一个错误的URL:
.url("https://api.github.com/user/emails" + userName)
根据文档,https://api.github.com/user/emails
URL(末尾没有userName,在您的代码中甚至没有斜杠分隔)将为您提供当前认证用户的电子邮件地址。
你需要的是:
.url("https://api.github.com/users/" + userName)
查看文档