2015-01-30 7 views
1

До сих пор я смог создать новый объект электронной почты civi и заполнить его, но смутно не вижу в нем параметра, указывающего группу назначения почты.Добавление групп получателей в CiviCRM Mailing через REST .. как?

Для контекста я имею дело с Civi, использующим чистый REST api с удаленного сервера. У меня есть решение для получения настраиваемого шаблона на сервере; новая проблема заключается в настройке расписания и группы доставки и инициировании отправки. Я использую библиотеку python-civicrm из github в качестве посредника на клиенте.

Предполагаю, что отправка происходит в результате настройки расписания - то есть мне не нужен вызов API, чтобы сказать «отправить рассылку»? Устанавливает ли 'date date' == 'now' safe или я должен установить дату 'now + 1min' или подобное?

Таким образом, листья задают группу доставки. У нас уже есть группы, определенные в БД, и я хочу указать группу по имени (и предпочтительно иметь возможность заранее проверить, что имя группы является допустимым адресатом, возможно, выполнив поиск имени группы -> идентификатор).

Я думаю, что может существовать параметр Mailing create 'groups', который может включать ключи 'include' и 'exclude'; по крайней мере, вот что делает веб-форма. Однако это не упоминается в реализации REST api.

Может ли кто-нибудь предложить указатели?

+0

Пожалуйста, подумайте о поддержке проекта по обмену стеками CiviCRM, перейдя на http://area51.stackexchange.com/proposals/77367/civicrm и связавшись с вашим другим аккаунтом SE: http://discuss.area51.stackexchange.com/questions/18465/please-link-your-other-se-accounts – samuelsov

ответ

1

Чтобы подтвердить, что проблема в том, что (а) мне нужно использовать группы [включая] = массив (идентификаторы), как упомянуто samuelsov, но также (б) мне нужно было использовать форму запроса json = {...} через REST, потому что синтаксис параметров HTTP не поддерживает вложенные данные.

1

Я думаю, что вы найдете все, что вам нужно в следующей ссылке:

В противном случае, если он не работает, я предлагаю вам:

  • Помогите добавить это api в CiviCRM Core - вы можете помочь с этим на irC#civicrm (и взгляните на https://issues.civicrm.org/jira/browse/CRM-11023)
  • ИЛИ создайте расширение с помощью api, в котором вы нуждаетесь. Он будет автоматически доступен для REST. Если вы еще не создали расширение, я предлагаю вам перейти на страницу http://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Module+Extension. Это довольно просто, с установленным civix.

В таблице вы должны проверить в базе данных civicrm_mailing_group

+0

Спасибо, самуелсов, я не заметил, что это полезно, хотя я видел поток. К сожалению, моя первоначальная попытка установить параметр group/include не увенчалась успехом, поэтому я собираюсь с отладчиком на стороне Civi посмотреть, что происходит. – rivimey

+0

Проблема, которую я вижу, заключается в том, что структурные группы [include] = array (id) преобразуются в группы = include, когда параметры преобразуются в HTTP-запрос POST (в моем случае, с помощью модуля запросов Python).Таким образом, идентификатор группы никогда не достигает Civi. – rivimey

+0

Не уверен в этом, но, играя с api explorer на http://yourwebsite.org/civicrm/api/explorer, предлагаемый синтаксис использует json так, чтобы что-то вроде:/sites/all/modules/contrib/civicrm/extern/rest .php? entity = Mailing & action = create & json = {"name": "имя", "subject": "subject", "groups.include": [10,11]} & api_key = yoursitekey & key = yourkey – samuelsov