use facebook profiles picture - เอาภาพ profile จาก facebook มาใช้ซะเลย

เราสามารถนำภาพ facebook profile picture มาใช้งานได้ง่ายๆ (ต้องให้ user แจ้ง facebook account นะ) โดยใช้ <img src="http://graph.facebook.com/[facebook account]/picture?type=large"/> แค่นี้เองครับ ลองเอาไปใช้กันดูนะครับ

สำหรับใครไม่รู้ว่า facebook account จะรู้มาจากไหน ก็ง่ายมากเลยครับ เข้า facebook.com แล้ว login ให้เรียบร้อยหลังจากนั้นก็คลิกที่ชื่อตัวเอง แล้วดูที่ address bar ก็จะเห็น url ว่า facebook.com/[user account] ครับ แล้วเราก็เอา useraccount นี่แหละมาใช้

ตัวอย่าง เช่น ของผม facebook.com/b.kittisak ผมก็ต้องใช้ว่า   <img src="http://graph.facebook.com/b.kittisak/picture?type=large"/> แค่นี้ก็จะได้ภาพข้างล่างนี้มาแสดงแล้วล่ะครับ



เมื่อได้ภาพมาแล้ว ทีนี้ก็สุดแท้แต่จะเล่นครับ ซึ่งโดยมากก็จะตกแต่งด้วย CSS นั่นเองครับ

ส่วนที่เป็น type=large นั้นสามารถเปลี่ยนเป็น small, normal, large หรือ square ได้นะครับ ภาพที่ได้ก็จะเป็นภาพขนาดเล็ก , ขนาดกลาง และขนาดใหญ่นั่นเองครับ แต่ผมว่าระบุขนาดไปเลยก็น่าจะควบคุมอะไรๆได้ง่ายกว่า

นอกจากนี้ยังสามารถบอกให้ facebook ตัดขนาดมาให้เราตามใจได้อีกด้วย (แหม...ใจดีจัง) โดยเขียนดังนี้ครับ https://graph.facebook.com/b.kittisak/picture?width=300&height=600 ซึ่งหากระบุอัตราส่วนไม่ถูกต้องงานจะเข้าได้ เช่น ได้ภาพมาครึ่งหน้า



ดังนั้นเราก็สามารถกำหนดค่าไปแค่ด้านกว้างหรือด้านยาวเพียงอย่างเดียวก็ได้ เพื่อรักษาอัตราส่วนกว้างและยาวเอาไว้เท่าต้นฉบับนั่นเองครับ เช่น https://graph.facebook.com/b.kittisak/picture?width=400



จากที่เราลองเล่นกันมานี่จะสังเกตได้อย่างนึงครับว่า เอาเข้าจริงๆแล้วมันจะมี phisical url ที่ไม่ใช่ url friendly แบบนั้น โดยหากเราเอา url ที่เราคุยกันอยู่นี้ไปโพสต์ใส่ Browser คุณก็จะพบว่ามันจะคืนค่ากลับมาให้เห็นเป็นชื่อยาวๆแปลกๆจำยากๆ เช่น ภาพล่าสุดนี่มันคือ https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p320x320/10527825_10203221878685517_4285389220159210932_n.jpg?oh=b909a11f196332040739ce0514143980&oe=54942DE1&__gda__=1422790708_9728068aeacd64eb07fe85bd7cef6894 ซึ่งจากที่เห็นนี่ผมคิดว่า url นี้อาจเปลี่ยนไปได้เรื่อยๆ ดังนั้นคงไม่เหมาะนักหากเราจะจำ url แบบนี้ไว้ แถมยังพิมพ์ยาก และไม่สื่อความหมายอีกด้วย

และหากต่อด้วย Parameter &redirect=false facebook จะคืนค่ามาใน format  JSON ซึ่งสามารถนำไปต่อยอดได้หลากหลายครับ

เวลาใช้งานใช้งานจริง PHP ใช้ Code เก็บข้อมูลดังนี้

$img = file_get_contents('https://graph.facebook.com/'.$fid.'/picture?type=large');
$file = dirname(__file__).'/avatar/'.$fid.'.jpg';
file_put_contents($file, $img);

ผมลองเขียนสั้นๆ เอาจบเร็วๆเป็นเรื่องๆไปแบบนี้ ก็หวังว่าเพื่อนๆคงจะนำไปประยุกต์ใช้กันได้ง่ายขึ้นแล้วนะครับ สำหรับตอนนี้ก็ขอจบลงเพียงเท่านี้ ไว้เจอกันใหม่ตอนหน้านะครับ

กิตติศักดิ์ บุญราศรี


อ้างอิง : http://stackoverflow.com/questions/2821061

แสดงความคิดเห็น

0 ความคิดเห็น