2

私のアプリのユーザー設定では、ユーザーはボックスをチェックすることで 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

このメソッドは us​​er.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 を取得するにはどうすればよいですか?

4

1 に答える 1

10

サブスクライバーの管理方法のヘルプ ページから、API v3 のサブスクライバー ID は、ユーザーの電子メール アドレスの小文字バージョンの MD5 ハッシュです。

だからあなたは使いたいと思うでしょうDigest::MD5.hexdigest(self.email.downcase)

于 2015-08-31T17:06:35.337 に答える