16

現在、PHP用のMailChimp APIバージョン1.3.1(http://apidocs.mailchimp.com/api/downloads/#php)を使用しています。

MailChimpでリストを設定し、動的に追加したいと思います。

  1. リストのサブスクライバー(完了$objMailChimp->listBatchSubscribe($strMailingListID, ...):)
  2. インタレストグループ化(完了$objMailChimp->listInterestGroupingAdd($strMailingListID, ...):)
  3. それらのグループへの分科会(完了$objMailChimp->listInterestGroupAdd($strMailingListID, ...):)
  4. 関連するグループに割り当てられたサブスクライバー(未完了)

API(http://apidocs.mailchimp.com/api/1.3/#listrelated)は、利益団体にサブスクライバーを追加する方法についていくらか不明確です-ここに誰かアイデアがありますか?

4

8 に答える 8

21

MailChimp の API のバージョン 2.0 では、次のように動作するはずです。

$merge_vars = array(
    'GROUPINGS' => array(
        array(
            'name' => "GROUP CATEGORY #1", // You can use either 'name' or 'id' to identify the group
            'groups' => array("GROUP NAME","GROUP NAME")
        ),
        array(
            'name' => "GROUP CATEGORY #2",
            'groups' => array("GROUP NAME")
        )
    )
);

ソース: http://apidocs.mailchimp.com/api/2.0/lists/subscribe.php

ベアボーン PHP ラッパー ( https://github.com/drewm/mailchimp-api/ ) を使用すると、リスト/サブスクライブまたはリスト/バッチ-サブスクライブのいずれかを介してこれを MailChimp に送信できます。

$MailChimp = new MailChimp('API_KEY');
$result = $MailChimp->call('lists/subscribe', array(
      'id'                => 'LIST ID',
      'email'             => array('email'=>'trevor@example.com'),
      'merge_vars'        => $merge_vars
));
于 2013-09-12T18:28:47.627 に答える
8

このページの他の回答を機能させることができませんでした。使用しなければならなかったマージ変数は次のとおりです。

$merge_vars = array(
    'GROUPINGS' => array(
        0 => array(
            'id' => "101", //You have to find the number via the API
            'groups' => "Interest Name 1, Interest Name 2",
        )
    )
);
于 2012-11-02T21:55:34.010 に答える
2

ここに私が働かなければならないコードがあります

require_once 'MCAPI.class.php';
require_once 'config.inc.php'; //contains apikey

// use this once to find out id of interest group List
//$retval = $api->listInterestGroupings($listId);
//echo '<pre>';
//print_r($retval);
//echo '</pre>';
//die();

$emailAddress = 'info@example.com';
//You have to find the number via the API (id of interest group list)
$interestGroupListId = FILLMEIN;

$api = new MCAPI($apikey);

// Create an array of Interest Groups you want to add the subscriber to.
$mergeVars = array(
    'GROUPINGS' => array(
        0 => array(
            'id' => $interestGroupListId, 
            'groups' => "FILL IN GROUP NAMES",
        )
    )
);

// Then use listUpdateMember to add them
$retval = $api->listUpdateMember($listId, $emailAddress, $mergeVars);

if ($api->errorCode){
    echo "Unable to update member info!\n";
    echo "\tCode=".$api->errorCode."\n";
    echo "\tMsg=".$api->errorMessage."\n";
} else {    
    echo "Returned: ".$retval."\n";
}
于 2013-06-18T12:36:25.020 に答える
2

GROUPINGSマージ変数を使用:

グループ化による関心グループの設定。この配列の各要素は、追加するインタレスト グループのコンマ区切りリストを含む「groups」パラメーターを含む配列である必要があります。インタレスト グループ名のコンマは、バックスラッシュでエスケープする必要があります。つまり、"," => "\," と "id" または "name" パラメーターでグループ化を指定 - listInterestGroupings()から取得

于 2012-01-06T17:24:41.490 に答える
0

また、省略可能ですが非常に重要な listUpdateMember の最後のパラメータであることに注意してください。デフォルトではreplace_interestsが true に設定されているため、更新しているユーザーが過去に持っていたサブスクリプションが上書きされます。以前のものに触れずに新しいものを追加したい場合は、追加したい新しいグループ名を渡し、replace_interestsを false に設定してください。

$api = new MailChimp('API_KEY');
$pArray = array('GROUPINGS'=>array(
                        array('name'=>'GROUP CATEGORY', 'groups'=>'group1,group2'),
                  )
    );
if (is_array($pArray)) {
        $api->listUpdateMember($pListId, $pEmail, $pArray, '', false);
}
于 2013-12-06T12:03:48.513 に答える
0

DrewM の MailChimp ラッパーと配列の省略構文 (PHP 5.4+)を使用した例をグループに追加します

$merge_vars = [
    'GROUPINGS' => array(
        0 => [
            'id' => 12345, // need grouping ID
            'name' => 'Interests', // or name instead
            'groups' => [ 'cars', 'trucks' ]
        ]
    ]
];

$mc = new MailChimp('API_KEY');
$mc->call(
        'lists/subscribe', [
            'id'                => '9876', // list ID
            'email'             => array[ 'email' => 'example@abc.com' ],
            'merge_vars'        => $merge_vars,
            'double_optin'      => true,
            'update_existing'   => true,
            'replace_interests' => false, // do you want to add or replace?
            'send_welcome'      => false,
        ]
    );

'name'または'id' をグループ化する必要がありますが、どちらも必要ありません。グループ ID を取得するには、 lists/interest-groupings を使用します。

于 2014-04-28T18:43:18.213 に答える