如何通过登录从Github用户获取令牌?

背景

假设我想使用代码(Kotlin / Java)在Github上搜索一些电子邮件地址。

问题

我成功完成了此操作,没有任何登录令牌,但据我所知,它仅限于每分钟10个查询,并且如果我有来自用户的令牌(from login to Github),它将添加30个查询每分钟。

要在不登录的情况下从Github获取信息,我使用OKHTTP进行访问(从here找到):

https://api.github.com/search/users?q=$email+in:EMAIL_ADDRESS_HERE

如果我可以使用令牌,则可能是:

https://api.github.com/search/users?q=$email+in:EMAIL_ADDRESS_HERE&access_token=$TOKEN_HERE

但是我不知道如何从用户那里获取此令牌。我可以找到如何使用网站本身为自己做一个。

我发现并尝试过的东西

我向Github询问了它是如何完成的,但是他们向我展示了一些curl code,可惜我不熟悉它,我也不知道它是如何完成的以及如何将其转换为Kotlin / Java。我尝试阅读alternatives,但随后发现了一些有关其完成方式的信息(缺少参数所需的先前数据)。通过使用WebView或直接联系Github服务器,我什至都无法理解。如果它直接与Github服务器联系,这是否意味着我需要为该用户提供username&password EditTexts?

这是我在教程中看到的代码:

    JsonFactory jsonFactory = new JacksonFactory();
    HttpTransport httpTransport = new NetHttpTransport();
    AuthorizationCodeFlow flow = new AuthorizationCodeFlow.Builder(
    BearerToken.authorizationHeaderaccessMethod(),httpTransport,jsonFactory,new GenericUrl("https://github.com/login/oauth/access_token"),new ClientParametersAuthentication( /* Client ID and Secret */ ),/* Client ID */
    "https://github.com/login/oauth/authorize").build();

    TokenResponse tokenResponse = flow
    .newTokenRequest(code)
    .setScopes(Collections.singletonList("user:email"))
    .setRequestInitializer(new HttpRequestInitializer() {
    @Override
    public void initialize(HttpRequest request) throws IOException {
    request.getHeaders().setaccept("application/json");
    }
    }).execute();

因此,这里缺少的是“客户端ID和密钥”,“代码”以及用户本人提供的部分:用于获取令牌的用户名和密码。

问题

我如何进入整个登录过程,最后获得要使用的令牌?

应该使用WebView为用户提供所有登录选项,还是应该使用自己的UI放置username&password?

zzxcyj 回答:如何通过登录从Github用户获取令牌?

Github支持OAuth 2.0进行身份验证。您可以根据example在Github上设置应用程序以启用此功能,也可以使用AppAuth处理身份验证过程。

本文链接:https://www.f2er.com/3088910.html

大家都在问