示例#1
0
 public function getCompanies()
 {
     $path = dirname(__FILE__) . '/dfp/src';
     $old_path = set_include_path(get_include_path() . PATH_SEPARATOR . $path);
     require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
     set_include_path($old_path);
     $cache_token = "dfp_companies";
     if (($data = Cache::read($cache_token, "5min")) === false) {
         $data = array();
         try {
             // Get DfpUser from credentials in "../auth.ini"
             // relative to the DfpUser.php file's directory.
             $user = new DfpUser();
             $user->LogErrors();
             // Log SOAP XML request and response.
             $user->LogDefaults();
             // Get the CompanyService.
             $companyService = $user->GetCompanyService('v201208');
             // Set defaults for page and statement.
             $page = new CompanyPage();
             $filterStatement = new Statement();
             $offset = 0;
             do {
                 // Create a statement to get all companies.
                 $filterStatement->query = 'LIMIT 500 OFFSET ' . $offset;
                 // Get companies by statement.
                 $page = $companyService->getCompaniesByStatement($filterStatement);
                 // Display results.
                 if (isset($page->results)) {
                     $i = $page->startIndex;
                     foreach ($page->results as $k => $company) {
                         $data[$k]['name'] = $company->name;
                         $data[$k]['id'] = $company->id;
                         $data[$k]['type'] = $company->type;
                     }
                 }
                 $offset += 500;
             } while ($offset < $page->totalResultSetSize);
         } catch (Exception $e) {
             die($e->getMessage());
         }
         asort($data);
         Cache::write($cache_token, $data, "5min");
     }
     return $data;
 }