SORU
24 Ocak 2012, Salı


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
27 Ocak 2012, Cuma


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'];
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • girleffect

    girleffect

    20 Mayıs 2008
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009