2014-10-23 3 views
0

Я хотел бы обновить таблицу с числовыми значениями, которые вычисляются с помощью простой java-программы. Это не goign для Android-приложения или что-то еще, просто обычная Java.API Google Spreadsheets (Java)

Проблема заключается в том, что у меня заканчивается отказ в том, что учетная запись недействительна. Но предоставленные полномочия являются 100% в силе - я copyed их из затмения и вставить их в форму Gmail для входа - они работают ..

Класс (который является базовым классом, из апи учебника):

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 = "[email protected]"; 
    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... 
    } 
} 

StackTrace:

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 без Android SDK и прочее?

ответ

0

API Google Spreadsheets использует OAuth в качестве протокола авторизации для своих сервисов (в данном случае API). Ознакомьтесь с разделом Authorizing Requests, чтобы понять, как ваше приложение может получить авторизацию и получить доступ к API.

Кроме того, просьба рассмотреть этот предупреждение от Google:

Предупреждение: Использование ClientLogin в качестве механизма авторизации настоятельно не рекомендуется. Перед использованием этого механизма, пожалуйста, полностью рассмотрите возможность использования OAuth 2.0 с сохраненным токеном обновления или OAuth 1.0a с сохраненным токеном доступа.

+0

Спасибо, моя проблема сейчас нет Java сниппет, просто .net – kitty

+0

Если вы читали внимательно, есть вкладка в правом верхнем углу кода, говорит «Java». Таким образом, вы можете переключаться между Java и .NET. –

+1

Извините, что я слепой или нет Java для темы «Выполнение OAuth 2.0» – kitty

0

Не обязательно использовать Oauth. Но для того, чтобы аутентификация без Oauth работала, вы включите lessSecureApps в своих настройках безопасности учетной записи google (учетная запись, используемая для попытки входа в систему выше).

Чтобы включить lessSecureApps, перейдите к https://www.google.com/settings/security/lesssecureapps

Смежные вопросы