Pertanyaan Respons API Geocoding tidak valid JSON. dan request.location = nil


if Rails.env.development?
      @current_location_geo = Geocoder.search(request.remote_ip).first
    else
      @current_location_geo = request.location
    end
    if !@current_location_geo.nil? && @current_location_geo.ip == "127.0.0.1"
      @departure_currency_code= "AUD"
      @departure_currency_name= ["Australian Dollar(AUD $)","AUD"]
    else
      @country = Country.new(request.location.data["country_code"].to_s)
      @country_code = @country.currency.code
    end
end

saya mendapatkan request.lokasi nihil. saya mencoba menambahkan waktu habis dalam konfigurasi tetapi tidak membantu saya.

kesalahan masuk mode produksi sebagai "Respons Geocoding API tidak valid JSON." 

dan ketika saya menelusuri itu saya mendapat request.location sebagai nol.

versi geocoder saya adalah (1.2.6).


6
2017-12-12 05:24


asal


Jawaban:


Sepertinya Anda tidak memiliki poin tindakan yang tersedia untuk mengakses layanan geo yang dipilih. Bagi saya itu terlalu sedikit permintaan yang tersedia Google layanan geo. Saya hanya memperbanyaknya dengan mendaftar Google aplikasi serivces, dan memasukkan ke dalam konfigurasi Google API key. Untuk layanan, yang menentukan Geo posisi oleh IP, itu direkomendasikan :telize karena tidak memiliki kuota permintaan saat ini oleh penjawab sebelumnya. Saya juga menyarankan Anda untuk melihat ke sisi penyimpanan IP lokal untuk memindahkannya ke posisi Geo, seperti :geoip2, dan :maxmind_local. Jadi geoconfig Anda akan seperti berikut:

config / initalizers / geocoder.rb:

Geocoder.configure(                             
  lookup: :google,                                                 
  ip_lookup: :geoip2,                                                              
  maxmind_local: {
    package: :city                
  },                                                       
  geoip2: {
    file: File.join('vendor/share', 'GeoLite2-City.mmdb')
  },             
  google: {                        
    timeout: 20,
    use_https: true,                                                               
    api_key: ENV['GOOGLE_API_KEY']                                                 
  },       
}

CATATAN: Tampaknya :telize layanan saat ini tidak berfungsi dengan baik, kembali: Geocoding API's response was not valid JSON.

Silakan merujuk ke semua opsi untuk mengonfigurasi layanan goe README geocoder.


1
2017-11-25 13:01



config / initalizers / geocoder.rb

Geocoder.configure(
 timeout: 10,
 ip_lookup: :telize   
)

Sumber: https://github.com/alexreisner/geocoder/issues/777


0
2018-01-02 18:50