1

最新の Java SDK を使用して、Google ドライブの新しいサムネイル機能を活用したいと考えています。しかし、私が得るのは悪いリクエスト応答だけです。誰かがこの機能の実例を投稿できますか? 私は単純に MIME タイプと Base64 でエンコードされた画像データを設定しましたが、これは機能しません - 少なくとも file.insert と file.patch では。

更新: これは私の (簡略化された) コード スニペットです。新しいサムネイルがなくても問題なく動作し、エンコードされた画像データも問題ないように見えます。

...
Drive drive = getDrive(account);
File file = new File();
file.setTitle(name);
...
HTTPResponse response = urlFetch.fetch(new URL(imageUrl));
String encodedImage = new String(Base64.encodeBase64(response.getContent()));
Thumbnail thumbnail = new Thumbnail();
thumbnail.setImage(encodedImage);
thumbnail.setMimeType("image/png");
file.setThumbnail(thumbnail);
file = drive.files().insert(file).execute();

これは応答です:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 OK
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Bad Request",
    "reason" : "badRequest"
  } ],
  "message" : "Bad Request"
}
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:143)
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.execute(GoogleJsonResponseException.java:187)
    at com.google.api.client.googleapis.services.GoogleClient.executeUnparsed(GoogleClient.java:279)
    at com.google.api.client.http.json.JsonHttpRequest.executeUnparsed(JsonHttpRequest.java:207)
4

1 に答える 1

0

サムネイル画像は、Base64UrlSafe文字列としてエンコードする必要があります。使用する

String encodedImage = Base64.encodeBase64URLSafeString(response.getContent());

画像をエンコードすることで問題が修正されました。

于 2012-10-23T10:22:12.323 に答える