從v2.2 移轉到v2.3 後,Facebook Graph API 無法運作
升級到Facebook Graph API v2.3 後,開發人員遇到了某些API 請求無法傳回資料的問題。本文探討了遇到的具體問題,並根據最新版本 SDK 中引入的變更提供了解決方案。
問題描述
開發人員報告 API 請求之前在 v2.2 中工作現在在 v2.3 中沒有返回任何結果。具體來說,以下請求受到影響:
解決方案
問題源自於更改v2.3 中採用 OAuth 存取權杖端點傳回的 JSON 回應格式。在 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.
以上是為什麼我的 Facebook Graph API 從 v2.2 遷移到 v2.3 後失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!