Wyszukiwanie zdjęć przez google grafika i pobieranie URL.

0

Witam, czy istniała by możliwość w Javie napisania kodu który by "jakby wpisywał daną frazę w google grafika i pobierał kilka URL zdjęć pierwszych w wyszukiwaniu"?

Chcę zaimplementować w aplikacji możliwość wyboru okładki, ikony nowej książki i tylko na taki pomysł wpadłem bo gdyby user miał wchodzić w przeglądarkę, pobierał url i wklejał dopiero to było by to trochę czasochłonne i by po prostu dał sobie spokój.

Aplikacja pisana w Android Studio na Javie.

Ma ktoś jakiś pomysł?

1

Może i by się dało ale:

  1. Google nie udostępnia takiego API za darmo
  2. Możesz na janusza parsować wyniki takich requestów, ale każda zmiana po stronie google = potrzeba zmiany u ciebie w apce bo przestanie działać
  3. To pewnie w ogóle jest niezgodne z licencją ;]
0
Shalom napisał(a):

Może i by się dało ale:

  1. Google nie udostępnia takiego API za darmo
  2. Możesz na janusza parsować wyniki takich requestów, ale każda zmiana po stronie google = potrzeba zmiany u ciebie w apce bo przestanie działać
  3. To pewnie w ogóle jest niezgodne z licencją ;]

Kurcze, tego się obawiałem, masz może jakiś pomysł? No nie ma problemów bez wyjścia na pewno, już w ostateczności będę parsował te requesty (choć też nie wiem jak).
Ta aplikacja jest tylko jako tako poćwiczeniem Javy i Androida bo uczę się ich dopiero od nie dawna.

0
Markuz napisał(a):

https://www.quora.com/What-are-the-best-free-image-search-APIs-out-there

Świetnie wygląda nie wiem dlaczego tego mi nie wyświetliło, pewnie zle wpisywałem. Dziękuję :)

0
Markuz napisał(a):

https://www.quora.com/What-are-the-best-free-image-search-APIs-out-there

Znalazłem z tego wszystkiego chyba tylko to się nadające. https://rapidapi.com/contextualwebsearch/api/web-search?endpoint=5b864ca4e4b085e3f407ecca
Lecz mam problem bo nie potrafię tego użyć - pomimo ustawienia dependencies i trycatcha i tak wywala mi to aplikację.

OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
                .url("https://contextualwebsearch-websearch-v1.p.rapidapi.com/api/Search/ImageSearchAPI?autoCorrect=false&pageNumber=1&pageSize=10&q=Taylor%20Swift&safeSearch=false")
                .get()
                .addHeader("x-rapidapi-host", "contextualwebsearch-websearch-v1.p.rapidapi.com")
                .addHeader("x-rapidapi-key", "0e28cd199bmsh5de37872ac0fea1p16ee77jsnf066b79f9a9b")
                .build();

        try{
            Response response = client.newCall(request).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
//DEPENDENCIES
implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.5.0'
    implementation group: 'com.squareup.okio', name: 'okio', version: '1.6.0'

Wywala taki o to error android.os.NetworkOnMainThreadException z bloku trycatcha (ten response). Po drugie chyba ten "x-rapid-key" jest zły bo go skopiowałem ze strony, a w przeciwnym wypadku licencja wymaga tam chyba abonamentu (SING_UP_FOR_KEY)

1

Wydaje mi się, że nazwa wyjątku opisuje całkiem dobrze co jest problemem... Użyj np. AsyncTask

0

Kurcze po użyciu AsyncTaska niby działało by tylko pisze mi "You are not subscribed to this API" Basic plan kosztuje 0$ ale ma 10000limit czyli 1516 wyszukań (wg mojego skryptu) miesięcznie co na jedną osobę mogło by być mało a robiąc tak aplikacje już kompletnie nie ma to prawa bytu - ma ktoś jakieś inne, bezpłatne rozwiazanie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1