Ejemplo n.º 1
0
 /**
  * validate the response from facebook
  */
 protected function executeProcessOAuth2Response()
 {
     $this->tokenError = null;
     $appId = $this->getFromConfig(FacebookConstants::FACEBOOK_APP_ID_REQUEST_PARAM);
     $appSecret = $this->getFromConfig(FacebookConstants::FACEBOOK_APP_SECRET_REQUEST_PARAM);
     $pageId = base64_decode($this->getRequestParameter(FacebookConstants::FACEBOOK_PAGE_ID_REQUEST_PARAM));
     $providerId = base64_decode($this->getRequestParameter(FacebookConstants::FACEBOOK_PROVIDER_ID_REQUEST_PARAM));
     $ks = $this->getRequestParameter(FacebookConstants::FACEBOOK_KS_REQUEST_PARAM);
     $permissions = explode(',', base64_decode($this->getRequestParameter(FacebookConstants::FACEBOOK_PERMISSIONS_REQUEST_PARAM)));
     try {
         $accessURL = $this->getFacebookDistributionAccessURL($providerId, $ks);
         $dataHandler = new kDistributionPersistentDataHandler($accessURL);
         $userAccessToken = FacebookGraphSdkUtils::getLongLivedUserAccessToken($appId, $appSecret, $dataHandler, $permissions);
         if ($userAccessToken) {
             $pageAccessToken = FacebookGraphSdkUtils::getPageAccessToken($appId, $appSecret, $userAccessToken, $pageId, $dataHandler);
             if ($pageAccessToken) {
                 $dataHandler->set('userAccessToken', $userAccessToken);
                 $dataHandler->set('pageAccessToken', $pageAccessToken);
             }
         }
     } catch (Exception $e) {
         $this->tokenError = true;
         $this->errorMessage = $e->getMessage();
     }
 }