0

新規購読者を CRM から MailChimp に誘導するのは簡単でしたが、次に行う必要があるのは、メール アドレスのみに基づいて 1 つの顧客レコードを取得し、MailChimp API からその MailChimp ID を取得することです。

MailChimp API 3.0 のドキュメントには、GET 呼び出しにフィルターを使用する例が限られています。メンバー リスト全体を取得せずに結果をフィルター処理することは可能だと思いますが、これはスクリプトが現在行っていることですが、リスト全体ではなく、その 1 つの顧客レコードだけが必要です。それ以外の場合は、すべてのメンバーの JSON 文字列全体を受け取ります。この大量の文字列を配列にエンコードしてから、JSON 配列を繰り返し処理して、一致する電子メール アドレスを持つレコードを見つける必要がありますが、これは非常に非効率に思えます。 MailChimp API 3.0 ドキュメントで簡単に見つけられない何かが欠けているに違いありません。

私はPHPライブラリを使用していますが、問題ではありません.API呼び出しを構築する方法を知る必要があるだけです-適切なURL(?email_address=EMAIL_TO_FILTER試してみましたが機能しませんでした)とJSON配列構造。MailChimp API との接続に成功し、mailChimpApiRequest()次のようなメソッドを作成しました。

function mailChimpApiRequest($method='POST', $url, $postFields = null){

    $ch  = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    $headerArr=array(   'Authorization: '  . $this->apikey);

    if($method!='POST' && !empty($method)) {
      //Not needed: $headerArr[] = 'X-HTTP-Method-Override: ' . $method;
    }

    curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method );
    curl_setopt($ch, CURLOPT_HTTPHEADER,$headerArr );
    curl_setopt($ch, CURLOPT_POST, true);

    if ($postFields) {
        if ($method!=''){    $postFields['method']=$method;}

        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postFields));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    }

    $curl_response = curl_exec($ch);
    curl_close($ch);

    return $curl_response;
}

上記のこのメソッドに何$url$postFields配列を渡すかを誰かが理解するのを手伝ってくれますか?mailChimpApiRequest()

4

2 に答える 2