我目前正在订阅2个主题,一个主题为客户,另一个主题为联系人。我可以使用api_version 26(restforce使用的默认版本)成功订阅这两个主题,但是我没有使用此api_version进行删除操作的事件。使用的宝石:
gem 'cookiejar', git: 'https://github.com/MissionCapital/cookiejar.git'
gem 'faye', '0.8.9'
gem 'restforce', '~> 4.2.2'
代码:
@client = Restforce.new(username: ENV['SF_USERNAME'],
password: ENV['SF_PASSWORD'],
security_token: ENV['SF_SECURITY_TOKEN'],
client_id: ENV['SF_CLIENT_ID'],
client_secret: ENV['SF_SECRET_ID'])
PushTopic
@client.create!('PushTopic',
ApiVersion: '48.0',
Name: ENV['CONTACT_PUSH_TOPIC_NAME'],
Description: 'all contact records',
NotifyForOperations: 'All',
NotifyForFields: 'All',
Query: 'select Id, FirstName, LastName, Title, Email, Phone, MobilePhone, OtherPhone, AccountId, OwnerId, IsDeleted from Contact')
这将导致客户端的版本具有Salesforce的26.0
。>>
现在,更改为salesforce api_verison 48.0
@client = Restforce.new(username: ENV['SF_USERNAME'], password: ENV['SF_PASSWORD'], security_token: ENV['SF_SECURITY_TOKEN'], client_id: ENV['SF_CLIENT_ID'], client_secret: ENV['SF_SECRET_ID'], api_version: '48.0')
Pushtopic
@client.create!('PushTopic', ApiVersion: '48.0', Name: ENV['CONTACT_PUSH_TOPIC_NAME'], Description: 'all contact records', NotifyForOperationCreate: 'true', NotifyForOperationUpdate: 'true', NotifyForOperationDelete: 'true', NotifyForOperationUndelete: 'true', NotifyForFields: 'All', Query: 'select Id, FirstName, LastName, Title, Email, Phone, MobilePhone, AccountId, OwnerId, IsDeleted from Contact')
对于此客户端,它不接收任何事件。不适用于任何操作(创建,更新或删除)。
问题已提交至Github。链接:https://github.com/restforce/restforce/issues/537
我目前正在订阅2个主题,一个主题为客户,另一个主题为联系人。我可以使用api_version 26(restforce使用的默认版本)成功订阅这两个主题,但是我不......>
答案:我们需要使用replay
才能使用更高版本。没有重播就无法订阅。
EM.run do
@client.subscription "/topic/topicName", replay: -2 do |message|
puts message["sobject"]
end
end