示例#1
0
 */
$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);
示例#2
0
<?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";
示例#3
0
<?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>";
}
示例#4
0
 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'];
示例#6
0
 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();
         }
     }
 }