」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼我的 Facebook Graph API 從 v2.2 遷移到 v2.3 後失敗?

為什麼我的 Facebook Graph API 從 v2.2 遷移到 v2.3 後失敗?

發佈於2024-12-22
瀏覽:416

Why is My Facebook Graph API Failing After Migrating from v2.2 to v2.3?

從v2.2 遷移到v2.3 後Facebook Graph API 無法運作

升級到Facebook Graph API v2.3 後,開發人員遇到了某些API 請求無法傳回資料的問題。本文探討了遇到的具體問題,並根據最新版本 SDK 中引入的變更提供了解決方案。

問題描述

開發者報告 API 請求之前在 v2.2 中工作現在在 v2.3 中沒有返回任何結果。具體來說,以下請求已受到影響:

  • /me/albums with fields=albums
  • /me without any fields returned (用於檢索用戶的生日)

解決方案

此問題源自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