วันนี้ผมได้ลองเล่น API ของทาง Instagram application ที่ทำงานในลักษณของ RESTful ทำให้เราสามารถเรียกใช้งาน API ผ่านทาง HTTP ได้อย่างง่ายดาย

แต่ก่อนที่เราจะสามารถใช้งาน API ของ instagram ได้เราจำเป็นจะต้อง authenticate แบบ OAuth เพื่อให้ได้ access_token ที่จะนำมายืนยันตนเองว่าเราได้ลอกอินเข้ามาแล้ว ซึ่งวิธีการ authenticate ของ instagram นั้นทำได้สองแบบคือใช้ server-side กับ client-side โดยที่ทั้งสองแบบเราจะต้อง register application ของเรากับทาง instagram เพื่อให้ได้ client_id,client_secret มาเสียก่อน แล้วจึงค่อยนำข้อมูลสองอย่างนี้ไปทำการ authenticate กับ instagram ต่อไป เนื่องจากมันมีความยุ่งยากแบบนี้ ผมก็เลยมีอีกวิธีมาเสนอ สำหรับคนที่ต้องการทดลองทำอะไรเล่นๆ ไม่ได้ต้องการใช้งานครบทุกฟังก์ชั่น

โดยให้เข้าไปที่ http://instagram.com/developer/api-console/ ลอกอินด้วย user instagram ของคุณ แล้วให่้ลองทำการส่งคำสั่ง GET /user/search ผ่านทางหน้า api console แล้วไปดูในส่วนของ Request ซึ่งใน content ตรงนั้นจะมีค่า access_token อยู่ ดังตัวอย่างข้างล่าง

GET /v1/users/search?q=user_name&access_token=xxxxxxxxxxx.xxxxxxxxx HTTP/1.1

ซึ่ง access_token นี้จะต้องเก็บรักษาไว้เป็นความลับ ถ้าใครได้มันไป ก็เท่ากับว่าได้ account เราไปใช้งานด้วย

นอกจาก access_token แล้วยังมีอีกสิ่งหนึ่งที่เราจะต้องหาก่อนจะใช้ API ได้อย่างสะดวก นั่นก็คือ user-id ซึ่งจะเป็นตัวเลขแทน username ของเรานั่นเอง เมื่อเรามีข้อมูลครบหมดแล้ว ให้ลองนำข้อมูลของเราไปกรอกใส่ลงใน api console

สมมติว่าเราต้องการแสดงรูปล่าสุดของ user คนใดคนหนึ่ง ก็ให้เราใช้ https://api.instagram.com/v1/users/3/media/recent/?access_token=ACCESS-TOKEN

โดยแทนที่ users และ access-token ด้วยข้อมูลที่เรามี instagram ก็จะตอบกลับออกมาในรูปแบบของ JSON โดยหลักๆ ก็จะมี block “data” ที่เป็น JSONArray สังเกตได้จากการใช้ ‘[ ]’ ส่วนข้อมูลข้างในก็จะเป็น JSONObject ทั้งหมด สังเกตได้จากการใช้ ‘{ }’ ทีนี้ก็ง่ายละ เราก็สามารถอ่านข้อมูลออกมาจาก response ผ่านทาง JSON ได้เลย

ถ้าใครถนัด Java ก็ลองดู client ตัวนี้ได้ครับ ใช้งานง่ายแล้วก็แก้ไขเองได้ไม่ยากเลย  หรือถ้าใครสนใจเวอร์ชั่นพิเศษก็ลองไปดูที่ โปรเจคของผมได้ fork ออกมาจาก code ข้างต้นอีกทีหนึ่ง