Получение подписчиков с помощью вызова API для Campaign Monitor с помощью Create Send & Python - PullRequest
0 голосов
/ 23 мая 2018

Aloha Friends,

Извиняюсь за нубский вопрос, я все еще нахожусь в младенчестве с Python & Programming и пытаюсь найти лучший способ сделать очень очень ручную задачу.

Я хотел бы получить всех подписчиков из Campaign Monitor, используя его API

Я прочитал и перечитал документацию по API и пришел к выводу, что мне нужно использовать этот фрагмент кода:

 from __future__ import absolute_import

import json

from createsend.createsend import CreateSendBase, BadRequest
from createsend.utils import json_to_py, validate_consent_to_track


class Subscriber(CreateSendBase):
    """Represents a subscriber and associated functionality."""

    def __init__(self, auth=None, list_id=None, email_address=None):
        self.list_id = list_id
        self.email_address = email_address
        super(Subscriber, self).__init__(auth)

    def get(self, list_id=None, email_address=None, include_tracking_preference=False):
        """Gets a subscriber by list ID and email address."""
        params = {
            "email": email_address or self.email_address,
            "includetrackingpreference": include_tracking_preference,
        }
        response = self._get("/subscribers/%s.json" %
                             (list_id or self.list_id), params=params)
        return json_to_py(response)

Я немного растерялся с кодом, я не уверен, если мне нужно добавить вышеупомянутый класс create send с помощью ключа API, и это просто даст мне полный Jsonсписок моих подписчиков ..?

Сейчас я изучаю базовый курс API по Udemy, поэтому знаю, как использовать почтальон и выполнять базовые вызовы API с помощью Flask, но я не видел и не использовал Createsend.

Github для кода здесь

Документация здесь

Для тех, кто читает это, я действительно ценю ваше время, (будь выотвечать или нет)!

С уважением, Датановице.

1 Ответ

0 голосов
/ 14 ноября 2018

привет от другого новичка.Наткнулся на ваше сообщение вчера, когда я пытался добавить подписчика в список, используя их API.Я немного боролся и мог решить эту проблему только с помощью старшего разработчика.так что не мучайсяЯ знаю, что это может быть немного поздно, но надеюсь, что это все еще помогает.если вы все же решили это, дайте мне знать :-)

Прежде всего, если вы хотите получить всех подписчиков в списке, вам нужно посмотреть на эту часть https://www.campaignmonitor.com/api/lists/ Вышевероятно, получит один подписчик за раз.Я рекомендую использовать что-то вроде Postman, чтобы сделать несколько тестовых вызовов GET для API и посмотреть, какой из них дает вам нужные вам результаты.например, это то, что я получаю, когда совершаю GET-вызов всем активным подписчикам списка:

{
    "Results": [
        {
            "EmailAddress": "marco@polo.bro",
            "Name": "Marco",
            "Date": "2018-11-13 10:36:00",
            "State": "Active",
            "CustomFields": [],
            "ReadsEmailWith": ""
        },
        {
            "EmailAddress": "marco@polo.broke",
            "Name": "Marco",
            "Date": "2018-11-13 10:38:00",
            "State": "Active",
            "CustomFields": [],
            "ReadsEmailWith": ""
        },
        {
            "EmailAddress": "marco@polo.mkd",
            "Name": "Marco",
            "Date": "2018-11-13 17:22:00",
            "State": "Active",
            "CustomFields": [],
            "ReadsEmailWith": ""
        },
        {
            "EmailAddress": "marco@polo.ro",
            "Name": "Marco",
            "Date": "2018-11-13 09:52:00",
            "State": "Active",
            "CustomFields": [],
            "ReadsEmailWith": ""
        },
        {
            "EmailAddress": "subscriber1@example.com",
            "Name": "New Subscriber",
            "Date": "2018-11-13 16:55:00",
            "State": "Active",
            "CustomFields": [],
            "ReadsEmailWith": ""
        },
        {
            "EmailAddress": "subscriber2@example.com",
            "Name": "New Subscriber 2",
            "Date": "2018-11-13 16:59:00",
            "State": "Active",
            "CustomFields": [],
            "ReadsEmailWith": ""
        }
    ],
    "ResultsOrderedBy": "email",
    "OrderDirection": "asc",
    "PageNumber": 1,
    "PageSize": 1000,
    "RecordsOnThisPage": 6,
    "TotalNumberOfRecords": 6,
    "NumberOfPages": 1
}

В противном случае попробуйте следующее (вам следует создать экземпляр класса Subscriber):

from createsend import * 

list_id = 'your-list-id'
subscriber = Subscriber(
    {'api_key': 'your-api-key'},
    list_id,
    email_address=None
)

user_email = 'user@example.com'
subscriber.get(list_id, user_email, include_tracking_preference=True|False)

Я думаю, вы также можете просто сделать subscriber.get(), чтобы получить детали без каких-либо аргументов.

Надеюсь, это поможет.

Удачного кодирования :-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...