Google Spreadsheets API(Java)

时间:2014-10-23 07:15:23

标签: java google-sheets gdata

我想用一个简单的java程序计算的数值来更新电子表格。 它不是一个Android应用程序或任何东西,只是普通的常规Java。

问题是程序正在退出,说帐户无效。 但提供的凭证是100%有效的 - 我将它们从eclipse中复制并粘贴到gmail登录表单中 - 它们可以工作..

该类(api教程中的基本类):

import com.google.gdata.client.spreadsheet.*;
import com.google.gdata.data.spreadsheet.*;
import com.google.gdata.util.*;

import java.io.IOException;
import java.net.*;

public class MySpreadsheetIntegration {
  public static void main(String[] args)
      throws AuthenticationException, MalformedURLException, IOException, ServiceException {

    String USERNAME = "abc@gmail.com";
    String PASSWORD = "123";

    SpreadsheetService service =
        new SpreadsheetService("MySpreadsheetIntegration-v1");
    service.setUserCredentials(USERNAME, PASSWORD);

    // TODO: See other portions of this guide for code to put here...
  }
}

堆栈跟踪:

Exception in thread "main" com.google.gdata.client.GoogleService$InvalidCredentialsException: Invalid credentials
at com.google.gdata.client.GoogleAuthTokenFactory.getAuthException(GoogleAuthTokenFactory.java:660)
at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:560)
at com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAuthTokenFactory.java:397)
at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:364)
at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:319)
at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:303)
at MySpreadsheetIntegration.main(MySpreadsheetIntegration.java:17)

我想知道这是否可能使用api w / o android sdk和东西?

2 个答案:

答案 0 :(得分:0)

Google Spreadsheets API使用OAuth作为其服务的授权协议(在本例中为API)。阅读Authorizing Requests部分,了解您的应用程序如何获得授权并访问API。

此外,请考虑来自Google的警告

  

警告:强烈建议不要使用ClientLogin作为授权机制。在使用这种机制之前,请彻底   考虑将OAuth 2.0与存储的刷新令牌或OAuth 1.0a一起使用   使用存储的访问令牌。

答案 1 :(得分:0)

使用Oauth不是强制性的。但是,为了在没有Oauth的情况下进行身份验证,您可以在Google帐户安全设置(用于上述尝试登录的帐户)中启用lessSecureApps

要启用lessSecureApps,请转到https://www.google.com/settings/security/lesssecureapps