2013-07-09 115 views
0

我正在使用活動監視器api和特林來訪問活動摘要。到目前爲止,我有以下工作:活動監視器api獲取摘要

require_once '../../csrest_campaigns.php'; 

$auth = array('api_key' => 'xxxxxxxxxxxxxxxxxxxxxxxxx'); 
$wrap = new CS_REST_Campaigns('xxxxxxxxxxxxxxxxxxxxxx', $auth); 

$result = $wrap->get_summary(); 

echo "Result of GET /api/v3/campaigns/{id}/summary\n<br />"; 
if($result->was_successful()) { 

    var_dump($result->response); 

} else { 
    echo 'Failed with code '.$result->http_status_code."\n<br /><pre>"; 
    var_dump($result->response); 
} 
echo '</pre>'; 

我想從上面提取某些數據,所以我增加了以下(替換的var_dump):

foreach($result->response as $entry) { 
     echo $entry->Recipients; 
     echo $entry->TotalOpened.'<br/>'; 
     echo $entry->Clicks.'<br/>'; 
     echo $entry->Unsubscribed.'<br/>'; 
     echo $entry->Bounced.'<br/>'; 
     echo $entry->UniqueOpened.'<br/>'; 
     echo $entry->SpamComplaints.'<br/>'; 
     echo $entry->WebVersionURL.'<br/>'; 
     echo $entry->WebVersionTextURL.'<br/>'; 
     echo $entry->WorldviewURL.'<br/>'; 
     echo $entry->Forwards.'<br/>'; 
     echo $entry->Likes.'<br/>'; 
     echo $entry->Mentions.'<br/>'; 
    } 

這表明沒有數據呢?任何人都可以看到我要去哪裏錯了嗎?

的var_dump:

stdClass Object 
(
    [Recipients] => 5 
    [TotalOpened] => 28 
    [Clicks] => 2 
    [Unsubscribed] => 0 
    [Bounced] => 0 
    [UniqueOpened] => 4 
    [SpamComplaints] => 0 
    [WebVersionURL] => http://xxxxxxxxxxxxxxxx 
    [WebVersionTextURL] => http://xxxxxxxxxxxxxxxxxxx 
    [WorldviewURL] => http://xxxxxxxxxxxxxxxxxxx 
    [Forwards] => 0 
    [Likes] => 0 
    [Mentions] => 0 
) 
+0

你最初的'var_dump($ result-> response);'打印出來了什麼? – andrewsi

+0

var_dump加上 – danyo

+1

我不相信需要foreach循環 - echo $ result-> response-> Recipients;'打印什麼? – andrewsi

回答

0

stdClass object and foreach loops - campaign monitor api

我想你可能需要:

$campaigns = $result->response->Results; 

則:

foreach($campaigns as $s) { 
    echo $s->Recipients . "\t" . $s->TotalOpened . "\n"; // etc. 
} 

大多數的Campaign Monitor方法返回一個對象公頃有一個響應 - >結果結構來獲取一組中的單個項目(活動,列表,訂戶等)。正如你可能看到的那樣,文檔沒有解釋這最後一步 - 它只是var_dumps對象,儘管你可以通過檢查它們來確定怎麼做。確保在直接檢查對象之前檢查是否有任何包裝器,但是我發現大多數情況下最終會使用response-> Results來獲取數據數組。 Pete

+0

如果你喜歡使用數組,你可以將stdObject轉換爲數組:$ result =(array)$ result-> response; –