2012-09-14 64 views
1

我正在使用Spring Social試圖獲取Facebook朋友及其位置的列表。從我所看到的,春天社會提出的訪問令牌到HTTP請求頭爲:基於Facebook標頭的身份驗證不起作用

Authorization: OAuth AAAFDa6Gl4usBAJH4... 

,而不是將其追加到URL作爲參數的access_token。因此,請求僅返回基本信息,其中不包含位置數據。我可以告訴標題中的訪問令牌是有效的,因爲如果我手動將它包含在GET請求中,則返回包括位置的完整數據集。

以前有人看過這個問題,可以讓我知道問題是什麼?

回答

0

Spring Social將訪問令牌放在授權標頭中(OAuth 2規範的草稿10)是正確的。現在,這可能應該使用來自更近期草稿的「承載」令牌格式,但在過去幾天裏,我一直在使用Spring社交Facebook,完全按照您嘗試的方式進行操作 - 獲取用戶的朋友 - 它一直在正常工作。

Facebook的文檔似乎比授權標題更重要地提升了access_token查詢參數,但它們的API支持(總是有)。所以,假設授予的令牌被授予查看用戶朋友的權限,它應該可以工作。其實,我只是雙證實了這一點:首先,我使用了Spring Social Showcase(https://github.com/SpringSource/spring-social-samples/tree/master/spring-social-showcase),連接到Facebook,然後點擊左側菜單中的「朋友」列表。有效。我還獲得了一個有效的訪問令牌,指向我的瀏覽器https://graph.facebook.com/me/friends,並使用我的瀏覽器的修改頭插件將授權標頭設置爲「OAuth {我的令牌}」,並且它也起作用。

你有沒有嘗試過使用Spring Social Showcase(使用Spring Social Facebook下的)?想知道你是否面臨同樣的問題。

但是,感謝您提出這個問題,因爲它提醒我需要繼續並更新標題以使用「承載者」而不是「OAuth」(我也確認這是工作)。

+0

克雷格,你絕對正確,Facebook確實接受授權標題。由於未從FB應用程序請求權限,問題的原因似乎在我的最後。 –