從v2.2 遷移到v2.3 後Facebook Graph API 無法運作
升級到Facebook Graph API v2.3 後,開發人員遇到了某些API 請求無法傳回資料的問題。本文探討了遇到的具體問題,並根據最新版本 SDK 中引入的變更提供了解決方案。
問題描述
開發者報告 API 請求之前在 v2.2 中工作現在在 v2.3 中沒有返回任何結果。具體來說,以下請求已受到影響:
解決方案
此問題源自v2.3 對JSON回應格式的變更由 OAuth 存取令牌端點傳回。在 SDK 版本 3.2.2 中,getAccessTokenFromCode() 函數錯誤地將 JSON 回應解析為陣列而不是對象,從而導致檢索到錯誤的使用者存取權杖。
要解決此問題,可以使用 getAccessTokenFromCode( ) 函數應更新以正確解析 JSON 回應:
$response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } return $response->access_token;
擴展訪問令牌的其他更新
對於使用擴展訪問令牌的應用程序,在setExtendedAccessToken() 函數中需要進行類似的更改:
//Version 2.3 and up. $response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } $this->destroySession(); $this->setPersistentData( 'access_token', $response->access_token );
結論
透過解決JSON 回應解析中的上述變化,開發人員可以確保他們的API 請求按照Facebook Graph API v2.3 中的預期運行。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3