使用OAuth 2.0 for Google从电子表格中获取数据

时间:2016-08-23 13:46:50

标签: java google-sheets google-spreadsheet-api

我正在尝试编写一个从电子表格中读取数据的程序。我知道我必须使用OAuth或API密钥,但是我完全不知道如何在我的程序中实现这样的系统。我环顾四周,发现了很多例子和“教程”,但是我没有得到任何一个。(我对编程比较陌生)。 因此,有人可以用最简单的方式解释我如何实现一个允许我对程序进行身份验证的系统,以便我可以从电子表格中读取数据(只有auth部分,其余的我想我想通了)。 如果这是相关的,则可以将电子表格公开,它只是一列数据。我正在使用Eclipse作为我的环境。

问候

1 个答案:

答案 0 :(得分:0)

按照此Java Quickstart中指示的步骤进行操作。

第1步:启用Google表格API

一个。使用此向导可在Google Developers Console中创建或选择项目,并自动启用API。单击继续,然后转到凭据。

湾在“将凭据添加到项目”页面上,单击“取消”按钮。

℃。在页面顶部,选择OAuth许可屏幕标签。选择电子邮件地址,输入产品名称(如果尚未设置),然后单击“保存”按钮。

d。选择“凭据”选项卡,单击“创建凭据”按钮,然后选择“OAuth客户端ID”。

即选择应用程序类型“其他”,输入名称“Google表格API快速入门”,然后单击“创建”按钮。

F。单击“确定”关闭生成的对话框。

克。单击客户端ID右侧的file_download(下载JSON)按钮。

小时。将此文件移动到您的工作目录并将其重命名为client_secret.json。

完成所有操作后,这是使用您下载的client_secret.json处理授权的代码。

public static Credential authorize() throws IOException {
        // Load client secrets.
        InputStream in =
            SheetsQuickstart.class.getResourceAsStream("/client_secret.json");
        GoogleClientSecrets 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();
        Credential credential = new AuthorizationCodeInstalledApp(
            flow, new LocalServerReceiver()).authorize("user");
        System.out.println(
                "Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
        return credential;
    }