2015-12-16 109 views
1

我有用戶和Facebook頁面的OAuth2訪問令牌,但我沒有存儲在我的數據庫中的類型區分。我希望能夠使用相同的Graph API查詢獲取關於用戶/頁面的基本信息 - 但對於用戶,我想要在其上獲取電子郵件字段。我可以在Facebook Graph API中查詢可選字段嗎?

  1. GET v2.5/me?fields=name,email //用戶令牌

    成功。

  2. GET v2.5/me?fields=name,email //頁令牌

    錯誤。(#100) Tried accessing nonexisting field (email) on node type (Page)

因爲我不知道令牌屬於用戶或網頁,我無法從查詢輕鬆取出,email領域。有沒有辦法如何指定「可選」email字段,所以我沒有得到上述錯誤?

P.S .:目前,我做了第二次請求,以防,email導致錯誤。

回答

2

不,如果您請求的字段不存在於您請求的對象類型中,API將會失敗 - 如果它沒有[並且直到最近纔出現],則會有一整類由請求不存在字段的人員引入的錯誤,包括通過錯別字

如果您不知道訪問ID時使用的是什麼類型的對象,那麼您的應用可能會檢索並存儲其ID數據 - 在這個例子中,您應該使用元數據(?metadata=true)或Facebook's Debug Tool來清理哪些令牌是用戶令牌,哪些是頁面令牌以及他們用於哪些頁面或用戶 - 一旦知道,存儲該信息並使用該令牌將來 - 如果使用API​​直接tly和檢查元數據,當包含元數據時檢查type,它將成爲用戶或頁面標記的'用戶'或'頁面'

您的應用程序確實不應該保存頁面標記,但不知道哪些頁面,因爲您需要用戶訪問令牌頁面管理員才能從API中檢索該令牌;我建議您在第一次保存頁面令牌時以結構化的方式存儲用戶令牌和頁面令牌,以避免將來出現混淆。

相關問題