Nasıl offline_access admin beri access token geçerlilik süresi uzatmak
offline_access
Permission o Authentication akış Facebook kaldırılmış olduğundan, sorun bu izin olmadan sözde uzun ömürlü erişim belirteçleri kazanır, var.
Facebook's document about the deprecation yazıyor, OAuth oluşturulan erişim belirteçleri sunucu tarafında uzun ömürlü olacaktır, ama onlar değil.
Bir şey mi kaçırdım? App ayarlarında bazı ayarları? Erişim belirteçleri son kullanma süresini uzatmak için kullanmam gereken özel bir kod mu? Belgelere anladığım kadarıyla, sunucu tarafında kimlik doğrulaması için, token hangi kullanıcı oturum açtığında PHP SDK getAccessToken()
yöntemi tarafından erişilebilir erişim uzun ömürlü oluyor.
CEVAP
Edit (14 Ağustos 2012):
Bir hafta önce resmi Facebook PHP SDK güncellendi. İşlev adı değiştirildisetExtendedAccessTokenbiz aslında oturum sonrasında , iki etkin oturumların olması riskini ortadan kaldırmak için yok etmek için gerekli karar verildi.
Ayrıca, bu işlev, artık gerçekten token verir, ancak bunun yerine kalıcı veri içinde saklar. Bu nedenle yeni kamu erişim fonksiyonu ile token alabilirsinizgetAccessTokendaha sonra. official Facebook PHP SDK github page yeni SDK güncel olduğundan emin olun.
Orijinal Cevabı:
60 gün içinde sona erecek olan yeni bir erişim belirteci döndürür base_facebook.php dosya için yeni bir kamu fonksiyonu ekledim. Normal access token aldıktan sonra bu fonksiyon için bir istek yapabilirsiniz. Ama aynı zamanda '" Geliştirici uygulamanın Gelişmiş Ayarlar. offline_access iptal etme etkinleştirmeniz gerekir sanırım test ettik değil
Sadece facebook sınıf içinde base_facebook.php bunu ekleyin ve arayın. Bu benim için çalışıyor.
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'];
}
Google access token geçerlilik süresi...
Nasıl başka bir dizi ile mevcut JavaSc...
Nasıl birim test soyut sınıflar için: ...
Nasıl Ruby DateTime için bir unix zama...
Nasıl-Control-Allow-Access Kökenli çal...