2013-07-09 33 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; –