Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: API wyszukujące zdjęcia w sieci na podstawie słów kluczowych
Forum PHP.pl > Forum > PHP
duch4ever
Witam, szukam funkcji lub wskazówek jak napisać API wyszukujące w sieci grafikę na podstawie słów kluczowych. Np podaje słowa kluczowe, samochód, opel, astra i zwraca link do zdjęcia samochodu. Wiecie może czy jakaś wyszukiwarka udostępnia takie api a może macie już gotowe rozwiązanie? Pozdrawiam
konrados
Nie za bardzo kumam? Chcesz tworzyć api obsługujące inne api?

Np. flicr udostępnia takie coś:
http://www.flickr.com/services/api/flickr.photos.search.html

Google też ma swoje google image search api.

I Ty teraz chcesz stworzyć własne api oparte o to? Ciekawe...
duch4ever
Nie, źle się wyraziłem chcę po prostu uzyskać taką funkcjonalność. Może znasz takie funkcje które pozwolą skorzystać z tych API co by nie pisać drugi raz?
konrados
Jak chodzi o flickr to mogę Ci zapodać mój kod javascriptowy (wymaga jquery):

  1. $(document).ready(function(){
  2.  
  3. //obrazki z flickr
  4. var license = "1,2,3,4,5,6";
  5. var url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=twojApiKey&text="+czegoChceszSzukac+"&license="+license+"&extras=description&per_page=20&format=json&jsoncallback=?";
  6. $.getJSON(url,function(data) {
  7. var result="";
  8. $.each(data.photos.photo, function(i,item){
  9. var imgHref = 'http://farm' + item["farm"] + '.static.flickr.com/' + item["server"] + '/' + item["id"] + '_' + item["secret"] + '.jpg';
  10. var imgFlickrPageHref = 'http://www.flickr.com/photos/' + item["owner"] + '/' + item["id"] + '/';
  11. var description = item["description"]['_content'];
  12. result += '<div class="ImageContainer">';
  13. result += "<a href='"+imgFlickrPageHref+"'>";
  14. result += '<img src = "' + imgHref + '" title="'+item["title"]+'">';
  15. result += "</a>";
  16. result += '</div>';//koniec ImageContainer
  17. })
  18. $('#flickrImages').html(result);
  19. });
  20. })
  21. <div id = "flickrImages"></div>


Zamiast "twojApiKey" musisz podać swój api key, który za darmo zdobywasz na flickru
Zamiast "czegoChceszSzukac" daj słowa kluczowe do wyszukania

Nie wiem czy warto się bawić w php - wysyłanie żądań do api flickra trochę trwa (nawet czasem do 2 sek) więc ajax wydaje się lepszy. No ale jak koniecznie chcesz to http://phpflickr.com/

A google image search w ogóle nie znam, ale google daje kupę wyników (poszukaj google image search api php) więc z pewnością znajdziesz jakąś prostą funkcję. Aczkolwiek nie jestem pewien czy w ogóle możesz z google api korzystać tak jak z flicr api (czyli wyświetlać obrazki sobie na stronce)
duch4ever
Dzięki zaraz protestuje jak to śmiga, właśnie o takie coś mi chodziło.

Heh przetestowałem i coś nie działa :/ jakimś orłem w JS nie jestem ale jquery mam, zdobyłem apikey i nic.
konrados
No a konsola błędów co mówi? (Ctrl+Shift+J w firefoxie)
duch4ever
Ostrzeżenie: anonymous function does not always return a value
Plik źródłowy: http://ajax.googleapis.com/ajax/libs/jquer...0/jquery.min.js
Wiersz: 62, Kolumna: 22
Kod źródłowy:
)return ha.call(this,a)},beforeactivate:function(a){a=a.target;a.nodeName.toLowerCase()=
=="input"&&a.type==="radio"&&c.data(a,"_change_data",Da(a))}},setup:function(a,b,d){for(var f in W)c.event.add(this,f+".specialChange."+d.guid,W[f]);return ga.test(thi...

Wersja jqery ma znaczenie?
konrados
Coś mi się wydaje, że ten błąd to raczej z powodu jakiegoś Twojego innego skryptu.

A co to wersji to nie sądzę by to miało znaczenie, ale ja używam 1.4.3 :
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>


Weź spróbuj na czystej, nowej stronie ten skrypt wrzucić.

Aha, a w tym fragmencie:
  1. var url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=twojApiKey&text="+czegoChceszSzukac+"&license="+license+"&extras=description&per_page=20&format=json&jsoncallback=?";

czegoChceszSzukac powinno być zmienną, więc weź to zamień na:

  1. var toFindKeywords = "test";//jakieś słowa kluczowe do znalezienia
  2. var url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=twojApiKey&text="+toFindKeywords +"&license="+license+"&extras=description&per_page=20&format=json&jsoncallback=?";

duch4ever
Podmieniłem jak sugerowałeś i działa pięknie, wielkie dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.