Интеграция mailchimp с CRM - PullRequest
       14

Интеграция mailchimp с CRM

0 голосов
/ 15 октября 2018

Необходимо получить идентификатор_кампании с указанным списком_идентификатора.Моя цель - получить все данные кампании, а затем отсортировать их с помощью list_id.Мне удалось получить тело ответа на кампанию, но мне почему-то не удалось получить список list_id кампании.Любая помощь или другой подход будет принята с благодарностью.Совместное использование моего кода и ссылки на mailchimp api.

MailChimp api ref:

"campaigns": [
    {
      "id": "42694e9e57",
      "type": "regular",
      "create_time": "2015-09-15T14:40:36+00:00",
      "archive_url": "http://",
      "status": "save",
      "emails_sent": 0,
      "send_time": "",
      "content_type": "template",
      "recipients": {
        "list_id": "57afe96172",  // this is required
        "segment_text": ""
      },

My Progress:

public static function getCampaignID($list_id){
    $MCcampaigninfo = self::$mc_api->get("/campaigns"); // gives a response consisting 3 rows, required value is in 1st row, which is an array
    foreach ($MCcampaigninfo as $key => $value) {
        if ($value[8]->'list_id' == $list_id) { //under the 'campaign'array, we need the 9th position property 'recipient'
            $campaign_id = $value[12]->'id';
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Получил это работает.Структура API кажется в действительности отличается от их документации.Спасибо за помощь.Размещать мой обновленный код.

public static function getCampaignID($list_id){
    $MCcampaigninfo = self::$mc_api->get("/campaigns");     
    foreach ($MCcampaigninfo as $key => $campaign) {
        if($key == campaigns){
            foreach ($campaign as $key2 => $clist) {
                foreach ($clist as $key3 => $recip) {
                    if($key3 == id){
                        $campaign_id = $recip;
                    }
                    elseif($key3 == recipients){
                        foreach($recip as $key4 => $listid){
                            if($key4 == list_id){
                                if($listid == $list_id){
                                    return $campaign_id;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
0 голосов
/ 15 октября 2018

Этот код предполагает, что ответ $mc_api->get равен JSON, который вы показали в своем примере

public static function getCampaignID($list_id) {
    $campaigns = json_encode(self::$mc_api->get("/campaigns"), true);
    $campaignIds = [];
    foreach ($campaigns as $campaign) {

        //if the list_id matches the current campaign recipients['list_id'] add to the array
        if ($campaign['recipients']['list_id'] === $list_id) {
            $campaignIds[] = $campaign['id'];
        }
    }

    //return an array with campaignIds
    return $campaignIds;
}
...