3

新しいGeolocationAPIを使用しようとしています。APIキーも取得しました。しかし、どういうわけか、出力は「見つかりません」として与えられます。誰かがエラーの場所を教えてもらえますか?

require 'net/http'
require 'uri'
require 'json'
require 'httparty'


lac=50039
mnc=86
cid=15471
mcc=404
rssi=-69


    cell_towers = [{:cellId => cid,
  :locationAreaCode => lac,
  :mobileCountryCode => mcc,
  :mobileNetworkCode => mnc,
  :signalStrength => rssi }] 

    param = {:cellTowers => cell_towers}
   puts param.to_json
   #puts "https://www.googleapis.com/maps/api/geolocation/v1/geolocate?key=#{api_key}"

      response = HTTParty.post("https://www.googleapis.com/maps/api/geolocation/v1/geolocate?key=my_key",
      :body => param.to_json, 
      :header => {"Content-Type" => "application/json"})
      puts response
      temp= response.body
      puts temp

上記のコードの出力は次のとおりです。

{"cellTowers":[{"cellId":15471、 "locationAreaCode":50039、 "mobileCountryCode":404、 "mobileNetworkCode":86、 "signalStrength":-69}]}見つかりません見つかりません

Google Maps Geolocation APIのドキュメントへのリンク: https ://developers.google.com/maps/documentation/business/geolocation/

jsonオブジェクトを手動で作成し、「curl」コマンドを使用してコマンドプロンプトで実行すると、出力が正しく出力されます。

4

2 に答える 2

2

だから私はこれとまったく同じ問題に苦労していましたが、.Netの単純なhttp投稿を使用しています...

URLに関するAPIドキュメントが間違っているようです。

代わりに:https ://www.googleapis.com/maps/api/geolocation/v1/geolocate?key = API_key

実際には:https ://www.googleapis.com/geolocation/v1/geolocate?key = API_key

お役に立てれば!

于 2012-11-09T23:24:52.403 に答える
1

あなたの助けを借りて、私は問題を解決することができました。ありがとう!コードを共有すると思いました。役立つかもしれません。

cell_towers = [{:cellId => cid,
                :locationAreaCode => lac,
                :mobileCountryCode => mcc,
                :mobileNetworkCode => mnc,
                :signalStrength => rssi }] 

param = {:cellTowers => cell_towers}
uri = URI.parse('https://www.googleapis.com/geolocation/v1/geolocate?key=your_key')

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(uri.request_uri)
request.body=param.to_json
request["Content-Type"]="application/json"
response = http.request(request)
result=response.body
res=JSON.parse(result)
lat=res["location"]["lat"]
long=res["location"]["lng"]
于 2012-11-23T09:07:02.063 に答える