Example #1
0
 /**
  * @return \Facebook\FacebookSession
  */
 public function getSession()
 {
     $conf = json_decode(file_get_contents(realpath(dirname(__FILE__)) . '/config.json'));
     Api::init($conf->applicationId, $conf->applicationSecret, $conf->accessToken);
     FacebookSession::setDefaultApplication($conf->applicationId, $conf->applicationSecret);
     return new FacebookSession($conf->accessToken);
 }
Example #2
0
 /**
  * @return \Facebook\Facebook
  */
 public function getFacebook()
 {
     $conf = json_decode(file_get_contents(realpath(dirname(__FILE__)) . '/config.json'));
     Api::init($conf->applicationId, $conf->applicationSecret, $conf->accessToken);
     $facebook = new \Facebook\Facebook(['app_id' => $conf->applicationId, 'app_secret' => $conf->applicationSecret, 'default_access_token' => $conf->accessToken, 'default_graph_version' => 'v2.4']);
     return $facebook;
 }
 /**
  * Register the application services.
  *
  * @return void
  */
 public function register()
 {
     $this->app->bind('FacebookAdsAPI', function () {
         $config = config('facebook');
         Api::init($config['app_id'], $config['app_secret'], $config['access_token']);
         return Api::instance();
     });
 }
Example #4
0
 /**
  * Create an instance of Facebook session
  */
 private function set_fb_request_session()
 {
     $settings = array('app_id' => APP_ID_FOR_ADS_MANAGER, 'app_secret' => APP_SECRET_FOR_ADS_MANAGER, 'default_graph_version' => 'v2.5');
     $fb = new Facebook\Facebook($settings);
     $fb->setDefaultAccessToken(self::$fbToken);
     self::$fbSession = $fb;
     Api::init(APP_ID_FOR_ADS_MANAGER, APP_SECRET_FOR_ADS_MANAGER, self::$fbToken);
 }
 public function testInit()
 {
     $api = Api::init(static::VALUE_SESSION_APP_ID, static::VALUE_SESSION_APP_SECRET, static::VALUE_SESSION_ACCESS_TOKEN);
     $this->assertTrue($api instanceof Api);
     $this->assertTrue($api === Api::instance());
     $this->assertEquals(static::VALUE_SESSION_APP_ID, $api->getSession()->getAppId());
     $this->assertEquals(static::VALUE_SESSION_APP_SECRET, $api->getSession()->getAppSecret());
     $this->assertEquals(static::VALUE_SESSION_ACCESS_TOKEN, $api->getSession()->getAccessToken());
 }
Example #6
0
 /**
  * @param string    $appId          Facebook app ID
  * @param string    $appSecret      Facebook app Secret
  * @param string    $fbToken        Facebook token
  * @param object    $appSettings    Application configuration settings
  * @param array     $availability   Array with current doctor availability
  * @throws Exception
  */
 public function __construct($appId, $appSecret, $fbToken, $appSettings, $availability)
 {
     if (empty($appId) || empty($appSecret) || empty($fbToken) || !is_object($appSettings)) {
         throw new Exception('All params are required');
     }
     self::$appId = $appId;
     self::$appSecret = $appSecret;
     self::$fbToken = $fbToken;
     self::$settings = $appSettings;
     self::$availability = $availability;
     $this->set_account_id();
     $this->set_fb_request_session();
     Api::init($appId, $appSecret, $fbToken);
     $this->CI =& get_instance();
 }
Example #7
0
 public function __construct($accessToken, $appId, $appSecret, $accountId)
 {
     if (!is_string($accessToken) || !is_string($appId) || !is_string($appSecret) || !is_string($accountId)) {
         throw new Exception("Missing parameter(s)");
     }
     $this->accessToken = $accessToken;
     $this->appId = $appId;
     $this->appSecret = $appSecret;
     $this->accountId = $accountId;
     date_default_timezone_set('America/Los_Angeles');
     Api::init($this->appId, $this->appSecret, $this->accessToken);
     $this->account = (new AdAccount($this->accountId))->read([AdAccountFields::ID, AdAccountFields::ACCOUNT_STATUS]);
     if ($this->account->{AdAccountFields::ACCOUNT_STATUS} !== 1) {
         throw new \Exception('This account is not active');
     }
 }
Example #8
0
 private function initFacebookApi($accessToken)
 {
     $fbApi = FacebookAds\Api::init(self::APP_ID, self::APP_SECRET, $accessToken);
     $fbApi->setLogger(new FacebookLoggerWrapper($this->get('logger')));
     $me = new AdUser('me');
     $adAccount = $me->getAdAccounts()->current();
     $adAccountId = $adAccount->getData()[AdFields::ACCOUNT_ID];
     $client = $this->createHttpClient();
     return new AdApi($adAccountId, self::PAGE_ID, $accessToken, $client);
 }
