2

CRML メディア リソースから :all (最初の :item) をフェッチしようとしています。Estately RETS リポジトリの使用。これが私のルビーのサンプルファイルです:

require 'rets'

client = Rets::Client.new({
  login_url: 'url',
  username: 'user',
  password: 'password',
  version: 'RETS/1.7.2' 
})

begin
    client.login
rescue => e
    puts 'Error: ' + e.message
    exit!
end

puts 'We connected! Lets get all the photos for a property...'


photos = client.find (:first), {
  search_type: 'Media',
  class: 'Media',
  query: '(MediaModificationTimestamp=2017-04-15+),(MediaType=Image)'
}


photo = open(photo = photos['MediaURL'])
require 'base64'
image = Base64.encode64(photo.read)


File.open('property-1.gif', 'wb') do|f|
  f.write(Base64.decode64(image))
end

puts photos.length.to_s + ' photos saved.'
client.logout

しかし、予想される26枚ではなく、1枚の画像しか取得できません。最初の画像が機能した後、これがすべてのリストのすべての画像を取得する最良の方法になるかどうかもわかりません。この問題に関する詳細はこちらhttps://github.com/estately/rets/issues/210

4

2 に答える 2

0

一度に複数のリスティングのすべての画像を取得するために、クエリ部分でリスティング ID をカンマで区切って指定することができます。

photos = client.find (:all), {
search_type: 'Media',
  class: 'Media',
  query: '(ResourceRecordKeyNumeric=117562969,117562970,117562971),(MediaType=Image)'
}
于 2017-12-13T08:36:44.870 に答える