Невозможно заставить простой скрипт приложений Google работать из Android Studio с Volley - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь обновить электронную таблицу Google с Android, и для этого я использую скрипт приложений Google и Volley 1.1.0 (хотя я также тестировал его с 1.0.0, и он показывает те же результаты).

Очень простой скрипт, который у меня есть, уже работает

function doGet(request) {
  var spreadsheetId = "1EjtSycgdAEIeBMzpphdBt-AgLPbxPD0HOK3GJUBJX8Y";
  var sheetName = "Test";

  var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
  sheet.getRange(1, 1, 1, 1).setValue("Test");

  return ContentService.createTextOutput(JSON.stringify({sheet:sheetName, spreadsheetId: spreadsheetId}));
}

Когда я запускаю его из браузера, он работает корректно.Значение листа меняется, и отображается Json.

Между тем, в моем приложении для Android этот код выполняется при нажатии кнопки

RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, scriptURL, null, new Response.Listener<JSONObject>() {
     @Override
     public void onResponse(JSONObject response) {
            System.out.println("Response is: "+response);
     }
}, new Response.ErrorListener() {
     @Override
     public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
     }
});
queue.add(jsonObjectRequest);

Но это приводит к этой ошибке

W/System.err: com.android.volley.ParseError: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

Я даже протестировал его, используя StringRequest вместо JsonObjectRequest, и он странным образом возвращает целую HTML-страницу, и даже в этом случае электронная таблица не обновляется.

В чем проблема с этим кодом?

...