Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membetulkan Isu Facebook Graph API 2.3 dengan Token Akses dan Data Pengguna yang Hilang?

Bagaimana untuk Membetulkan Isu Facebook Graph API 2.3 dengan Token Akses dan Data Pengguna yang Hilang?

DDD
Lepaskan: 2024-12-26 07:55:09
asal
201 orang telah melayarinya

How to Fix Facebook Graph API 2.3 Issues with Access Tokens and Missing User Data?

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;
Salin selepas log masuk

Perubahan Tambahan

  • setExtendedAccessToken() Pengubahsuaian: "setExtendedAccessToken() " fungsi juga memerlukan kemas kini yang serupa. Kod yang diubah suai di bawah menyelesaikan isu dengan melanjutkan token akses.
  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
    );
  }
Salin selepas log masuk
  • Data Hari Lahir Tiada: Mendapatkan semula hari lahir pengguna memerlukan kebenaran tambahan dan permintaan medan tertentu. Pastikan anda mempunyai kebenaran yang diperlukan dan dinyatakan secara eksplisit dalam permintaan medan anda.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan