PHP - Search image from Flickr.com
Posted in PHP and tagged with flickr, PHP, search image on 10/08/2008 12:50 pm by adminค้นหารูปจากเว็บ Flickr.com บนเว็บของคุณเอง (^_^)

Flickr.com เปิดให้บริการค้นหารูปผ่าน webservice
โดยจะคืนผลลัพธ์ที่ได้มาในรูปแบบ xml ครับ
ดูวิธีการทำกันเลยดีกว่าครับ
Step 1
ก่อนอื่นต้องไปขอ API Key ก่อนนะครับ ไปขอตามลิืงก์นี้เลยครับ
http://flickr.com/services/api/
Step 2
เมื่อได้ API Key มาแล้ว ให้เรียก service ผ่าน url นี้ครับ
http://api.flickr.com/services/rest/?method=flickr.photos.search
โดยต้องส่ง query string ไปเพื่อกำหนดรูปที่เราต้องการค้นหาดังนี้
api_key = ค่า API Key ทีไ่ด้จาก step ที่ 1
tags = รูปที่ต้องการค้นหา
per_page = จำนวนรูปที่ต้องการแสดงต่อ 1 หน้า
page = หน้าที่ต้องการดึงรูปมาแสดง
ตัวอย่างนะครับ ถ้าผมต้องการ ดีงรูป กระต่าย(rabbit) มาแสดง โดยต้องการให้
แสดงหน้าละ 10 รูป เริ่มต้นที่หน้าที่ 1 ค่า parameter จะเป็นตามนี้ครับ
api_key = “xxxxxxxxxxx” (ต้องใช้ค่า api key ของคุณเองนะครับ)
tags = rabbit
per_page = 10
page = 1
เมื่อรวมเป็น url จะได้ดังนี้
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=xxxxxxxxxxxx&tags=rabbit&per_page=10&page=1
Step 3
เมื่อเรียก service ตาม url ใน step ที่ 2 จะได้ผลลัพธ์คืนมาเป็น xml
คลิกที่รูปเพื่อดูตัวอย่างเต็มๆ นะครับ

ความหมาย tag ต่างๆ นะครับ
stat = ใช้ตรวจสอบการเรียก service ว่าถูกต้องรึไม่ต้องเป็น ok เท่านั้น
page = หน้าปัจจุบัน
pages = จำนวนหน้าทั้งหมด
perpage = จำนวนรูปต่อ 1 หน้า
total = จำนวนรูปทั้งหมดที่ค้นหาพบ
id = รหัสรูป
owner = เจ้าของรูป
secret = รหัสลับสำหรับเข้าดูรูป
server = server ที่เก็บรูป *
farm = farm ที่เก็บรูป *
title = ชื่อรูป
*ขอนอกเรื่องอธิบายเรื่อง server กับ farm ก่อนนะครับ ตามที่ผมเข้าใจ
รูปใน Flickr.com จะเก็บเป็นลักษณะ farm และใน farm จะมีหลายๆ
server แล้วรูปจะอยู่ใน server อีกทีนะครับ
ต่อนะครับ เมื่อได้ผลลัพธ์ xml มาแล้ว เวลาจะอ้างอิงไปที่รูปให้ใช้ตามนี้นะครับ
http://farm{farm_id}.static.flickr.com/{server_id}/{photo_id}_{secret}_{size}.jpg
ตัวอย่าง
http://farm4.static.flickr.com/3257/2926756714_c56e46f446_s.jpg
ที่เหลือลองเขียนแสดงผลกันดูเองนะครับ (^_^)
หน้าตัวอย่างครับ Search images Flickr
load หน้าตัวอย่างคลิกทีนี่ครับ flickr_search.rar
ปล. - code ตัวอย่างผม limit ไว้แค่ 100 หน้านะครับ
- load หน้าตัวอย่างไปแล้ว อย่าลืมเปลี่ยน API Keys ด้วยนะครับ (^_^)”


October 9th, 2008 at 10:34 am
ขอเอพีไอคีกดไรง่า
October 9th, 2008 at 10:40 am
เข้าไปที่ลิงก์นี้นะครับ
http://flickr.com/services/api/
แล้วจะมีลิงก์ให้คลิกต่อไปชื่อว่า API Keys เลยครับ
แต่ต้องใช้ username, password นะครับ
ถ้ายังไม่มีสามารถสมัครได้เลยครับแต่ต้องมีอีเมล์ของ yahoo ก่อนนะครับ
December 10th, 2008 at 3:12 pm
รบกวนถามนิดนึงนะครับ
คือผมลองเอาโค๊ดไปทดสอบดู
พอป้อน keyword ภาษาไทยมัน not found อะครับ
แต่ลองในหน้าเว็บของพี่มันใช้ได้
ก็เลยงง มันจะเกี่ยวกับตัว Apache กับ PHP ที่ผมใช้ไหมคับเนี่ย
December 11th, 2008 at 12:56 pm
ลอง save ไฟล์ที่ไว้ search เป็น utf-8
แล้วลอง echo ตัว url ที่เรียก flickr api ออกมาดูนะครับ
keyword ที่ส่งไปต้องเป็นภาษาที่อ่านออกได้นะครับ
เสร็จแล้วลองเทสดูอีกทีนะครับ
ได้รึไม่ได้ยังไงรบกวนมาคอมเม้นบอกหน่อยนะครับ
เผื่อมีใครติดปํญหาเหมือนกันนะครับ ขอบคุณมากครับ (^_^)
December 16th, 2008 at 11:56 pm
ทำตามที่บอกแล้วครับ
ยังไ่ม่ได้อยู่ดีครับ
keywordภาษาอังกฤษใช้ได้นะครับแต่ภาษาไทยใช้ไม่ได้
ถ้าเป็นไปได้รบกวน ช่วยผมหน่อยได้ไหมครับ
คือผมต้องการแค่ให้มัน searchหารูปแล้วแสดงผลลัพธ์ไม่เกิน5รูปพออะครับ
keywordเป็นภาษาไทยนะครับ
รบกวนด้วยนะครับพี่
December 23rd, 2008 at 9:34 pm
ถ้าต้องการให้ผลลัพธ์ไม่เกิน 5 รูปต้องกำหนด
per_page=5 และ page=1 นะครับ
ส่วนภาษาไทยลอง save file เป็น utf8
กำหนด character set เป็น utf8 แล้วลองใหม่นะครับ
น่าจะได้ ถ้าไม่ได้ลองเปลี่ยน keyword แล้วลอง search ใหม่นะครับ
ถ้ายังไม่ขึ้นอีกลอง echo url ที่เรียก api ออกมาดูนะครับ
แล้วลองเอา url ที่ได้มาโพสทิ้งไว้นะครับ รึจะส่งมาในอีเมล์ก็ได้นะครับ
แล้วเดี๋ยวจะลองดูให้ครับว่าเป็นเพราะอะไร ลองดูนะครับ (^_^)