首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用basecamp API返回与公司关联的所有电子邮件地址的列表

如何使用basecamp API返回与公司关联的所有电子邮件地址的列表
EN

Stack Overflow用户
提问于 2012-08-14 02:19:54
回答 1查看 105关注 0票数 0

我已经设法让它几乎正常工作,但我想我得到了一些严重的困惑。所有的示例似乎都涵盖了根据id查找单个记录。

我认为我可以传递一个参数来过滤单个属性

https://xxxx.basecamphq.com/companies.xml?name=xxxx

Basecamp::Company.find(:all,:params => { :name => xxx })

代码语言:javascript
复制
require 'rubygems'
require 'English'
require 'trollop'
require 'basecamp'
require 'ap'

opts = Trollop::options do
    version "1.0"
    banner <<-EOS
    #{File.basename($0)}
    Description: Dump the users from a company stored in basecampe via the api.

    Usage:
           #{File.basename($0)} [options]
    where [options] are:
    EOS
    opt :company , "Company to export" , :default => "XXXX"
    opt :token_file, "File to read token from " , :default => "~/.basecamp/token"
end


basecamp_token = IO.read(File.expand_path(opts[:token_file])).chomp

Basecamp.establish_connection!('xxxx.basecamphq.com', basecamp_token , 'X' , true)

#Work out company id from company name
company = Basecamp::Company.find(:all).select { |c| c.attributes["name"] == opts[:company] }
company_id = company[0].instance_variable_get("@attributes")["id"]

people = Basecamp::Person.find(:all, :params => {:company_id => company_id })
#ap people

#todo work out how to iterate over all people
puts people[0].instance_variable_get("@attributes")["email_address"]
EN

回答 1

Stack Overflow用户

发布于 2012-08-15 18:13:48

事实证明:first将返回我想要的单个公司,但是我没有找到该方法的逻辑,因为我不想要第一个条目,我想要任何匹配我的params的条目。

代码语言:javascript
复制
#Work out company id from company name
company = Basecamp::Company.find(:first, :params => {:name => opts[:company] })
people = Basecamp::Person.find(:all, :params => {:company_id => company.id })

people.each do | person |
    puts person.email_address
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11940039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档