*/ $partialRequests = $batch->getBatchRequests(); /** * Set the default header */ header('Content-Type: application/json'); /** * If the number of requests are 1 or more */ if (count($partialRequests) > 0) { $count = 1; $completeRequests = []; foreach ($partialRequests as $request) { $key = 'request-' . $count; if ($request['method'] == 'GET') { $completeRequests[$key] = $fb->request($request['method'], $request['entity']); } else { if ($request['method'] == 'POST') { $completeRequests[$key] = $fb->request($request['method'], $request['entity'], ['message' => $request['message']]); } } $count++; } try { $responses = $fb->sendBatchRequest($completeRequests); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo json_encode(['error' => $e->getMessage()]); exit(1); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo json_encode(['error' => $e->getMessage()]); exit(1);
<?php require_once __DIR__ . '/vendor/autoload.php'; $assetsFolder = __DIR__ . '/downloaded-assets'; $nodes = array(); $fb = new Facebook\Facebook(['app_id' => '1671486879750098', 'app_secret' => '34571d3ffa4960308192d362dc4d0711', 'default_graph_version' => 'v2.4']); $fb->setDefaultAccessToken('1671486879750098|34571d3ffa4960308192d362dc4d0711'); $request = $fb->request('GET', '/1410974149199136/posts', ['fields' => 'full_picture,link,source,properties,type,created_time,updated_time,to,message,message_tags,story,story_tags', 'limit' => 100]); try { $response = $fb->getClient()->sendRequest($request); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $edge = $response->getGraphEdge(); do { foreach ($edge as $post) { $nodes[$post->getField('id')] = $post->asArray(); } } while ($edge = $fb->next($edge)); if (!empty($nodes)) { $filename = 'data-' . time() . '.json'; file_put_contents($assetsFolder . "/{$filename}", json_encode($nodes)); print "Saved " . count($nodes) . " nodes to {$filename}\n"; } else { echo "Something went wrong!\n";
<?php require 'vendor/autoload.php'; $appId = getenv('FACEBOOK_APP_ID'); $appSecret = getenv('FACEBOOK_APP_SECRET'); $accessToken = getenv('FACEBOOK_ACCESS_TOKEN'); $pageId = getenv('FACEBOOK_PAGE_ID'); $fb = new Facebook\Facebook(['app_id' => $appId, 'app_secret' => $appSecret, 'default_graph_version' => 'v2.4', 'default_access_token' => $accessToken]); $request = $fb->request('GET', "/{$pageId}/feed"); $response = $fb->getClient()->sendRequest($request); $feeds = $response->getGraphEdge(); foreach ($feeds as $feed) { $id = $feed->getField('id'); $url = htmlspecialchars("https://www.facebook.com/{$id}", ENT_QUOTES); $message = str_replace("\n", '', $feed->getField('message')); $title = htmlspecialchars(mb_substr($message, 0, 30, 'UTF-8'), ENT_QUOTES); echo "<a href=\"{$url}\" target=\"_blank\">"; echo "<h1>{$title}...</h1>"; echo "</a>"; }
public function logincallback() { $fb = new Facebook\Facebook(['app_id' => '1509104876060790', 'app_secret' => '977e891176e8e1e9e6b626323f01d8bb', 'default_graph_version' => 'v2.5']); //$fbApp = new Facebook\FacebookApp('1509104876060790','977e891176e8e1e9e6b626323f01d8bb'); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error1 : ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in! $_SESSION['facebook_access_token'] = (string) $accessToken; // Sets the default fallback access token so we don't have to pass it to each request $fb->setDefaultAccessToken($accessToken); // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] try { //Get pages $request = $fb->request('GET', '/me/accounts'); $response = $fb->getClient()->sendRequest($request); $graphEdge = $response->getGraphEdge(); // Iterate over all the GraphNode's returned from the edge $json = ""; foreach ($graphEdge as $key => $value) { $json .= $value['id'] . ":" . $value['name'] . ","; } //Get name and email $request = $fb->request('GET', '/me?fields=name,email'); $response = $fb->getClient()->sendRequest($request); $graphNode = $response->getGraphNode(); $name = $graphNode['name']; $id = $graphNode['id']; $email = isset($graphNode['email']) ? $graphNode['email'] : ''; //Get long token // OAuth 2.0 client handler $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); $loginData = array(); $loginData['pages'] = $json; $loginData['name'] = $name; $loginData['email'] = $email; $loginData['id'] = $id; $loginData['facebook_token'] = $longLivedAccessToken; $loginData['login_provider'] = 'facebook'; $this->save_and_login($loginData); //$this->index($loginData); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error1 : ' . $e->getMessage(); exit; } //echo 'Logged in as ' . $userNode->getName(); } }
// When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in! $_SESSION['facebook_access_token'] = (string) $accessToken; // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] } $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); $request = $fb->request('GET', '/me?fields=id,name'); try { $response = $fb->getClient()->sendRequest($request); $userNode = $response->getGraphUser()->asArray(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } //echo "\n". $userNode['id']; echo "\n welcome " . $userNode['name']; $userId = $userNode['id'];
function updateActivities($posting_model) { if (!$posting_model instanceof \xepan\marketing\Model_SocialPosting and !$posting_model->loaded()) { throw $this->exception('Posting Model must be a loaded instance of Model_SocialPosting', 'Growl'); } $user_model = $posting_model->ref('user_id'); $config_model = $user_model->ref('config_id'); $config = array('app_id' => $config_model['appId'], 'app_secret' => $config_model['secret'], 'default_graph_version' => $this->default_graph_version); $post_content['access_token'] = $user_model['access_token']; $fb = new \Facebook\Facebook(['app_id' => $config_model['appId'], 'app_secret' => $config_model['secret'], 'default_graph_version' => $this->default_graph_version]); $fb->setDefaultAccessToken($user_model['access_token']); $requests = ['reactions' => $fb->request('GET', '/' . $posting_model['postid_returned'] . '/reactions', [], $user_model['access_token']), 'comments' => $fb->request('GET', '/' . $posting_model['postid_returned'] . '/comments?filter=stream&fields=parent.fields(id),created_time,message,from,likes', [], $user_model['access_token'])]; try { $responses = $fb->sendBatchRequest($requests); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } // decode all the data $response_data = $responses->getDecodedBody(); // index 0 for reactions because first batch process is reaction if ($response_data[0]['code'] === 200) { $reactions_data_array = json_decode($response_data[0]['body'], true); $posting_model->updateLikesCount(count($reactions_data_array['data'])); } // index 1 for comments because second batch process is comments if ($response_data[1]['code'] === 200) { $comments_data_array = json_decode($response_data[1]['body'], true); $comments = $comments_data_array['data']; // echo "<pre>"; foreach ($comments as $key => $comment) { $activity = $this->add('xepan/marketing/Model_SocialPosters_Base_SocialActivity'); $activity->addCondition('posting_id', $posting_model->id); $activity->addCondition('activityid_returned', $comment['id']); $activity->addCondition('activity_type', "Comment"); $activity->tryLoadAny(); $activity['activity_on'] = $comment['created_time']; $activity['activity_by'] = $comment['from']['id'] . '-' . $comment['from']['name']; $activity['name'] = $comment['message']; if ($comment['likes']['data']) { $activity['name'] = $activity['name'] . '<br><i class="fa fa-thumbs-up">' . count($comment['likes']['data']) . '</i>'; } $activity['action_allowed'] = $comment['can_remove'] ? 'can_remove' : ''; $activity->save(); } } }