Ես ունեմ Google Places API բանալի և կարողացա հաջողությամբ հարցումներ կատարել Google Places API-ին իմ localhost-ից:
Ես Rails 3.1-ում եմ, և երբ ես իմ կայքը տեղափոխեցի Հերոկու, ես վատ խնդրանք եմ ստանում: Ես նկատի ունեմ http google place API-ն և ՈՉ javascript-ը, թեև ես կասկածում եմ, որ խնդիրը նույնն է լինելու (տես ստորև Google-ից ստացված հաղորդագրությունը)
Ահա թե ինչպես է կազմաձևվում իմ հաշիվը Google Console-ում.
Key for browser apps (with referers)
API key:
XXXXXX
Referers:
Any referer allowed
Activated on: Mar 5, 2013 9:41 PM
Activated by: [email protected] –
Ոչ մի խնդիր չկար, երբ ես տեղի հաղորդավարի վրա էի:
Այնուամենայնիվ, երբ ես սեղմում եմ հավելվածը և այնուհետև հարցում եմ անում Google Places-ին, սա այն է, ինչ ես ստանում եմ.
bad URI(is not URI?): https://maps.googleapis.com/maps/api/place/textsearch/json?query=blamp&key=XXXXX&sensor=false&types=restaurant|food|bar|cafe
ԽՄԲԱԳՐԵԼ. Ես մատնանշեցի սխալը «|» գծերի իմ օգտագործման պատճառով: վերջում առանձնացնել google-ի տեսակները։ սակայն սա աշխատում է և՛ երբ ես հարցումը պատճենում/կպցնում եմ իմ բրաուզերի վերնագրում, և երբ ես դա անում եմ լոկալհոստի մշակման ժամանակ: Ցանկացած գաղափար.
1) Ինչու է դա տեղի ունենում: 2) Ինչպե՞ս ուղղել այն:
Ահա, թե ինչպես եմ ես մուտք գործում API Ruby կոդով.
query = URI.escape(params[:search])
url_params = "json?query="+ query + "&key="+ GOOGLE_API_KEY + "&sensor="+ false.to_s + "&types="+GOOGLE_TYPES.join("|")
url_params << "&pagetoken="+params[:next_token] if params[:next_token]
url = URI.parse("https://maps.googleapis.com/maps/api/place/textsearch/"+url_params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url.request_uri)
result = http.request(request)
JSON.parse(result.body)
Նշում GOOGLE_TYPES-ի վերաբերյալ. սա գլոբալ հաստատուն է, որն իրականում զանգված է. Ես միանում եմ դրան «|»-ով ապա փոխանցեք այն URL-ին:
Խնդիրն այն է, որ երբ ես URI.encode-ում եմ տողը, հարցումը չի վերադարձնում որևէ արդյունք պարզ հարցումների համար, ինչպիսին է «steak house san francisco»-ն, մինչդեռ մինչ URI.encode-ն այդպես էր: Obvs հարցումը դառնում է անօգուտ, եթե այն չի կարող վերադարձնել պատշաճ արդյունքներ, ինչպես դա արեց localhost-ում:
URI.parse(URI.encode(xxxx))
05.04.2013