如何在我的Java应用程序中对Google OAuth的client_id和client_secret进行硬编码?

时间:2016-03-02 21:00:15

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

我正在使用java(https://developers.google.com/drive/v2/web/quickstart/java)关注Google Drive的API,并且有一行代码可以读取我的项目目录中的.json文件(我将其复制到那里),其中包含client_id和client_secret它

    // Load client secrets.
    InputStream in = GoogleDrive.class.getResourceAsStream("client_id.json");
    this.clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

    // Build flow and trigger user authorization request.
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
            .setDataStoreFactory(DATA_STORE_FACTORY)
            .setAccessType("offline")
            .build();

我创建了一个GoogleDrive.java类,可以更轻松地登录,上传等。

如何在.json文件中对信息进行硬编码,并将google“加载”到clientsecrets,以便我也可以在其他应用程序中使用此类。我是一个REST的新手,所以一步一步的说明将不胜感激。

谢谢大家。

1 个答案:

答案 0 :(得分:3)

找到答案,使用这种方法(嗯,相同的方法,不同的签名)可以解决问题:)

public GoogleAuthorizationCodeFlow.Builder(HttpTransport transport,
                               JsonFactory jsonFactory,
                               String clientId,
                               String clientSecret,
                               Collection<String> scopes)