vk-java-sdk icon indicating copy to clipboard operation
vk-java-sdk copied to clipboard

Ошибка "Invalid JSON" при обращении к ads.getAds

Open thehighestmath opened this issue 5 years ago • 1 comments

Доброго времени суток! Хочу получить список рекламных объявлений, но при выполнении запроса получаю вот такой лог ошибок

12:42:24.314 [main] ERROR com.vk.api.sdk.client.ApiRequest - Invalid JSON: {"response":[{"id":"55214535","campaign_id":1012295058,"status":0,"approved":"2","create_time":"1558295431","update_time":"1558332672","goal_type":1,"cost_type":1,"day_limit":"0","all_limit":"0","start_time":"0","stop_time":"0","category1_id":"476","category2_id":"0","age_restriction":"3","name":"Photographer Kseniya Andreevna","events_retargeting_groups":[],"ad_format":9,"cpm":"32000","impressions_limit":5,"ad_platform":"all"}]}
com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonPrimitive
	at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:897) ~[gson-2.8.5.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[gson-2.8.5.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[gson-2.8.5.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41) ~[gson-2.8.5.jar:?]
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82) ~[gson-2.8.5.jar:?]
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.8.5.jar:?]
	at com.google.gson.Gson.fromJson(Gson.java:927) ~[gson-2.8.5.jar:?]
	at com.google.gson.Gson.fromJson(Gson.java:994) ~[gson-2.8.5.jar:?]
	at com.vk.api.sdk.client.ApiRequest.executeWithoutRetry(ApiRequest.java:101) [sdk-1.0.6.jar:?]
	at com.vk.api.sdk.client.ApiRequest.execute(ApiRequest.java:64) [sdk-1.0.6.jar:?]
	at Main.main(Main.java:28) [main/:?]

Токен -- рабочий. Использую com.vk.api:sdk:1.0.6 Надеюсь на помощь. Заранее спасибо!

P.S. исходный код ниже, вдруг в нём ошибка :-(

import com.vk.api.sdk.client.TransportClient;
import com.vk.api.sdk.client.VkApiClient;
import com.vk.api.sdk.client.actors.UserActor;
import com.vk.api.sdk.exceptions.ApiException;
import com.vk.api.sdk.exceptions.ClientException;
import com.vk.api.sdk.httpclient.HttpTransportClient;
import com.vk.api.sdk.objects.ads.Ad;

import java.util.List;

public class Main {

    private static final String USER_TOKEN = "****************************";
    private static final int USER_ID = 103360899;

    private static final UserActor USER_ACTOR = new UserActor(USER_ID, USER_TOKEN);
    private static final TransportClient TRANSPORT_CLIENT = HttpTransportClient.getInstance();
    private static final VkApiClient VK_API_CLIENT = new VkApiClient(TRANSPORT_CLIENT);

    public static void main(String[] args) {
        List<Ad> ads = null;
        try {
            ads = VK_API_CLIENT
                    .ads()
                    .getAds(USER_ACTOR, 1604834286)
                    .includeDeleted(false)
                    .execute();
        } catch (ApiException | ClientException e) {
            e.printStackTrace();
        }

        System.out.println(ads);
    }
}

thehighestmath avatar May 01 '20 09:05 thehighestmath

Outdated ads schema, same issue #191

aotd1 avatar Dec 09 '20 11:12 aotd1

Fixed in 1.0.15

aotd1 avatar Oct 18 '23 08:10 aotd1