R語言具備免費、下載安裝容易、網路資源豐富、簡單易學的優點,除可當成窮人SPSS進行統計分析以外,最近比較夯的使用範圍,應該就是與大數據方法有關的資料擷取、資料分析、資料視覺化了。只要安裝R語言的套件包,取得管理者權限授權後,即可進行諸如Facebook、Yahoo等網頁資料的擷取。在此感謝廣大R友對拙文:【R軟體擷取分析臉書Facebook粉絲專頁資料】的熱烈迴響;另一方面,也自慚學藝不精,技不如人,對R友提出的問題無法有效解決,且近日雜務纏身,前途未卜,身心受創,內外交相煎熬,萬念俱灰下,偶然逛到網路上有熱血志士發現解決方法,立馬能量滿載,先丟上來希望能夠排除R友無法透過Rfacebook取得授權的問題。
在GitHub的討論區,與R友們最近遇到的共同疑惑:「透過Rfacebook取得授權過程出現認證失敗訊息」,類似的相關問題不少。例如2016.08.03這篇討論串:【Still Getting Bad Request (HTTP 400). Failed to get an access token Despite 2.6 Update #28】當中即有人回應,若語法指令與R的版本都沒問題,卻出現認證失敗訊息,應該檢查facebook for develops的應用程式設定;另外2017.01.12這篇【(HTTP 400). Failed to get an access token. #102】更指出:會造成前述Rfacebook取得臉書授權出現失敗訊息的原因,主要是使用者瀏覽器重新導向設定的問題。我整理後,提出解決方法如下:
方法A
在fbOAuth語法前加上options(“browser” = NULL)指令,這似乎與使用者預設的瀏覽器種類有關(我覺得將IE設為預設瀏覽器的嫌疑最大…),語法更改如下:
require("Rfacebook")
options("browser" = NULL)
fb.oauth <- fbOAuth(
app_id="*************", #請複製貼上應用程式編號(ID數字)
app_secret="***********************", #請複製貼上應用程式密鑰(Secret數字)
extended_permissions = TRUE)
請注意,在前述GitHub的討論串也有網友表示:加上options(“browser” = NULL)這個指令,在MAC的作業系統下卻仍然無效。
方法B
到臉書開發者模式 facebook for develops去更改設定,步驟如下:
一、登入臉書後,進入先前您已申請好的應用程式主控板(dashboard)
二、在主控板左側選單,點選【facebook登入】下拉式選單
三、點選下拉式選單的【設定】,進入後將先前的http://localhost:1410/複製起來,貼在【有效的OAuth重新導向URI】下方空白欄位,再按下【變更儲存】,順便按照下圖核對一下您的設定是否一致。
點選【變更儲存】後,再回到R-studio,請再執行一次require(“Rfacebook”)的指令,此時就不需要再加上options(“broser = NULL”)的指令了,應可正常取得認證成功訊息。
以上,希望能有效解決R友們使用Rfacebook遇到出現授權失敗的問題,請大家參考運用。
歲末年終,在此先拜個早年,敬祝大家平安順心,獎金滿滿,好事一路發~~~
在〈Rfacebook的授權失敗問題解決方式_Rfacebook_fbOAuth〉中有 6 則留言
老師您好,
在【有效的OAuth重新導向URI】下方空白欄位已經無法順利貼上「http://localhost:1410/」,原因是有要求該欄位要是填入「https」的格式。
哈囉!leon195512您好,謝謝您的提醒,facebook for developer最近有不少更新事項,其中一個就是【有效的OAuth重新導向URI】在今年10月以後將強制改為https://的加密模式,乃基於網路安全性的原因,順便也提醒已經申請臉書API的朋友記得去更改設定。
老師您好,
那MAC該如何執行方法二呢?
是甚麼地方能更改成Https嗎?
套件說明書都沒更新到這些~
我是學政治的門外漢,很感謝老師很專業熱心的提供這些資訊喔!看很多貼文都獲得廣大迴響,也謝謝老師還是願意抽空回覆!都想上老師的課程了呢!
哈囉leon195512您好,更改為https://是指您在臉書開發者模式所使用的app,請進入控制面板,到設定的地方更改即可。若還有不清楚的地方,再請您提出,謝謝您關注本站。
老師好,我同樣也是Mac的使用者且碰到相同問題
想請問老師,
所以在主控版的基本資料設定是「https://localhost:1410/」還是「http://localhost:1410/」
又或是何處需要更改成Https呢?
我在「有效的 OAuth 重新導向 URI」打上「https://localhost:1410/」後仍無法順利運作
謝謝
哈囉Billy您好,您登入facebook for developer以後所申請的app工具,是在主控版基本資料設定https://localhost:1410/沒錯(如上圖),您無法順利獲得授權的原因,我猜想可能是瀏覽器預設的問題,您可試試文中方法A:在fbOAuth語法前加上options(“browser” = NULL)指令(如文中的語法),若還是不行,再請您提出,謝謝您的回應與支持。