Rumah > Soal Jawab > teks badan
P粉0662240862023-08-27 00:33:27
Dropbox tidak lagi menawarkan pilihan untuk mendapatkan semula token akses jangka panjang baharu. Sebaliknya, ia mengeluarkan token akses jangka pendek dan token muat semula pilihan dan bukannya token akses jangka panjang.
Apl masih boleh mendapatkan akses jangka panjang dengan meminta akses "luar talian", pada ketika itu apl menerima "token muat semula" dan boleh mendapatkan semula token akses jangka pendek baharu seperti yang diperlukan tanpa campur tangan pengguna manual selanjutnya. Anda boleh mendapatkan maklumat lanjut dalam Panduan OAuth dan Dokumentasi Kebenaran.
Proses mendapatkan semula token akses dan token muat semula pilihan tidak boleh diautomatikkan sepenuhnya. Ini memerlukan pengguna melakukannya secara manual sekurang-kurangnya sekali. Jika aplikasi anda perlu mengekalkan akses jangka panjang tanpa memerlukan pengguna memberi kebenaran semula secara manual berulang kali, ia harus meminta akses "luar talian" untuk mendapatkan token muat semula. Token muat semula tidak tamat tempoh dan boleh disimpan dan digunakan semula untuk mendapatkan token akses jangka pendek baharu apabila diperlukan tanpa memerlukan pengguna untuk membenarkan semula aplikasi secara manual.
P粉3646420192023-08-27 00:13:53
Saya jumpa penyelesaiannya
Langkah 1: Log masuk buat kali pertama melalui URL kebenaran/log masuk, selepas melengkapkan pengesahan, anda akan mendapat token akses dan token segar semula, simpan token segar semula dalam pangkalan data atau fail persekitaran. Ia mempunyai jangka hayat yang panjang. (https://github.com/kunalvarma05/dropbox-php-sdk/wiki/Authentication-and-Authorization)
Langkah 2: Menggunakan token muat semula, jana token akses baharu menggunakan kod berikut
public function refreshToken() { $arr = []; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.dropbox.com/oauth2/token'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=refresh_token&refresh_token=<refresh_token_here>"); curl_setopt($ch, CURLOPT_USERPWD, '<APP_KEY>'. ':' . '<APP_SECRET>'); $headers = array(); $headers[] = 'Content-Type: application/x-www-form-urlencoded'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); $result_arr = json_decode($result,true); if (curl_errno($ch)) { $arr = ['status'=>'error','token'=>null]; }elseif(isset($result_arr['access_token'])){ $arr = ['status'=>'okay','token'=>$result_arr['access_token']]; } curl_close($ch); return $arr; }
Panggil fungsi ini untuk mendapatkan token akses baharu