Since of today, our customers cannot upload images any more! We have not
made any changes to this code in the last couple of weeks, so we figure
that error must be on Google's side.
We are using PicasawebService (gdata-photos-2.0.jar)
We are authorizing each request using this code:
GoogleCredential credential = new GoogleCredential.Builder().
setTransport(HTTP_TRANSPORT)
.setJsonFactory(JacksonFactory.getDefaultInstance())
.setServiceAccountId("X
<https://picasaweb.google.com/data/feed/api/user/default/albumid/6380214646973035281>
[email protected]")
.setServiceAccountScopes(Collections.singleton("
https://picasaweb.google.com/data/"))
.setServiceAccountPrivateKeyFromP12File(new File(PRIVATE_KEY_FILE_PATH))
.setServiceAccountUser("XXXXXX")
.build();
credential.refreshToken();
PicasawebService client = new PicasawebService("test-dinitrol-service");
client.setOAuth2Credentials(credential);
We can list the user's albums without errors:
URL feedUrl = new URL("
https://picasaweb.google.com/data/feed/api/user/default?kind=album");
UserFeed myUserFeed = client.getFeed(feedUrl, UserFeed.class);
for (AlbumEntry userAlbum : myUserFeed.getAlbumEntries()) {
System.out.println("["+userAlbum.getId()+"] "+userAlbum.getTitle().
getPlainText());
}
But when we try to insert images we get an error:
PhotoEntry returnedPhoto = client.insert(imagePostUrl, myPhoto);
(Where imagePostUrl is for for example:
https://picasaweb.google.com/data/feed/api/user/default/albumid/XXXXXXXXXXX)
The error response is:
com.google.gdata.util.InvalidEntryException: OK
<HTML>
<HEAD>
<TITLE>Bad Request</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Bad Request</H1>
<H2>Error 400</H2>
</BODY>
</HTML>
at com.google.gdata.client.http.HttpGDataRequest.
handleErrorResponse(HttpGDataRequest.java:602)
at com.google.gdata.client.http.GoogleGDataRequest.
handleErrorResponse(GoogleGDataRequest.java:564)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(
HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(
HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(
GoogleGDataRequest.java:536)
at com.google.gdata.client.media.MediaService.insert(
MediaService.java:400)
at no.strong.service.model.ServiceCenterModel.uploadCameraImage(
ServiceCenterModel.java:6648)
at no.strong.service.servlet.ServiceCenterServlet.uploadCameraImage(
ServiceCenterServlet.java:425)
at no.strong.service.servlet.ServiceCenterServlet.doProcessJsonAPI(
ServiceCenterServlet.java:271)
at no.strong.service.servlet.StrongServlet.doProcess(
StrongServlet.java:53)
at no.strong.service.servlet.ServiceCenterServlet.doProcess(
ServiceCenterServlet.java:100)
at no.strong.service.servlet.StrongServlet.doPost(
StrongServlet.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(
ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1166)
at no.strong.service.filter.GlobalFilter.doFilter(
GlobalFilter.java:88)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.appengine.api.socket.dev.DevSocketFilter.
doFilter(DevSocketFilter.java:74)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.ResponseRewriterFilter.
doFilter(ResponseRewriterFilter.java:128)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.HeaderVerificationFilter.
doFilter(HeaderVerificationFilter.java:34)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.
doFilter(ServeBlobFilter.java:63)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.
doFilter(TransactionCleanupFilter.java:48)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.
doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.DevAppServerModulesFilter.
doDirectRequest(DevAppServerModulesFilter.java:366)
at com.google.appengine.tools.development.DevAppServerModulesFilter.
doDirectModuleRequest(DevAppServerModulesFilter.java:349)
at com.google.appengine.tools.development.DevAppServerModulesFilter.
doFilter(DevAppServerModulesFilter.java:116)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.
doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(
ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(
SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(
SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(
ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(
WebAppContext.java:418)
at com.google.appengine.tools.development.DevAppEngineWebAppContext.
handle(DevAppEngineWebAppContext.java:95)
at org.mortbay.jetty.handler.HandlerWrapper.handle(
HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$
ApiProxyHandler.handle(JettyContainerService.java:508)
at org.mortbay.jetty.handler.HandlerWrapper.handle(
HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(
HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.
content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(
SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.
run(QueuedThreadPool.java:582)
--
You received this message because you are subscribed to the Google Groups
"Google Picasa Web Albums API" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-picasa-data-api.
For more options, visit https://groups.google.com/d/optout.