- ข้อมูลที่ทาง Twitter ได้ทำ index ไว้สำหรับ Search API นั้น ไม่ใช่ index ของ Tweets ทั้งหมด แต่เป็น index ของ Tweets ล่าสุดในระยะเวลา 6-9 วัน เท่านั้น
- เราไม่สามารถใช้ Search API เพื่อค้นหา Tweets ที่เก่าเกิน 1 อาทิตย์
- Search API อาจไม่ทำงาน ถ้าหาก Query ที่ใช้ มีความซับซ้อนเกินไป
- Search API ไม่รองรับ near แต่เราสามารถใช้ geocode parameter แทนได้
Rate Limits ของ Search API ไม่ได้จำกัดอยู่ในจำนวนการใช้งานต่อชั่วโมง แต่จำกัดโดยความซับซ้อนของ Query และความถี่ในการ Request เป็นหลัก เนื่องจาก Request ของการ Search จะเป็นแบบ Anonymous ทั้งหมด ดังนั้น Rate Limit จะจำกัดโดยนับ Rate Limit จาก IP Address ของเครื่องที่ Request แทน ถ้าหากเราใช้งานเกิน Rate Limit ที่จำกัดไว้ Search API จะคืนค่า HTTP 420 Error.
{"error":"You have been rate limited. Enhance your calm."}
.
Best Practices
- ควรแน่ใจว่า Parameters ทั้งหมด ได้ผ่านการ URL Encoded
- เวลาที่ค้นหา Tweets ควรที่จะส่ง since_id มาด้วย ค่าของ since_id ควรเป็นค่าของ Tweets สุดท้ายที่ได้รับจากการ Search ครั้งก่อนหน้า
- ในการ Search แต่ละครั้ง ควรส่งค่า User Agent ที่สามารถระบุได้ว่ามาจาก Application ของเรา ทั้งนี้เพื่อที่ Twitter Support Team จะสามารถให้ความช่วยเหลือในกรณีที่เรามีปัญหา
- ควรจำกัดการค้นหาไม่ให้เกิน 10 Keywords
ถ้าหากว่าไม่รู้ว่าจะสร้าง Query ยังไง ให้ลองทำตามวิธีดังต่อไปนี้
- ลองค้นหาผ่าน search บน Website ของ Twitter ซึ่งอยู่ที่ http://twitter.com/search
- จากนั้นเราจะเห็นรูปแบบของ URL ให้ลอง Copy URL มา ยกตัวอย่าง
https://twitter.com/#!/search/%40twitterapi - เปลี่ยน https://twitter.com/#!/search/ เป็น
http://search.twitter.com/search.json?q=
ยกตัวอย่างเช่น
http://search.twitter.com/search.json?q=%40twitterapi
Search Operators
นอกเหนือจาก Search Parameters ต่างๆแล้ว เรายังสามารถใช้ Search Operators ช่วยในการปรับพฤติกรรมการ Search ได้ ยกตัวอย่างเช่น
twitter search
หมายความว่า ให้ค้นหา tweets ที่ปรากฎคำว่า "twitter" และคำว่า "search"
"happy hour" หมายความว่า ให้ค้นหา tweets ที่ตรงกับคำว่า "happy hour"
love OR hate
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "love" หรือ "hate" หรือมีทั้งคู่
beer-root
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "beer" แต่ไม่มีคำว่า "root"
#haiku
หมายความว่า ให้ค้นหา tweets ที่มี hashtag "haiku"from:twitterapi
หมายความว่า ให้ค้นหา tweets ที่ส่งมาจาก user @twitterapi
to:twitterapi
หมายความว่า ให้ค้นหา tweets ที่ส่งถึง user @twitterapi
place:opentable:2
หมายความว่า ให้ค้นหา tweets เกี่ยวกับสถานที่ ที่มี OpenTable ID = 2
place:247f43d441defc03
หมายความว่า ให้ค้นหา tweets เกี่ยวกับสถานที่ ที่มี Twitter ID = 247f43d441defc03
@twitterapi
หมายความว่า ให้ค้นหา tweets ที่ mention ถึง @twitterapi
superhero since:2011-05-09
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "superhero" และถูกส่งตั้งแต่วันที่ "2011-05-09" (year-month-day)twitterapi until:2011-05-09
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "twitterapi" และถูกส่งก่อนวันที่ "2011-05-09" (year-month-day)
movie -scary :)
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "movie" แต่ไม่มีคำว่า "scary" และเป็น tweets แบบ positive attitude
flight :(
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "flight" และเป็น tweets แบบ negative attitude
traffic ?
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "traffic. และมีการถามคำถาม
hilarious filter:links
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า "hilarious" และมี URL อยู่ในนั้นด้วย
news source:tweet_button
หมายความว่า ให้ค้นหา tweets ที่มีคำว่า news และป้อนข้อมูลผ่านทาง Tweet Button
Notes about Search Operators
since และ until
- ไม่รองรับ negation operator (-)
- รูปแบบที่ใช้ควรเป็น yyyy-mm-dd
- ไม่อนุญาติให้ใช้วันที่ที่ยังมาไม่ถึง (วันที่ในอนาคต)
source
- ต้องใช้ร่วมกับ keyword parameter เท่านั้น
- รองรับ multi-word source โดยใช้ _ (underscore) เป็นตัวแบ่ง ไม่ใช่ space ยกตัวอย่างเช่น source "Tweet Button" เวลาสร้าง search query ควรจะเปลี่ยนเป็น source: tweet_button
- รองรับ data set aliases จำนวนมาก ซึ่งสามารถเข้าไปดู complete list ได้ ที่นี่
ตัวอย่างของ Search Query
Tweets which contain @twitterapi and @anywhere |
http://search.twitter.com/search.json?q=%40twitterapi%20%40anywhere |
Tweets which contain @twitterapi not via |
http://search.twitter.com/search.json?q=%40twitterapi%20-via |
Tweets about Twitter HQ (place ID 247f43d441defc03) |
http://search.twitter.com/search?q=place%3A247f43d441defc03 |
Tweets to @twitter created before the 12th Dec 2012 and within 25 miles of Twitter HQ in San Francisco |
http://twitter.com/search?q=to%3Atwitter%20until%3A2012-12-12&geocode=37.781157,-122.398720,25mi |
No comments:
Post a Comment