appengine의 특정 Google 드라이브 스프레드 시트를 읽으 려합니다. 스프레드 시트는 웹 클라이언트의 Google 피커를 사용하여 선택됩니다. 제목으로 쿼리를 사용하여 스프레드 시트에 액세스하려고합니다. 제목은 내 appengine 서블릿으로 전달 된 다음 Gdata Java Client Lib을 사용하여 쿼리합니다.앱 엔진 문제의 Google 스프레드 시트
public static FeedURLFactory factory = FeedURLFactory.getDefault();
public static SpreadsheetService spreadsheetService= new SpreadsheetService("evermedcpr");
List scopes = Arrays.asList("https://spreadsheets.google.com/feeds");
AppIdentityService appIdentity = AppIdentityServiceFactory.getAppIdentityService();
AppIdentityService.GetAccessTokenResult accessToken = appIdentity.getAccessToken(scopes);
Credential creds = new Credential(BearerToken.authorizationHeaderAccessMethod());
creds.setAccessToken(accessToken.getAccessToken());
SpreadsheetService ss = new SpreadsheetService("DBM4G-demo");
ss.setOAuth2Credentials(creds);
getSpreadsheet(spreadsheetName);
public SpreadsheetEntry getSpreadsheet(String spreadsheet)
throws Exception {
SpreadsheetQuery spreadsheetQuery
= new SpreadsheetQuery(new URL("https://spreadsheets.google.com/feeds/"));
spreadsheetQuery.setTitleQuery(spreadsheet);
SpreadsheetFeed spreadsheetFeed = spreadsheetService.query(spreadsheetQuery,
SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = spreadsheetFeed.getEntries();
if (spreadsheets.isEmpty()) {
throw new Exception("No spreadsheets with that name");
}
return spreadsheets.get(0);
}
}
난 항상 내 로그에 404 응답 수 :
com.google.api.client.googleapis.services.AbstractGoogleClient <init>: Application name is not set. Call Builder#setApplicationName.
W 2013-07-15 14:50:31.665
[s~evermedcpr/1.368807282351251748].<stderr>: An error occurred: com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 OK
{
"code" : 404,
"errors" : [ {
"domain" : "global",
"message" : "Not Found",
"reason" : "notFound"
} ],
"message" : "Not Found"
}
내가 선택한 스프레드 시트를 액세스 가야합니까 어떻게
에서 appengine에이 코드를 ??
토큰
3) SpreadsheetService의 OAuth를을? 그렇지 않다면 DrEdit 튜토리얼을 사용하여 App Engine에서 OAuth가 작동하도록하십시오. 그 후에 CellDemo.java를보고 API 사용법을 배우십시오. 스프레드 시트 API보다는 구글 앱 스크립트가 더 간단한 옵션이다. – eddyparkinson
나는 누군가가 완전한 해결책을 게시하기를 원한다고 생각한다. 이 작업을 수행하는 코드가 있지만 필요한 비트를 추출하는 데 너무 많은 시간이 걸리고 디버그 등이 필요합니다. DrEdit 비트가 상당히 크고 약간의 변경이 필요합니다. – eddyparkinson
@eddyparkinson 예 oauth가 작동 중입니다. 문제를 발견했습니다. 잘못된 피드를 사용했습니다. 곧 업데이트 될 것입니다. – Patrick