public function publishOnPage(Post $post, $message = null)
 {
     $response = new FacebookPostAsPageResponse();
     $accessToken = $this->getUserLongAccessToken();
     if (!$post->getPublished()) {
         return $response->setException(new \Exception('flash_batch_facebook_post_not_published'));
     }
     if ($accessToken->tokenIsEmpty()) {
         return $response->setException(new \Exception('flash_batch_facebook_access_token_empty'));
     }
     $this->application->setDefaultAccessToken($accessToken->getAccessToken());
     try {
         $getPageAccessToken = $this->application->sendRequest('GET', '/' . $this->pageId, array('fields' => 'access_token'))->getDecodedBody();
         $params = array('message' => null !== $message ? $message : '', 'name' => $post->getTitle(), 'caption' => $post->getDescription(), 'link' => $this->router->generate('front_article_view', array('slug' => $post->getSlug()), true));
         if (count($post->getImages()) > 0) {
             $hompage = $this->router->generate('homepage', array(), true);
             $imgWebPath = $this->assetsHelper->getUrl($post->getPreviewImage()->getWebPath());
             $params['picture'] = $hompage . $imgWebPath;
         }
         $endPoint = null === $post->getFbId() ? $this->pageId . '/feed' : $post->getFbId();
         $postAsPage = $this->application->post('/' . $endPoint, $params, $getPageAccessToken['access_token'])->getDecodedBody();
         $response->setId(isset($postAsPage['id']) ? $postAsPage['id'] : $post->getFbId());
     } catch (\Exception $e) {
         return $response->setException($e);
     }
     return $response;
 }
Example #2
0
 public function get()
 {
     $fb = new Fb(['app_id' => Config::getConfig('FacebookAppId'), 'app_secret' => Config::getConfig('FacebookSecret'), 'default_graph_version' => Config::getConfig('FacebookAPIVersion')]);
     $fields = $this->request->get('facebookFields_text', false, '');
     $edge = $this->request->get('facebookEdge_text', false, '');
     $response = $fb->sendRequest('GET', '/' . $this->request->get('facebookUserId_text') . $edge, array('fields' => $fields), $this->request->get('facebookAccessToken_text'));
     $facebookBody = $response->getDecodedBody();
     $body = $this->request->body;
     $body['facebookResponse_text'] = $facebookBody;
     $this->request->response->body = $body;
     $this->request->response->code = r_success;
 }
 public static function fb_access_token()
 {
     $conf = SiteConfig::current_site_config();
     $token = null;
     // get page token
     $token = $conf->FacebookPageAccessToken;
     // if that failed get the user token
     if (!$token) {
         $token = $conf->FacebookUserAccessToken;
     }
     // if the page and user token are bad then get an app access token
     if (!$token) {
         $facebook = new Facebook(array('app_id' => $conf->FacebookAppId, 'app_secret' => $conf->FacebookAppSecret));
         $url = '/oauth/access_token' . '?client_id=' . $conf->FacebookAppId . '&client_secret=' . $conf->FacebookAppSecret . '&grant_type=client_credentials';
         $res = $facebook->sendRequest('get', $url)->getDecodedBody();
         $token = $res['access_token'];
     }
     return $token;
 }
Example #4
0
 /**
  * Get profile feed filtered by parameters
  *
  * @param string $profileId the facebook profile id
  * @param array $params
  * @return mixed
  * @see https://developers.facebook.com/docs/graph-api/reference/v2.5/post
  *
  * @throws Facebook\Exceptions\FacebookSDKException
  */
 public function getFeed($profileId, array $params = [])
 {
     return $this->fb->sendRequest('GET', "/{$profileId}/feed", $params)->getGraphEdge();
 }
 /**
  * @param string $path
  * @param string $method
  * @param array $params
  * @return \Facebook\FacebookResponse
  */
 private function _access($method, $path, $params)
 {
     return $this->_facebook->sendRequest($method, $path, $params);
 }