2015年9月3日 星期四

【Facebook】Facebook API v2與v1的主要差異:profile ID

這篇文章拖得真的是無敵久,應該拖了有一年多之久XD
Facebook API都已經到了V2.4我才要來寫我當初發現V2.0的差異....

其實一直以來我都有點排斥寫Facebook API的文章,起因於其實我不怎麼喜歡寫Facebook的code...因為他實在太常改版太討人厭了,常常默默地改版,殺的我們措手不及,這很容易造成:

  • 如果不是持續性一直在寫Facebook API,每當要寫的時候就會發現他又改版又要重新研究哪些地方使用方式不同
  • 如果只是短期有用到Facebook API的活動網站,活動時間內沒遇到改版就都沒事,活動進行中他突然改版那就真的很讓人阿ㄗㄚˋ,就得很緊急的在短時間內修改到符合新版的狀態,否則網站會掛掉,客戶不會理解是Facebook改版的問題,他只認為是你的問題ㄚㄚㄚ!!!
  • 有用到Facebook API的企業網站,就得視情況而定,小則發現時修改code就好,大的時候...就是這篇文章產生的原因了.....

因為我發現的當下其實是v2.0,加上當時主要影響最大的差異是profile ID,所以升級改版的其他差異我就不說了,這篇重點是:Facebook profile ID於v1.0與v2取得的差異。

以下以圖說明,以下ID都是假設,假設您於Facebook上真實的profile ID是1000001,先來看v1.0的部分:
只要是使用v1.0開發的APP(應用程式),當您登入(授權該APP)使用時,該APP取得您的ID就是您真實的profile ID:1000001,而且每個使用v1.0開發的APP取得的ID都相同。


但如果是使用v2.0(v2.x應該都是)開發的APP(應用程式),當您登入(授權該APP)使用時,該APP取得您的ID就不是您真實的profile ID,而且每個使用v2.0開發的APP取得的ID都不一樣。

如果你是短期活動網站要使用到Facebok API作為會員登入機制,而且不需與其他網站資料做比對,其實這個差異對你沒有任何影響,有影響的部份是.....

  • 活動網站會員機制使用Facebok
  • 但同時又要跟主要企業網站會員做比對(會員機制一樣使用Facebok)

或許你會說,唉唷~這哪裡可怕,兩邊都用v2.x就好,這樣取得的ID資料都一樣就可以比對了~

但是事情沒有這麼簡單阿!!!!
主要企業網站會員是早期寫的,也就是說他是使用v1.0去做會員機制,所以資料庫內儲存的Facebook profile ID都是真實profile ID,但活動網站建置當時,Facebook已更新到v2.0(去年啦,現在是v2.x了),也就是說,我在當時新建應用程式的話就一律都得採用v2.0開發(無法選則新建舊版本應用程式),所以我取得的ID就不會是真實profile ID,這樣就會導致,同一個會員(Facebook帳號),我在該企業網站登入時的ID與該活動網站ID不同,程式就無法依此判斷是否為同一人,會判斷這不是同一個人,但明明是同一個人!!!(抱頭)


怎麼解決?
當下時間非常緊迫,所以沒多餘時間去研究到底有無其他解,所以用了最笨最直接的方法....

因為主要企業網站無法升級到v2.x(因為他裏頭已經存有v1.0的資料,升級資料會錯亂),所以,只能想辦法讓活動網站也使用v1.0去符合企業網站,但是當下在Facebook新建的應用程式都只能使用v2.x,所以,只能回頭找以前建立的舊應用程式。

這個時候就只能感謝,還好各位開發者的Facebook帳號內都有已經不使用的舊應用程式,這時就可以暫時挪過來使用以讓活動網站變成v1.0開發,在這當下,真有種「還好我當初沒把這些活動截止的應用程式刪除」的感覺....(因為曾有一度我想刪除它們讓頁面乾淨一些...)

至於除了這個方法還有無其他解法我就沒繼續去細究了,如果有人知道,可以告訴我嗎>\\\\<

如果您喜歡我的分享、或是我的文章對您有幫助的話,希望能到我的粉絲專頁點個讚追蹤我唷~~

寫程式、技術分享文章很辛苦,寫一篇要花非常久的時間,希望您能幫我點一下頁面上的廣告給我支持跟肯定,讓我更有動力寫這類文章唷~

沒有留言:

張貼留言

writing for work~writing for life~