Mesin Pencari Image dengan Google API

Skrip auto konten dalam tutorial cara membuat blog auto-generated content sebenarnya sangat banyak fungsinya. Proses generate konten yang dihasilkan bukan hanya dalam bentuk konten tertulis saja, tapi juga gambar, book, news, dan video. Tapi kali ini kita membahas Google Search API untuk image-nya saja dulu. Seperti halnya cara kerja search engine gambar dari Bing API pada tutorial sebelumnya, Google Search API image ini lebih banyak fungsi yang kita bisa tambahkan dan hasil pencariannya juga lebih banyak dibandingkan dengan menggunakan API Bing.

Bagaimana cara membuat mesin pencari Image dengan Google API di halaman search result WordPress?, ikuti saja langkah-langkahnya sebagai berikut:

1. Buka editor search.php blog wp kamu.

2. Kode 1 (Script proses keyword) – Tempatkan Kode berikut di paling atas sebelum kode <?php get_header(); ?>, jangan lupa daftarkan situs kamu di Google API sebelumnya untuk mendapatkan API key http://code.google.com/apis/ajaxsearch/key.html

define('GOOGLE_API_KEY', '');
function pete_curl_get($url, $params) {
	$post_params = array();

	foreach ($params as $key => &$val) {
		if (is_array($val)) $val = implode(',', $val);
		$post_params[] = $key.'='.urlencode($val);
	}

	$post_string = implode('&', $post_params);
	$fullurl = $url."?".$post_string;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
	curl_setopt($ch, CURLOPT_URL, $fullurl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040608'); //kamu bisa pake user agent yang lain, lihat listnya di sini www.user-agents.org
	$result = curl_exec($ch);curl_close($ch);

	return $result;
}

function perform_google_web_search($termstring) {
	$start = 0;
	$result = array();
	while ($start<10) {  //kamu bisa ganti angka "50" untuk jumlah list  yang ditampilkan
		$searchurl = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0';
		$searchurl .= '&key='.'ABCDEFG'; //ganti ABCDEFG dengan kode api Google http://code.google.com/apis/ajaxsearch/signup.html
		$searchurl .= '&start='.$start;
		$searchurl .= '&rsz=large'; //kamu bisa pake "small" untuk menampilkan hanya 4 (maksimal) pencarian
		$searchurl .= '&filter=0'; //kamu bisa ganti "filter=1" untuk mem-filter hasil pencarian
		$searchurl .= '&q='.urlencode($termstring);
		$response = pete_curl_get($searchurl, array());
		$responseobject = json_decode($response, true);

		if (count($responseobject['responseData']['results'])==0)
			break;
		$allresponseresults = $responseobject['responseData']['results'];

		foreach ($allresponseresults as $responseresult) {
			$result[] = array(
			'url' => $responseresult['visibleUrl'],
			'title' => $responseresult['titleNoFormatting'],
			'thumbnail' => $responseresult['tbUrl'],
			'originalurlimage' => $responseresult['originalContextUrl'],
			);
		}

		$start += 8;
	}

	return $result;
}

if (isset($_REQUEST['s']))
	$termstring = urldecode($_REQUEST['s']);
else
	$termstring = '';

2.Kode 2 (hasil yang ditampilkan) – Tempatkan kode berikut sebelum kode <?php endif; ?>.

function hilangkan_spesial_karakter($result) { //fungsi hilangkan semua spesial karakter
	$result = strip_tags($result);
	$result = preg_replace('/&.+?;/', '', $result);
	$result = preg_replace('/\s+/', ' ', $result);
        $result = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', ' ', $result);
	$result = preg_replace('|-+|', ' ', $result);
        $result = preg_replace('/&#?[a-z0-9]+;/i','',$result);
        $result = preg_replace('/[^%A-Za-z0-9 _-]/', ' ', $result);
	$result = trim($result, ' ');
	return $result;
}
function CleanFileNameBan($result){
	$bannedkey = array("key","key","key"); //masukkan kata kunci satu persatu untuk menghindari kata-kata yang tidak diinginkan.
	$result = str_replace($bannedkey, '',$result);
	$result = trim($result);
	return $result;
}

$termstring = $s;

if ($termstring!='') {
	$googleresults = perform_google_web_search($termstring);
	//Kamu bisa ganti kode <h1> serta test yang ada sesuai dengan kode html dan text keinginan kamu begitu juga dengan yang lainnya
	print '<h1>Gambar  '.CleanFileNameBan(hilangkan_spesial_karakter($s)).'  yang terkait:</h1>';
	print '<p style="font-weight:bold">Powered by Google</p>';
	foreach ($googleresults as $result) {
		print '<div class="post">';
		print '<h1 class="title"><a href="'.$result['originalurlimage'].'">'.$result['title'].'</a></h1>';
		print '<a href="'.$result['originalurlimage'].'"><img src="'.$result['thumbnail'].'"/></a>';
		print '<p style="color:#777777">Sumber: '.$result['url'].'</p>';
		print '</div>';
	}
}

Selesai!

Penjelasan bagaimana hasil generate kode di atas bisa menampilkan gambar
Saya cuma mengubah referensi kode sebelumnya dengan kode berikut:

'url' => $responseresult['visibleUrl'],// Kode "visibleUrl" untuk menampilkan alamat url gambar
'title' => $responseresult['title'], //Kode "title" untuk menampilkan title gambar
'thumbnail' => $responseresult['tbUrl'], // Kode "tbUrl" untuk menampilkan thumbnail gambar
'originalurlimage' => $responseresult['originalContextUrl'],//Kode "originalContextUrl" untuk menampilkan link ke halaman gambar aslinya

Kode Hasil Proses

print '<h1 class="title"><a href="'.$result['originalurlimage'].'">'.$result['title'].'</a></h1>';
print '<a href="'.$result['originalurlimage'].'"><img src="'.$result['thumbnail'].'"/></a>';
print '<p style="color:#777777">Sumber: '.$result['url'].'</p>';

Kamu bisa belajar mengubah referensi kode tersebut dengan kode dari Google API, referensinya di sini. Selamat memodifikasi dan mencoba Sob!

Please Note
Ikuti petunjuk-petunjuk yang ada dalam kode.
Baca baik-baik aturan penggunaan Google API jika mau menggunakan skrip ini.
Advance only!

Update 30 APRIL 2010
Skrip diubah untuk menyesuaikan dengan aturan main Google AJAX Search API

Baca juga tips WordPress untuk menghentikan pencurian feed konten blog WorPress Anda.

39 Replies to “Mesin Pencari Image dengan Google API”

  1. om jev kasih tau dong kalo hasi searchnya seperti diweb…

    om jev kasih tau dong kalo hasi searchnya seperti diweb ini discripsnya seperti pencarian digoogle
    contoh:
    …… txt text text text [B]kata kunci[/b] text text text [b]kata kunci[/b] text texet ….

    • di plugin stt2extat sudah ada fitur seperti ini yang merupakan…

      di plugin stt2extat sudah ada fitur seperti ini yang merupakan support dari plugin search excerpt https://scott.yang.id.au/pages/search-excerpt.html

      • bila mengatifkan stt2extat apa perlu mematikan pluing STT2

        bila mengatifkan stt2extat apa perlu mematikan pluing STT2

        • Tidak perlu, jika itu menguras resource bisa juga perlu

          Tidak perlu, jika itu menguras resource bisa juga perlu

  2. om jev bagian ini $searchurl .= ‘&rsz=large’; klo pake api…

    om jev bagian ini $searchurl .= ‘&rsz=large’; klo pake api bing di post sebelum nya bisa ga ya ?

  3. bos kok ga bisa ? http://xtattoo.info/?s=hairstyle susah bngt ya ..…

    bos kok ga bisa ?

    http://xtattoo.info/?s=hairstyle

    susah bngt ya .. apa yg salah ??

  4. Tanya lagi om, :D Kalo mo pasang script ini di…

    Tanya lagi om, :D
    Kalo mo pasang script ini di single post n menggunakan post title sbg keywordnya, apa aja yang harus dirubah ya?
    Thanks

  5. tanya lagi neih om,,,, om tau gak script pencari torrent?…

    tanya lagi neih om,,,, om tau gak script pencari torrent? sorry kalo gak nyambung,,, :-)

    • Sorry om nggak tau, kalo mo nyari seperti itu banyak…

      Sorry om nggak tau, kalo mo nyari seperti itu banyak kok di forum DP.

  6. Mau nanya nih om responseresult[‘visibleUrl’] ini mestinya memunculkan URL gambarnya…

    Mau nanya nih om responseresult[‘visibleUrl’] ini mestinya memunculkan URL gambarnya kan?? tapi kok malah gak muncul ya,,?

    • Betul mas. Seharusnya muncul kok. Ini referensi arraynya code.google.com/apis/imagesearch/v1/reference.html

      Betul mas. Seharusnya muncul kok. Ini referensi arraynya code.google.com/apis/imagesearch/v1/reference.html

  7. Om jevuska emang top markotop,,, Ternyata yang membedakan ada pada…

    Om jevuska emang top markotop,,,

    Ternyata yang membedakan ada pada /services/search/images?v=1.0′;

    kalau untuk yang video apa tinggal ganti /services/search/video?v=1.0′;
    gitu ya om??

    trus di bagian result = array nya gemana om

    • Yup. Untuk arraynya kamu bisa pake referensi di code.google.com/apis/videosearch/v1/reference.html

      Yup. Untuk arraynya kamu bisa pake referensi di code.google.com/apis/videosearch/v1/reference.html

  8. Om jevuska emang top markotop,,,, ternyata bedanya cuma di ajax/services/search/images?v=1.0…

    Om jevuska emang top markotop,,,, ternyata bedanya cuma di ajax/services/search/images?v=1.0 ya om,,,

    kalau video apa tinggal ganti ajax/services/search/video?v=1.0 gitu ya om

    tapi di bagian $result[] = array

    harus di isi apa om untuk video,,

    makasih banyak dulu om untuk yang image,, udah berhasil,,

  9. nunggu postingan yang pake GOOGLE API NeWs OM!!! :)

    nunggu postingan yang pake GOOGLE API NeWs OM!!! :)

    • Udah di jawab kok, maap om telat jawabnya :)

      Udah di jawab kok, maap om telat jawabnya :)

  10. om jevu,, kalo code untuk google news gimana ditunggu lho…

    om jevu,, kalo code untuk google news gimana
    ditunggu lho om,,

    • agak ribet nih tetap make <a href="https://www.jevuska.com/2010/03/19/cara-bikin-auto-generate-content-di-halaman-search-wordpress/" rel="nofollow">https://www.jevuska.com/2010/03/19/cara-bikin-auto-generate-content-di-halaman-search-wordpress/</a> . Ganti…

      agak ribet nih tetap make https://www.jevuska.com/2010/03/19/cara-bikin-auto-generate-content-di-halaman-search-wordpress/ .
      Ganti http://ajax.googleapis.com/ajax/services/search/images?v=1.0 line 21 kode 1 dengan ajax.googleapis.com/ajax/services/search/news?v=1. dan arraynya pake referensi ini code.google.com/apis/newssearch/v1/reference.htm
      Begitu juga untuk kode 2-nya.

  11. om jev,, kalo yang pake google news gmn codenya? kan…

    om jev,, kalo yang pake google news gmn codenya?
    kan kayaknya lebih cepet ke indexnya,,,

  12. Mkasih om hmpir 5 blan lbih saya nyoba agc dri…

    Mkasih om hmpir 5 blan lbih saya nyoba agc dri om jev ,tp bru kmrin ini bisa brhasil…
    trus pngen nnya nih om,klu hsil gnerate link kluarnya d psangin kyak Adf.ly ato linkbucks gmna ya om crnya. mkasih..

  13. masih newbie om, mohon bimbingannya

    masih newbie om, mohon bimbingannya

  14. asik nih trik satu ini, mo nanya om jev kalo…

    asik nih trik satu ini, mo nanya om jev kalo ukuran thumbnail atau hasil gambar yang kita tampilkan agar bisa kita tentukan gimana om jev?

    • Kamu bisa tambahkan style pada line 30 kode 2 Misalnya…

      Kamu bisa tambahkan style pada line 30 kode 2

      Misalnya seperti ini:

      print '<a href="'.$result['originalurlimage'].'"><img height="50px"  width="50px" src="'.$result['thumbnail'].'"/></a>';
      
  15. ha ha ha… udah bisa mas… tinggal di single nya…

    ha ha ha… udah bisa mas… tinggal di single nya masih belum bisa.. cepetan ya postingnya.. [maksa mode ON] :D :D

  16. kalo sebelumnya di search.php udah ada kode untuk AGC kontent…

    kalo sebelumnya di search.php udah ada kode untuk AGC kontent gmn OM? aku kok gak bisa ya hiks… :(

    • function-nya digabung mas Adi, terus ubah nama functionnya. Ntar ane…

      function-nya digabung mas Adi, terus ubah nama functionnya. Ntar ane post untuk lebih jelasnya. :)

  17. mas, klo menaikkan limit query gogle api gmna ya? untk…

    mas, klo menaikkan limit query gogle api gmna ya? untk pdf search 15K UV per day hasil searchnya ga mau muncul…. pusing…. ada ide ga mas?

  18. oh iya.. :) mo nanya lg oom Jev, kl yg…

    oh iya.. :)

    mo nanya lg oom Jev, kl yg pk nyahoo boss gmn ya oom.. kok kl liat di panduan boss ada “img.dimensions=wallpaper” kayaknya asyik tuch, soalnya kl yg di google pk width ama height perintahnya jd kebanyakan en ga variatif dimensi gambarnya, mo cb utak-atik sendiri kok jd ancur.. :)

    terima kasih atas perhatiannya oom Jev..

    • yahoo boss masih banyak error yang masuk di log_error-nya WP

      yahoo boss masih banyak error yang masuk di log_error-nya WP

  19. nanya nich oom Jev, kl tampilan kode ‘result url’ khan…

    nanya nich oom Jev, kl tampilan kode ‘result url’ khan nampilin url nya full.. kl dibikin url utamanya aja yg keliatan bisa ga oom Jev..?

    misal

    hxxp://namadomain.com/imagetampil.gif

    jadi

    namadomain.com

    atau

    situs.namadomain.com

    buat yg dr sub-domain..

    • bukannya kode “result url” dalam tutorial ini memang untuk memunculkan…

      bukannya kode “result url” dalam tutorial ini memang untuk memunculkan url utamanya. “result url” artinya “visibleUrl”, nah kode inilah yang memunculkan url utamanya, bukan url gambar. Referensi: hxxp://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GimageResult

  20. bisa gak mas mesin pencari di wordpress di jadikan multi…

    bisa gak mas mesin pencari di wordpress di jadikan multi pencarian misal /search/keyword , /pdf/keyword , gambar/keyword. jadi terpisah2 tetapi tetap dalam satu domain contoh kayak Kayak “Findtoyou.com”

    • bisa kok. nanti saya post. Sabar yach :)

      bisa kok. nanti saya post. Sabar yach :)

  21. saya hanya bisa menerapkan yang auto conten di single post……

    saya hanya bisa menerapkan yang auto conten di single post… yang lainnya gagal :(

    jujur saya bingung, karena mbolak mbalik :D

    • salam kenal mas popopio.hehehe… emang agak perlu sedikit usaha mas…

      salam kenal mas popopio.hehehe… emang agak perlu sedikit usaha mas coz saya juga posting-nya satu-persatu, hmmm nanti diusahakan diperbaiki lagi biar nggak bolak-balik :)

Leave a Reply

*

*