4

我开发了一个 github 应用程序,它监听合并事件并向组织提供分析。应用程序具有用户:读取权限。要将 git 用户映射到我的应用程序用户,我们需要一个电子邮件 ID。我尝试在 API 下方调用,但它总是将电子邮件设为 null(可能是这些用户没有公开他们的电子邮件。)。无论个人资料设置如何,我们如何访问电子邮件?. 有没有其他方法可以将 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();
4

1 回答 1

0

您的代码构造了错误的 URL:

.url("https://api.github.com/user/emails" + userName)

根据文档https://api.github.com/user/emailsURL(最后没有用户名,在您的代码中甚至没有用斜杠分隔)将为您提供当前经过身份验证的用户的电子邮件地址,而不是任何其他用户的电子邮件地址。

你需要的是这样的:

.url("https://api.github.com/users/" + userName)

请参阅文档

于 2021-10-29T16:00:45.620 回答