use FacebookAds\Cursor;
use FacebookAds\Object\AbstractCrudObject;
use FacebookAds\Object\AdAccount;
use FacebookAds\Logger\CurlLogger;
use FacebookAdsTest\Bootstrap;
$relative_path = getcwd();
chdir(__DIR__);
if (!ini_get('date.timezone')) {
    ini_set('date.timezone', 'UTC');
}
$loader = (require __DIR__ . '/../autoload.php');
require_once __DIR__ . '/../../test/FacebookAdsTest/Bootstrap.php';
// Setup the same env as our tests
Bootstrap::initAutoloader();
$config = Bootstrap::initIntegrationConfig();
Api::init($config->appId, $config->appSecret, $config->accessToken);
if (in_array('--dump', $_SERVER['argv'])) {
    Api::instance()->setLogger(new CurlLogger(STDERR));
}
$get_class_name = function ($object) {
    return (new ReflectionClass($object))->getShortName();
};
$delete_object = function (AbstractCrudObject $object) use($get_class_name) {
    echo sprintf(' > Deleting %s %d', $get_class_name($object), $object->{AbstractCrudObject::FIELD_ID}) . PHP_EOL;
    $object->delete();
};
$clean_edge = function ($cursor_provider) use($get_class_name, $delete_object) {
    try {
        $cursor = call_user_func($cursor_provider);
        if (!$cursor instanceof Cursor) {
            throw new ErrorException(sprintf("Provider returned instance of %s", $get_class_name($cursor)));
<?php

require './vendor/autoload.php';
use FacebookAds\Api;
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Values\InsightsPresets;
use FacebookAds\Object\Values\InsightsLevels;
function requireEnv($key)
{
    $value = getenv($key);
    if (!$value) {
        throw new \InvalidArgumentException(sprintf('Environment variable %s must be set', $key));
    }
    return $value;
}
Api::init(requireEnv('FACEBOOK_APP_ID'), requireEnv('FACEBOOK_APPSECRET'), requireEnv('FACEBOOK_ACCESS_TOKEN'));
function waitForJobToComplete($job)
{
    sleep(2);
    $job->read();
    while (!$job->isComplete()) {
        sleep(5);
        $job->read();
    }
    $cursor = $job->getResult();
    $cursor->setUseImplicitFetch(true);
    return $cursor;
}
function queryTotal(array $dimensions, $column, \DateTime $date)
{
    $account = new AdAccount(requireEnv('FACEBOOK_ACCOUNT_ID'));
 /**
  * @param $userId
  *
  * @return FacebookAdsAuthContainer
  */
 public function getAuthContainer($userId)
 {
     $oauthTokens = $this->MediaPlatformUser->getOauthTokens($userId);
     if (empty($oauthTokens)) {
         throw new NotFoundException('Could not find the oauth tokens for MediaPlatformUser #' . $userId . '.');
     }
     $facebookAuthContainer = new FacebookAdsAuthContainer();
     $this->_facebook->setDefaultAccessToken($oauthTokens['OauthToken']['access_token']);
     $facebookAuthContainer->facebookSdk = $this->_facebook;
     $facebookAuthContainer->facebookAds = Api::init(Configure::read('FacebookAds.app_id'), Configure::read('FacebookAds.app_secret'), $oauthTokens['OauthToken']['access_token']);
     $this->_sendEventIfTokenExpiresInTwoWeeks($userId, $oauthTokens['OauthToken']['token_expires']);
     return $facebookAuthContainer;
 }
 /**
  * Authenticate & initiate
  *
  * @param string $appId
  * @param string $appSecret
  * @param string $token
  * @return Api|null
  */
 public function instanceWithAuth($appId, $appSecret, $token)
 {
     Api::init($appId, $appSecret, $token);
     return Api::instance();
 }
<?php

// Add to header of your file
require_once __DIR__ . '/vendor/autoload.php';
use FacebookAds\Api;
use FacebookAds\Object\AdUser;
use FacebookAds\Logger\CurlLogger;
session_start();
$cwd = getcwd();
$conf = json_decode(file_get_contents("{$cwd}/conf/conf.json"), true);
$access_token = isset($_SESSION['facebook_access_token']) ? $_SESSION['facebook_access_token'] : $conf['access_token'];
print_r("<PRE>");
Api::init($conf['app_id'], $conf['app_secret'], $_SESSION['facebook_access_token']);
$me = new AdUser('me');
$my_adaccount = $me->getAdAccounts()->current();
print_r($my_adaccount->getData());
print_r("</PRE>");
Example #14
0
 // Logged in!
 $_SESSION['facebook_access_token'] = (string) $accessToken;
 $short_access_token = (string) $accessToken;
 // OAuth 2.0 client handler
 $oAuth2Client = $fb->getOAuth2Client();
 // Exchanges a short-lived access token for a long-lived one
 $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($short_access_token);
 // Sets the default fallback access token so we don't have to pass it to each request
 $fb->setDefaultAccessToken($longLivedAccessToken);
 try {
     $response = $fb->get('/me');
     $userNode = $response->getGraphUser();
     // Add to header of your file
     // Add after echo "You are logged in "
     // Initialize a new Session and instantiate an Api object
     Api::init($CLIENT_ID, $APP_SECRET, $longLivedAccessToken);
     // Add after Api::init()
     $me = new AdUser('me');
     $my_adaccount = $me->getAdAccounts()->current();
     print_r($my_adaccount->getData());
     // $page_token = $fb -> get("/$PAGE_ID") ->getAccessToken() ;
     // $albums = $fb -> get("/$PAGE_ID/albums") -> getGraphEdge();
     // $photo = $fb -> post("$ALBUM_ID/photos", array( 'source' => $fb ->fileToUpload("Monkey.D..Luffy.full.476449.jpg"), "message" => 'New photo hello' ), $page_token);
     // $total_post = $fb -> get("/$PAGE_ID/feed") -> getGraphEdge() ->asJson();
     //			echo $total_post;
     /* PHP SDK v5.0.0 */
     /* make the API call */
 } catch (Facebook\Exceptions\FacebookResponseException $e) {
     // When Graph returns an error
     echo 'Graph returned an error: ' . $e->getMessage();
     exit;
 * You are hereby granted a non-exclusive, worldwide, royalty-free license to
 * use, copy, modify, and distribute this software in source code or binary
 * form for use in connection with the web services and APIs provided by
 * Facebook.
 *
 * As with any software that integrates with the Facebook platform, your use
 * of this software is subject to the Facebook Developer Principles and
 * Policies [http://developers.facebook.com/policy/]. This copyright notice
 * shall be included in all copies or substantial portions of the software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 */
use FacebookAds\Bootstrap;
use FacebookAds\Api;
chdir(__DIR__);
if (!ini_get('date.timezone')) {
    ini_set('date.timezone', 'UTC');
}
// FIXME - @pruno
// Untill we will run in full CI mode, composer won't be here, autoload manually
require_once __DIR__ . '/../src/SplClassLoader.php';
(new SplClassLoader('FacebookAds', __DIR__ . '/../../src/'))->register();
echo sprintf('v%s', Api::init('', '', '')->getDefaultGraphVersion()) . PHP_EOL;
 /**
  * {@inheritdoc}
  */
 public function init($accessToken)
 {
     Api::init(config('facebook-ads.app_id'), config('facebook-ads.app_secret'), $accessToken);
     return Api::instance();
 }
$app_id = null;
$app_secret = null;
// should begin with "act_" (eg: $account_id = 'act_1234567890';)
$account_id = null;
// Configurations - End
if (is_null($access_token) || is_null($app_id) || is_null($app_secret)) {
    throw new \Exception('You must set your access token, app id and app secret before executing');
}
if (is_null($account_id)) {
    throw new \Exception('You must set your account id before executing');
}
define('SDK_DIR', __DIR__ . '/..');
// Path to the SDK directory
$loader = (include SDK_DIR . '/vendor/autoload.php');
use FacebookAds\Api;
Api::init($app_id, $app_secret, $access_token);
// use the namespace for Custom Audiences and Fields
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceTypes;
// Create a custom audience object, setting the parent to be the account id
$audience = new CustomAudience(null, $account_id);
$audience->setData(array(CustomAudienceFields::NAME => 'My Custom Audiece', CustomAudienceFields::DESCRIPTION => 'Lots of people'));
// Create the audience
$audience->create();
echo "Audience ID: " . $audience->id . "\n";
// Assuming you have an array of emails:
// NOTE: The SDK will hash (SHA-2) your data before submitting
// it to Facebook servers
$emails = array('*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**');
$audience->addUsers($emails, CustomAudienceTypes::EMAIL);
Example #18
0
 private function init_ads_api_instance($fbToken)
 {
     Api::init(APP_ID_FOR_ADS_MANAGER, APP_SECRET_FOR_ADS_MANAGER, $fbToken);
 }