无法从restforce使用API _VERSION 48订阅salesforce

问题描述 投票:0回答:1

我目前正在订阅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使用的默认版本)成功订阅这两个主题,但是我不......>

ruby-on-rails-5 salesforce restforce
1个回答
0
投票

答案:我们需要使用replay才能使用更高版本。没有重播就无法订阅。

 EM.run do
   @client.subscription "/topic/topicName", replay: -2  do |message|
     puts message["sobject"]
  end
 end
© www.soinside.com 2019 - 2024. All rights reserved.