Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Token Akses Facebook Berumur Panjang Selepas Penamatan Offline_access?
Cara Memanjangkan Kesahan Token Akses Walaupun Penamatan Akses Luar Talian
Isu:
Penantikan Facebook kebenaran akses luar talian telah menghalang keupayaan kami untuk memperoleh akses jangka panjang token. Walaupun terdapat dokumentasi yang menunjukkan bahawa token OAuth sebelah pelayan akan kekal lama, ini tidak berlaku.
Jawapan:
Edit (14 Ogos 2012 ):
SDK PHP Facebook rasmi telah dikemas kini, memperkenalkan fungsi setExtendedAccessToken yang disemak semula. Untuk mengurangkan kebimbangan pertindihan sesi yang berpotensi, ia memerlukan penamatan sesi semasa selepas pelaksanaan fungsi. Tambahan pula, ia menyimpan token akses baharu secara dalaman, membenarkan pengambilan semula melalui fungsi getAccessToken awam. Dapatkan SDK terbaharu daripada halaman Facebook PHP SDK GitHub.
Jawapan Asal:
Fungsi awam baru telah ditambahkan pada base_facebook.php yang memberikan akses kepada 60 token akses boleh diperbaharui -hari. Melaksanakan fungsi ini penerimaan token akses selepas biasa mungkin sudah memadai. Selain itu, mendayakan "deprecate offline_access" dalam tetapan Lanjutan Apl Pembangun dipercayai diperlukan.
Masukkan kod berikut ke dalam base_facebook.php anda dalam kelas facebook dan gunakan fungsi:
public function getExtendedAccessToken(){ try { // need to circumvent json_decode by calling _oauthRequest // directly, since response isn't JSON format. $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'grant_type'=>'fb_exchange_token', 'fb_exchange_token'=>$this->getAccessToken() ) ); } catch (FacebookApiException $e) { // most likely that user very recently revoked authorization. // In any event, we don't have an access token, so say so. return false; } if (empty($access_token_response)) { return false; } $response_params = array(); parse_str($access_token_response, $response_params); if (!isset($response_params['access_token'])) { return false; } return $response_params['access_token']; }
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Token Akses Facebook Berumur Panjang Selepas Penamatan Offline_access?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!