Написать в Google Sheet / Google Form - Java

Есть ли способ написать текст в существующий общий документ Google или создать новый файл google в общей папке Google, используя Java (и не подключаясь к какой-либо учетной записи, поскольку документы и папки являются общими)?

Спасибо!


*РЕДАКТИРОВАТЬ

Вместо того чтобы использовать API Google, я создал форму Google, которая заполняется приложением и автоматически экспортируется в Google Sheet. Я могу сделать запрос POST Http ИЛИ открыть предварительно заполненную форму Google:

try{URL url = new URL(my_google_form_direct_url);

    //PREPARE PARAMS
    Map<String,Object> params = new LinkedHashMap<>();
    params.put("entry." + id_1, "TEXT1");
    params.put("entry." + id_2, "TEXT2");
    StringBuilder postData = new StringBuilder();
    for(Map.Entry<String,Object> param : params.entrySet()){
        if(postData.length() != 0){postData.append('&');}
        postData.append(URLEncoder.encode(param.getKey(), StandardCharsets.UTF_8.name()));
        postData.append('=');
        postData.append(URLEncoder.encode(String.valueOf(param.getValue()), StandardCharsets.UTF_8.name()));}
    byte[] postDataBytes = postData.toString().getBytes(StandardCharsets.UTF_8.name());

/************************************/        
    //SEND POST
    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
    conn.setDoOutput(true);
    conn.getOutputStream().write(postDataBytes);

    //GET RESPONSE
    int response = conn.getResponseCode();
    if(response == HttpURLConnection.HTTP_OK) {
        Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8.name()));
        InputStream in = conn.getInputStream();
        in.close();}
    conn.disconnect();

/************************************/
    //OR OPEN THE PRE-FILLED FORM
    URL prefilled_url = new URL(my_google_form_user_url + "?usp=pp_url&" + postData);
    if(Desktop.isDesktopSupported()){
        Desktop.getDesktop().browse(prefilled_url.toURI());}

}catch (IOException e1){e1.printStackTrace();}

Но мне было интересно, есть ли ограничение длины URL-адреса, когда я открываю его с помощью "Рабочего стола" и когда я делаю запрос POST?

Спасибо!

0 ответов

Вы можете использовать мой любимый проект для отправки форм Google через Java:

https://github.com/stepio/jgforms

Вероятно, ограничения в основном определяются стандартами HTTP, поэтому этот вопрос может вам помочь:

Какова максимальная длина URL-адреса в разных браузерах?

Судя по моему опыту работы с ограничениями, я успешно использовал формы для реализации "регистратора" для Android-приложения: получил полные трассировки стека вместе с пояснительными сообщениями.

Другие вопросы по тегам