2012-03-21 19 views
7

मुझे परेशानी हो रही है क्योंकि फेसबुक ने ऑफ़लाइन_एसीएएस अनुमति को हटा दिया है।फेसबुक से विस्तारित पहुंच टोकन ठीक से काम नहीं कर रहा है

  1. मैं कॉल कर रहा हूँ के रूप में फेसबुक ने सुझाव दिया:

    2 बातें की कोशिश की।

    https://graph.facebook.com/oauth/access_token?    
        client_id=APP_ID& 
        client_secret=APP_SECRET& 
        grant_type=fb_exchange_token& 
        fb_exchange_token=EXISTING_ACCESS_TOKEN 
    
  2. मैं भी एंड्रॉयड एसडीके है, जो एक विस्तारित पहुंच टोकन प्राप्त करने के लिए एक आशय का उपयोग करता है की कोशिश की:

    intent.setClassName("com.facebook.katana", "com.facebook.katana.platform.TokenRefreshService"); 
    

developers.facebook.com मैं अपने ऐप सेट पर करने के लिए "देशी/डेस्कटॉप"।

मैं भी एप्लिकेशन सेटिंग पर offline_access अक्षम।

मैंने कोशिश करने से पहले अपने फेसबुक खाते से पुरानी अनुमतियां हटा दीं।

दोनों विधियां मुझे 24 घंटे टोकन प्रदान करती हैं। शायद कोई 60 दिन का टोकन पाने के लिए सही कॉल करने में मेरी मदद कर सकता है?

मैंने इस मुद्दे के बारे में कुछ बग रिपोर्ट देखी, लेकिन यह भी हल किया गया कि वे हल हो गए। ऐसा लगता है कि मेरे मामले में नहीं।

+1

शायद तुम पूछना चाहिए फेसबुक समर्थन इसके बारे में। – kapa

उत्तर

0

क्या आपने यह देखने के लिए परीक्षण किया है कि टोकन 24 घंटे से अधिक समय तक रहता है या नहीं? प्रलेखन के अनुसार, कुछ मामलों में, केवल सीमा समाप्ति समय जबकि टोकन ही रहता है अद्यतन किया जाता है:

लौटे ACCESS_TOKEN एक ताजा लंबे समय तक रहा समाप्ति का समय होगा, तथापि, ACCESS_TOKEN ही हो सकता है या हो सकता है पहले दी गई लंबी अवधि के access_token के समान नहीं है।

0

मान लीजिए कि आप फेसबुक एसडीके का उपयोग कर रहे हैं, यह पहले से ही एक विधि बनाने के लिए है।

facebook.extendAccessTokenIfNeeded(this, null); 

यह संदर्भ और शून्य सेवा सेवा होने वाला है।

आप extendAccessToken रूप में अच्छी तरह उपयोग कर सकते हैं, एक ही प्रिंसिपल

+2

असल में, एंड्रॉइड एसडीके का वर्तमान संस्करण com.facebook.katana सेवा का उपयोग करेगा; जिसका अर्थ है कि यदि उपयोगकर्ता ने ऐप इंस्टॉल नहीं किया है तो टोकन को रीफ्रेश नहीं किया जाएगा। – Cristian

1

समारोह निम्नलिखित उपयोग विस्तारित पहुंच टोकन प्राप्त करने: सार्वजनिक समारोह 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'), 
      $params = array( 'client_id' => $this->getAppId(), 
           'client_secret' => $this->getApiSecret(), 
           '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']; 

}

संबंधित मुद्दे