如何使用google oauth2安装的应用程序代码流处理不正确的凭据

时间:2018-02-22 18:33:44

标签: oauth-2.0 google-drive-api google-oauth google-api-java-client

我正在为Installed Application实施授权代码流 代码类似于下面的代码段:

    public static void main(String[] args) {
    try {
        httpTransport = GoogleNetHttpTransport.newTrustedTransport();
        dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR);
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, 
                                                                                   JSON_FACTORY, 
                                                                                   IA_CLIENT,
                                                                                   IA_SECRET, 
                                                                                   Collections.singleton(DriveScopes.DRIVE)).setDataStoreFactory(dataStoreFactory)
            .build();
        Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
        drive = new Drive.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName(APPLICATION_NAME).build();
        System.out.println(drive.about());
        return;
    } catch (IOException e) {
        System.err.println(e.getMessage());
    } catch (Throwable t) {
        t.printStackTrace();
    }
    System.exit(1);
}

除非提供无效client_id,否则一切正常。 (如果我使用json文件并更改其内容,我也会遇到同样的问题)。 我从Google服务器收到此错误消息:

401. That’s an error.

Error: invalid_client

The OAuth client was not found.

Request Details
client_id=573900000-hsoobsdsstem84tg8br4pmdsds.apps.googleusercontent.com
redirect_uri=http://localhost:40441/Callback
response_type=code
scope=https://www.googleapis.com/auth/drive

...并且回调服务器永远不会收到任何反馈。所以,申请 仍在无休止地运行。

我查看了LocalServerReceiver课程,但可以找到任何方法来提供 超时或任何可能的解决方案。

处理这种情况的最简洁方法是什么?

0 个答案:

没有答案