Gibbon/Mailchimp API 请求在兴趣分组内创建兴趣

Posted

技术标签:

【中文标题】Gibbon/Mailchimp API 请求在兴趣分组内创建兴趣【英文标题】:Gibbon/Mailchimp API request to create interests inside interest-groupings 【发布时间】:2016-04-17 16:50:43 【问题描述】:

我正在使用Gibbon,Mailchimp 版本 2.2.1,我希望能够在兴趣组中创建兴趣。例如,我有订阅课程的用户。我的兴趣组是“课程”,该兴趣组内部的兴趣是“Foo课程”。

我希望能够添加在我网站的 CMS 中添加新类的功能,这将在 after_create 上发出 API 请求。

class Lesson < ActiveRecord::Base
  after_create :create_class_on_mailchimp

  def create_class_on_mailchimp
    require 'mailchimp_service'
    mailchimp = MailchimpService.new(self)
    response = mailchimp.create_class
    self.interest_id = response.id
    self.save
  end
end


class MailchimpService
  def initialize(lesson)
    @lesson = lesson
    @list_id = ENV['MAILCHIMP_LIST_ID']
  end

  def create_class
    GB.lists(@list_id).interest_categories(ENV['MAILCHIMP_CLASSES_CATEGORY_ID']).interests.create(
      body: 
        name: 'foobar'
      
    )
  end
end

我不断收到此错误:

Gibbon::MailChimpError:the server responded with status 404 @title="Resource Not Found",
@detail="The requested resource could not be found.",
@body=  
  "type"  =>"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
  "title"  =>"Resource Not Found",
  "status"  =>404,
  "detail"  =>"The requested resource could not be found.",
  "instance"  =>""
,
@raw_body="  
  \"type\":  \"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/\",
  \"title\":\"Resource Not Found\",
  \"status\":404,
  \"detail\":\"The requested resource could not be found.\",
  \"instance\":\"\"
",
@status_code=404

这告诉我我没有使用正确的资源名称?在 Gibbon 的有限文档中似乎没有任何此类请求的文档,Mailchimp 似乎也没有考虑过。 Here 是 Mailchimp 文档的链接,该链接涵盖了兴趣分组内的兴趣请求,但是,似乎没有创建选项...只需阅读、编辑和删除。这对我来说似乎很愚蠢,因为我可以想象人们会想从 Mailchimp 仪表板以外的其他地方创建兴趣。

我已尝试使用nametitleinterest_name 作为资源名称,但没有任何效果。我也尝试过使用 REST API 调用,但我收到了相同的响应。

我做错了什么,或者这真的是 Mailchimp 不提供的吗?如果是这样,那将是一个巨大的麻烦,因为我将创建许多我希望人们能够订阅的类,并且必须手动完成这一切将是一个主要痛苦.

【问题讨论】:

【参考方案1】:

我很确定 POST 可以产生兴趣,尽管文档中似乎确实缺少它。可能发生的情况是您的列表 ID 或兴趣类别 ID 不正确。您可能想尝试使用 API Playground 来追踪这两个实体的确切 ID。

【讨论】:

感谢您的反馈。我直接在终端上玩了很多,以确保GB.lists(@list_id).interest_categories(ENV['MAILCHIMP_CLASSES_CATEGORY_ID']).interests 返回一个兴趣列表,据我所知,这部分工作正常。几个小时后,我将绝对确定这仍然会返回有效响应。 你是 100% 正确的。出于某种原因,我的 env 变量 MAILCHIMP_CLASSES_CATEGORY_ID 在我正在测试请求的控制台选项卡中未被识别。即使在多次重置控制台后,env 变量也没有显示,但会显示在单独的选项卡中在我的终端中......奇怪,我不知道为什么我必须关闭选项卡才能正确重新初始化所有内容,但是一旦我这样做了,请求就起作用了。 这很奇怪,但我很高兴你把它解决了!

以上是关于Gibbon/Mailchimp API 请求在兴趣分组内创建兴趣的主要内容,如果未能解决你的问题,请参考以下文章

记一次内部系统渗透测试:小漏洞组合拳

API 请求 | OkHttp |通过 okhttp 请求两个对象的 api 请求

同步 API 请求到异步 API 请求 Swift 2.2

如何循环请求承诺 API 请求调用?

PayPal REST API 创建协议:传入 JSON 请求未映射到 API 请求

成功登录 API 请求后,Angular 会为每个 API 调用触发额外的 OPTION 请求