我想用一个简单的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和东西?
答案 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