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
)   

person danyo    schedule 09.07.2013    source источник
comment
Что распечатывает ваш начальный var_dump($result->response);?   -  person andrewsi    schedule 09.07.2013
comment
Я не верю, что цикл foreach нужен - печатает ли что-нибудь echo $result->response->Recipients;?   -  person andrewsi    schedule 09.07.2013


Ответы (1)


См. объект stdClass и циклы foreach - API монитора кампании

Я думаю, вам может понадобиться:

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

тогда:

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

Большинство методов Campaign Monitor возвращают объекты, имеющие структуру response->Results для получения отдельных элементов в наборе (кампании, списки, подписчики и т. д.). Как вы, наверное, заметили, документация не объясняет этот последний шаг — он просто var_dumps объектов, хотя вы можете решить, что делать, изучив их. Убедитесь, что вы проверяете, есть ли какие-либо оболочки, прежде чем исследовать объект напрямую, но я обнаружил, что в основном вы используете response- > Results для получения массивов данных. Пит

person Pete855217    schedule 17.03.2014
comment
Если вы предпочитаете работать с массивами, вы можете привести stdObject к массиву: $result = (array) $result-›response; - person DMCoding; 27.01.2016