ระยะหลังๆ งานพวก กิจกรรม , เกมส์ บน Facebook มีเข้ามาเยอะพอสมควร
จึงได้มีโอกาสได้เล่น Host ที่ใช้ HTTPS มาในการทำ App แบบ Canvas บน Facebook
ซึ่งทาง Facebook เองนั้นจะ Require HTTPS เมื่อให้มีความปลอดภัยในการเข้าถึงข้อมูล
แต่ถ้าหากใครที่ไม่มี host ที่ใช้ HTTPS ก็ต้องลำบากกันหน่อย
เพราะต้องบอกให้ผู้เข้าร่วมกิจกรรม แต่ละท่านไปปิด การเข้าใช้งาน Facebook แบบ Secure
เอาละเข้าเรื่องกันดีกว่า
เรื่องมีอยู่ว่า งานที่ได้มานั้น ทางลูกค้าต้องการให้เล่นกิจกรรมใน Facebook เลย
ซึ่งก็คือ App Canvas บน Facebook นั่นเอง
(เอาละสิ App Canvas เป็นงานแรกด้วย ไม่เคยทำ ฮ่าๆ - แต่ก็รับมา ^^)
ซึ่ง Step การ Login With Facebook (ใน Canvas) นั้นก็คล้ายๆ กับ Login With Facebook (บนเว็บ)
แต่ก็มีเทคนิคที่ต้องพลิกแพลง เล้กน้อย ซึ่งเดี๋ยวไว้จะเขียนในบทความถัดไป นะครับ
เหตุเกิดโดย
ขณะที่เราเรียกใช้ $FB->api('/me') เพื่อต้องการ Get User Info. ของทาง Facebook
เกิด Error : CurlException: 7: Failed to connect to 2a03:2880:10:1f02:face:b00c:0:26: Network is unreachable0
(เอาละสิ งานเข้าบร๊ะเจ้าโจ๊ก) ตอนแรกก็นึกว่าเป็นที่การ Coding ของตัวเราเองว่าส่งค่าอะไรไปผิดรึเปล่า ไปๆมาๆ ลอง Search หาจากในเน็ต ปรากฎว่า ไม่ใช่ที่เรา เป็นของที่ Hosting แล้ว
สรุปคือ เกิดจากตัว Hosting เองที่ไม่ได้เปิดใช้งาน IPv6 จึงแจ้งให้ทาง Hosting จัดการให้
ต่อมา ยังไม่จบเพียงแค่นี้ มาดู Error ตัวถัดมา [-*-]
" CurlException: 7: couldn't connect to host " <-- บร๊ะเจ้า เล่นตูอีกแล้ว
ยังไม่จบสืบเนื่องมาจากเมื่อแก้ไขตัวข้างบนจึงแจ้งไปยัง Hosting
สรุปคือ เกิดจากทาง Host ที่ทำการ Block ขาฝั่ง Outgoing ( เดาว่าน่าจะ Block Firewall )
เมื่อทำการแก้ไขจนหมดแล้ว App Canvas ของเราจึงประสบความสำเร็จ
งานนี้ได้ประสบการณ์จาก Host HTTPS มากมาย
โดยส่วนตัว เข้าใจว่า ทางผู้ให้บริการคงต้องการความ Security มาก จึงทำการ Block ไว้ ^^
สำหรับใครที่พบกับปัญหาแบบนี้ , หวังว่าบทความนี้คงช่วยลดระยะเวลาในการหาสาเหตุและแก้ไข Error ดังกล่าวนะครับ
