0

Google Drive API v2 rev 75 を使用して、ファイルを AppData フォルダーに挿入しようとしていますが、挿入は次のように失敗します。

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403

「現在のスコープでは、appdata フォルダーの使用は許可されていません」

ただし、スコープ「https://www.googleapis.com/auth/drive.appdata」はAPIコンソールで指定されているため、少し行き詰まっています。

挿入コードは次のとおりです。

    File file = new File();
    file.setTitle("myfile");
    file.setDescription("configuration file");
    file.setMimeType("text/plain");
    file.setParents(Arrays.asList(new ParentReference().setId("appdata")));

    try {
        File file1 = service.files().insert(file, ByteArrayContent.fromString("text/plain", "some settings")).execute();
    } catch (IOException e) {
        log.severe("An error occured: " + e);
        return null;
    }

私が使用する認証コードは、DrEdit [サンプル]( https://code.google.com/p/google-drive-sdk-samples/source/browse/java/src/com/google/drive/samplesで詳述されているものに従います/dredit/CredentialMediator.java?r=54312a4a583d5a2ba546330a892c4b0aca75c00d )

私のコードの特定のスニペットは次のとおりです。

public static final List<String> SCOPES = Arrays.asList(
        // Required to access and manipulate files.
        "https://www.googleapis.com/auth/drive.file",
        ...
        "https://www.googleapis.com/auth/drive.appdata");

...

CredentialMediator mediator = new CredentialMediator(req, authSecrets.getClientSecretsStream(), SCOPES);

...

GoogleAuthorizationCodeRequestUrl urlBuilder =
new GoogleAuthorizationCodeRequestUrl(
        secrets.getWeb().getClientId(),
        secrets.getWeb().getRedirectUris().get(0),
        scopes)
        .setAccessType("offline")
        .setApprovalPrompt("force");

この問題が発生する理由はありますか? ありがとう。

4

0 に答える 0