2017-01-04 23 views
1

PHPラッパーを使用してMailchimp API v3をテスト駆動しています。それは私にとって大きな作業しかし、ときに私は(スクリーンショットを添付して)エラーを取得して「セグメントの作成」のPOSTを使用して要求を作成しています:PHPラッパーを使用してAPI v3を作成するときの問題

リクエストコードは(連想配列による)である -

$api_key = "xxxxxxxxxxxxxxxx-us11"; 
$list_id = "1xx2xx3xx4xx"; 
$MailChimp = new MailChimp($api_key); 
$result = $MailChimp->post('lists/' . $list_id . '/segments', array('name' => 'Testing Data', 
    'options' => array('match' => 'all', 
     'conditions' => array('field' => 'type', 'op' => 'is', 'value' => 'Testing')) 
     )); 

このリクエスト次のエラーを返すコール -

アレイ(サイズ= 2) 'フィールド' =>文字列 'options.conditions'(長さ= 18) 'メッセージ' =>列 'スキーマ配列を記載する、オブジェクトではなく、見つかりました' (長さ= 44)

enter image description here

Iはまた、(連想配列を介して)要求を作成しようとします -

方法1:

$api_key = "xxxxxxxxxxxxxxxx-us11"; 
$list_id = "1xx2xx3xx4xx"; 
$MailChimp = new MailChimp($api_key); 
$result = $MailChimp->post('lists/' . $list_id . '/segments', array('name' => 'Testing Data', 
    'options' => array('match' => 'all', 
     'conditions' => array(array('field' => 'type', 'op' => 'is', 'value' => 'Testing'))) 
     )); 

を方法2:

$api_key = "xxxxxxxxxxxxxxxx-us11"; 
$list_id = "1xx2xx3xx4xx"; 
$MailChimp = new MailChimp($api_key); 
$result = $MailChimp->post('lists/' . $list_id . '/segments', array('name' => 'Testing Data 4', 
    'options' => array('match' => 'all', 
     'conditions' => array(array('field' => 'type'), array('op' => 'is'), array('value' => 'Testing'))) 
     )); 

両方の方法があろうmailchimpアカウントにセグメントを作成しますが、条件はありません。スクリーンショットを参照してください -

enter image description here

この問題を上書きする方法は?

+0

あなたはすなわち、このように、あなたのSegemnetタイプに基づいて、あなたの_method 1_で最後の配列を命名しようとするかもしれませんarray( "EmailAddress" =>配列( "op" => "foo"、...)) '、ドキュメントをチェックアウトする - > https://developer.mailchimp.com/documentation/mailchimp/reference/lists/segments /。 – Andy

+0

@Andy:ありがとうございますが、それは私の問題を解決していません。 –

+0

申し訳ありません。期待される結果を達成するために仕事をしてみてください。配列に値を入れてみましょう。次に別の配列やオブジェクト、あなたの心の中にあるすべての組み合わせを読み込み、 'conditions'-Arrayで内容を取得しようとします。 – Andy

答えて

0

condition_type paramがありません。エンドポイントのドキュメントでMailChimpが提供するリストから選択する必要があります。 たとえば、MailChimpリストのフィールド "type"がテキストフィールドの場合は、'condition_type': 'TextMerge'を使用する必要があります。この場合、条件は次の形式をしておく必要がありますTextMergeのみEMAILフィールド上で動作しますので、MailChimpは、このエンドポイントのバグを持っているかもしれません

[ 
    { 
     'condition_type': 'TextMerge', 
     'field': 'type', 
     'op': 'is', 
     'value': 'Testing' 
    } 
] 

。私も最近、この問題につまずいている: `「条件」=>:

Mailchimp api v3 - can't create segment based on a TEXT merge field

https://github.com/drewm/mailchimp-api/issues/160

関連する問題