Можем ли мы получить доступ к формам опроса Google через REST API для Android - PullRequest
0 голосов
/ 29 августа 2018

Можем ли мы получить доступ к формам опроса Google через REST API для Android и заполненным POST данным в опросе Google через Android?

1 Ответ

0 голосов
/ 10 февраля 2019

здесь есть библиотека java , и она может быть реализована так:

Предполагается, что вы уже настроили API опроса на консоли разработчика.

Вы привязываете библиотеку к своему проекту:

implementation 'com.google.apis:google-api-services-surveys:v2-rev16-1.25.0'.

Если вы используете Gson в качестве парсера json, вам нужно исключить Jackson, поскольку он поставляется с java-библиотекой опроса. Итак, ваша запись в gradle выглядит так:


implementation("com.google.apis:google-api-services-surveys:v2-rev16-1.25.0") {
        exclude module: 'google-http-client-jackson2'
        exclude module: 'commons-logging'
        exclude module: 'httpcore'
        exclude module: 'httpclient' // excluding apache dependencies, too, since we don't need them.
    }

Чтобы использовать Gson с API-интерфейсом опроса, необходимо связать клиент API gson google:

implementation "com.google.api-client:google-api-client-gson:1.28.0"

С этим вы можете выполнять свои опросы через:

...

private void sendSurvey() {
    Survey mySurvey = new Survey().set("Hello", "World");
    new SendSurveyAsyncTask().execute(mySurvey);
}

...
private static class SendSurveyAsyncTask extends AsyncTask<Survey, Void, Boolean> {

        @Override
        protected Boolean doInBackground(Survey... surveys) {
            try {
                // using the NetHttpTransport here. You could even write your own retrofit transport for that, if you want.
                // See https://developers.google.com/api-client-library/java/google-http-java-client/android
                new Surveys.Builder(new NetHttpTransport(), new GsonFactory(), null)
                        .build()
                        .surveys()
                        .insert(surveys[0])
                        .execute();
            } catch (IOException e) {
                Log.e("SendSurveyAsyncTask", "oops", e);
                return false;
            }
            return true;
        }

        @Override
        protected void onPostExecute(Boolean result) {
            if (result) {
                Log.d("SendSurveyAsyncTask", "whoo!");
            } else {
                Log.d("SendSurveyAsyncTask", "boo!");
            }
        }
    }

надеюсь, это поможет :)

ура

...