【发布时间】:2017-09-12 22:35:07
【问题描述】:
在这个挑战之前,我以为我越来越接近于围绕 Rails 进行思考了。我有一个初始化程序agilecrm.rb - 内容如下所示。我正在使用AgileCRM Ruby code 尝试将我的应用程序与 AgileCRM 系统连接起来。使用下面的代码时,底部有测试Create Contact 数组,它成功地在我的 AgileCRM 帐户中创建了一个联系人,所以我知道至少这部分有效。我需要做的是每次创建一个新的 Devise 用户时创建一个新的 AgileCRM 用户。我有一种感觉,我看错了,可能需要一个控制器来解决这个问题,但这对我来说并不完全陌生,但我仍然不知道什么时候该走。谢谢。
config/initializers/agilecrm.rb
require 'net/http'
require 'uri'
require 'json'
class AgileCRM
class << self
def api_key=(key)
@@api_key = key
end
def domain=(d)
@@domain = d
end
def email=(email)
@@email = email
end
def api_key
@@api_key
end
def domain
@@domain
end
def email
@@email
end
def request(method, subject, data = {})
path = "/dev/api/#{subject}"
case method
when :get
request = Net::HTTP::Get.new(path)
when :post
request = Net::HTTP::Post.new(path)
request.body = data.to_json
when :put
request = Net::HTTP::Put.new(path)
request.body = data.to_json
when :delete
request = Net::HTTP::Delete.new(path)
else
raise "Unknown method: #{method}"
end
uri = URI.parse("https://#{domain}.agilecrm.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request['Content-Type'] = 'application/json'
request['Accept'] = 'application/json'
request.basic_auth AgileCRM.email, AgileCRM.api_key
response = http.request(request)
response.body
end
end
end
AgileCRM.api_key = '*******'
AgileCRM.domain = '*******'
AgileCRM.email = '*******'
# ======================Create Contact====================================
contact_data = '{
"star_value": "4",
"lead_score": "92",
"tags": [
"Lead",
"Likely Buyer"
],
"properties": [
{
"type": "SYSTEM",
"name": "first_name",
"value": "John"
}
]
}'
parsed_contact_data = JSON.parse(contact_data)
print(AgileCRM.request :post, 'contacts', parsed_contact_data)
【问题讨论】:
标签: ruby-on-rails ruby devise ruby-on-rails-5