6

mailchimp にはいくつかのリストがあり、その中には何千人ものユーザーがいるものもあり、代表者の 1 人が、リストのいくつかを統合し、「グループ」(AKA Interests) を使用して特定のオーディエンスをターゲットにすることを勧めました。

40 を超える個別の興味を含む 1 つの「興味カテゴリ」があり、API を介してユーザーをサブスクライブし、適切な「グループ/興味」に追加できるように、名前と一緒に ID を取得したいと考えています。

私は彼らの名前と一緒に興味を持っていることにとても近づいていますが、ドキュメントにはエントリの量を増やしたり、次の10に行くことについては何も書かれていません. http://kb.mailchimp.com/api/resources/lists/interest -カテゴリ/興味/リスト-興味-コレクション

これがまったく役立つ場合、これは私が興味を引き出すために使用したコードです。(Python で書かれており、'requests' ライブラリを使用しています)

import requests
print "Name\tID"
r = requests.auth.HTTPBasicAuth('x', '00000000000000000000000000000-us4')
interest_categories_raw = requests.get('http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/', auth=r)
interest_categories = json.loads(interest_categories_raw.content)
for category in interest_categories['categories']:
    url = 'http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/{0}/interests'.format(str(category['id']))
    interests = json.loads(requests.get(url, auth=r).content)
    for interest in interests['interests']:
        print "{0}\t{1}".format(interest['name'],interest['id'])

残りの「興味/グループ」、名前と ID の両方を取得して、それらを正しく割り当てる方法はありますか? (テスト ユーザーをアップロードし、関心データにパッチを適用し、Web サイトをチェックして追加されたグループを確認する以外の方法)

4

3 に答える 3

10

TooMuchPete のコメントで、彼は、入門ドキュメントにページネーションについて言及しいると述べました。Mailchimp の API は、ページネーションに「count」と「offset」を使用します。URL の末尾に追加されるパラメータです。Count は 1 ページあたりの項目数で、Offset はページから開始する距離です (offset=0 は最初のエントリから開始します)。だからURL

https://us4.api.mailchimp.com/3.0/lists/XXXXXXXXXX/members/?count=5&offset=10

11番目のアイテム(「3ページ目」、アイテム11〜16)から始まる5つのアイテムを取得します

TooMuchPete のコメントの前に、私は自分の質問に次のように答えました。

彼らの名前と一致するインタレスト ID に関して、私が探していたものを見つけました。カテゴリごとに ID を検索するのではなく、ユーザー オブジェクトには既にすべての興味 ID が 1 つの配列に含まれているため、ID を使用してそれらの名前をさかのぼって検索しました。将来同じ問題が発生する可能性がある人のために、これは ID で名前を見つけるために私が書いたコード スニペットです。

import requests
print "ID\tName"
r = requests.auth.HTTPBasicAuth('x', '00000000000000000000000000000000-us4')
interest_categories_raw = requests.get('http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/', auth=r)
interest_categories = json.loads(interest_categories_raw.content)

# List of all the interest IDs. Can be found from any user
# https://us4.api.mailchimp.com/3.0/lists/0000000000/members/000000000000000000000000
interest_ids = ["00000000000", "0000000000"]

for i_id in interest_ids:
    for category in interest_categories['categories']:
        url = 'http://us4.api.mailchimp.com/3.0/lists/0000000000/interest-categories/{0}/interests/{1}'.format(str(category['id']), str(i_id))
        raw_response = requests.get(url, auth=r)
        if raw_response.status_code != 404:
            interest = json.loads(raw_response.content)
            print interest['id'] + "\t" + interest['name']

このコードは、すべての名前を検索し、それらをリストのすべての ID と照合します。名前とIDを一致させるより良い方法を他の人が見つけた場合は、それをこの回答に追加してください。

于 2015-06-05T20:16:38.727 に答える
2

パラメータを使用する必要がありますが、ページ分割するには、オフセットはではなく で/?count=&offset=インクリメントする必要があります。オフセットはページではないためです。+1+count

だから?count=50&offset=50あなたを与える51-100(2ページ目)

于 2015-08-14T09:32:00.033 に答える
2

インタレスト カテゴリごとに 10 個のインタレストしかロードされないという同様の問題がありましたが、ドキュメント(ページネーション、API バージョン 3.0 の下) に埋もれているのは、デフォルトで「カウント」が 10 であることです。ループ メカニズムを使用してすべてのレコードをプルする必要なく、番号とすべての関心が返されました。

https://usX.api.mailchimp.com/3.0/campaigns?offset=0& count=37

于 2016-12-14T22:27:50.137 に答える