Penyelesaian Isu Graf API 2.3 Facebook
Peningkatan Graf API 2.3 telah membawa beberapa isu yang tidak dijangka. Tidak dapat mendapatkan semula respons API dan data pengguna yang hilang adalah antara yang paling lazim. Walau bagaimanapun, penyelesaian untuk masalah ini terletak pada memahami perubahan yang diperkenalkan dalam versi 2.3.
Perubahan Format Respons
Versi 2.3 telah mengubah format respons untuk "oauth/ access_token" titik akhir. Ia kini mengembalikan JSON yang sah dan bukannya data yang dikodkan URL. Perubahan ini menjejaskan mekanisme penghuraian token akses dalam Facebook SDK 3.2.2.
Penyelesaian
Untuk membetulkannya, anda mesti mengubah suai fungsi "getAccessTokenFromCode" dalam SDK untuk menghuraikan respons sebagai JSON. Kod yang dikemas kini di bawah menunjukkan pembetulan ini:
$response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } return $response->access_token;
Perubahan Tambahan
public function setExtendedAccessToken() { try { // Get extended access token. $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), $params = array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'grant_type' => 'fb_exchange_token', 'fb_exchange_token' => $this->getAccessToken(), ) ); } catch (FacebookApiException $e) { // User revoked authorization. return false; } if (empty($access_token_response)) { return false; } $response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } $this->destroySession(); $this->setPersistentData( 'access_token', $response->access_token ); }
Dengan melaksanakan kemas kini dan pengubahsuaian ini, anda boleh menyelesaikan isu yang dihadapi dengan Facebook Graph API 2.3.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Facebook Graph API 2.3 dengan Token Akses dan Data Pengguna yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!