AuthorizationCodeInstalledApp - PullRequest
       101

AuthorizationCodeInstalledApp

0 голосов
/ 05 июля 2018

Я пытаюсь использовать google drive.api Я запустил

private static Credential authorize() throws Exception {
        // load client secrets
        InputStream in = new FileInputStream("C:\\Users\\orion\\OneDrive\\Documents\\GitHub\\teachervoiceorganization\\JavaProject\\client_id.json");
        GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
                new InputStreamReader(in));
        if (clientSecrets.getDetails().getClientId().startsWith("515427348790")
                || clientSecrets.getDetails().getClientSecret().startsWith("i50nkSMoqVegC0UdkD1W8g3Y")) {
            System.out.println(
                    "Enter Client ID and Secret from https://code.google.com/apis/console/?api=drive "
                            + "into drive-cmdline-sample/src/main/resources/client_secrets.json");
        }
        // set up authorization code flow
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
                httpTransport, JSON_FACTORY, clientSecrets,
                Collections.singleton(DriveScopes.DRIVE_FILE)).setDataStoreFactory(dataStoreFactory)
                .build();
        // authorize
        return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
    }

У меня проблема с

return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");

Где находится идентификатор пользователя? Я посмотрел на https://console.developers.google.com и не повезло. все поможет.

1 Ответ

0 голосов
/ 05 июля 2018

Идентификатор пользователя Google кодируется как sub JWT, возвращенного из вызова для обмена кодом авторизации на токены. Вы используете клиентскую библиотеку Java, которая запутывает все, поэтому, где выставлен токен JWT, можно только догадываться. Мой личный совет - откажитесь от библиотеки и просто вызовите два URL-адреса OAuth напрямую. Шаги: -

  1. Создание URL-адреса запроса OAuth, содержащего ваш идентификатор клиента, области действия и URL-адрес обратного вызова
  2. Перенаправление на этот URL
  3. Когда браузер перенаправляет обратно на ваш сервлет обратного вызова, вызовите конечную точку токена, чтобы запросить токены, включая идентификационные данные.

Все это очень хорошо описано на https://developers.google.com/identity/protocols/OAuth2WebServer

Примечание: необходимо указать область действия email, а также соответствующие области действия дисков.

...