Написать в 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-приложения: получил полные трассировки стека вместе с пояснительными сообщениями.