Получить member_id с помощью MailChimp 3.0 и Gibbon 2.x

В пользовательских настройках моего приложения пользователь может подписаться или отказаться от подписки на список MailChimp, установив флажок. У меня возникли проблемы с получением пользователя MailChimp member_id.

Я создал файл .env с:

MAILCHIMP_API_KEY = "my_api_key"
MAILCHIMP_LIST_ID = "my_list_id"

Я создал инициализатор под названием gibbon.rb с:

Gibbon::Request.api_key = ENV["MAILCHIMP_API_KEY"]
Gibbon::Request.timeout = 15

Я использую этот метод в файле user.rb

def mailchimp_news
  @mailchimp_list_id = ENV["MAILCHIMP_LIST_ID"]
  @gibbon = Gibbon::Request.new
  if self.news_email == true
    @gibbon.lists(@mailchimp_list_id).members.update(body: {
    email_address: self.email,
    status: "subscribed",
    merge_fields: {FNAME: self.name,
                   LNAME: ""}
    })
  elsif self.news_email == false
    @gibbon.lists(@mailchimp_list_id).members(member_id).update(body: { status: "unsubscribed" })
end

конец

И позвонить с проверкой после

after_save :mailchimp_news

Я получаю эту ошибку: undefined local variable or method `member_id'. Как мне получить member_id?


person Phil Mok    schedule 30.08.2015    source источник
comment
У вас есть ошибка в вашем коде Ruby, и ошибка возникает перед вызовом Mailchimp API. Вы имеете в виду переменную или метод с именем member_id, который не определен. Первый шаг - исправить эту ошибку.   -  person balexand    schedule 31.08.2015


Ответы (1)


На странице справки Как управлять подписчиками в API v3 ID подписчика - это MD5-хэш строчной версии электронного адреса пользователя.

Итак, вы захотите использовать Digest::MD5.hexdigest(self.email.downcase).

person TooMuchPete    schedule 31.08.2015