2012-08-28 4 views
0

google-api-ruby-client을 사용하여 CurrentLocation을 Google Latitude로 업데이트하려고합니다.google-api-ruby-client를 사용하여 CurrentLocation의 Google 위치 찾기를 업데이트하려고하면 "잘못된 값 400"이 반환됩니다.

이미 액세스 토큰이 있으며 모바일 앱에서 가져 와서 Ruby on Rails의 서버에서 보낸 새로 고침 토큰입니다. 다음은 실행하려는 코드입니다.

client = Google::APIClient.new(:key => gltoken) 
    client.authorization.client_id = '<my client id>' 
    client.authorization.client_secret = '<my client secret>' 

    client.authorization.access_token = "<the access token i ve>" 
    client.authorization.refresh_token = "<refresh token i ve>" 
    client.authorization.scope ='https://www.googleapis.com/auth/latitude.all.best https://www.googleapis.com/auth/latitude.current.best' 

    client.host = "www.googleapis.com" 
    latitudeapi = client.discovered_api('latitude', 'v1') 

    result = client.execute(
     :api_method => 'latitude.currentLocation.insert', 
     :parameters => { 
     'kind' => 'latitude#location', 
     'latitude'=>37.420352, 
     'longitude'=>-122.083389, 
     'accuracy'=>130, 
     'altitude'=>35 
    } 
    ) 

    logger.debug("Response #{result.body}") 
    result.body 

나는 다음과 같은 결과를 얻고있다 :

{"message":"{\"error\":{\"errors\":[{\"domain\":\"global\",\"reason\":\"invalid\",\"message\":\"Invalid Value\"}],\"code\":400,\"message\":\"Invalid Value\"}}"} 

내가 통과 값이 무효 인 알아낼 수 없습니다입니다. 아래의 값과 동일한 값을 https://www.googleapis.com/latitude/v1/currentLocation?key=으로 업데이트하려고 시도했습니다.

헤더 :

Content-Type: application/json 
Authorization: Bearer <My access token> 
Host: googleapis.com 

바디 : 사전에

{ 
    "data": { 
    "kind":"latitude#location", 
    "latitude":37.420352, 
    "longitude":-122.083389, 
    "accuracy":130, 
    "altitude":35 
    } 
} 

감사합니다.

답변

0

보석 코드를 디버깅 한 후 대답을 알아 냈습니다. 다음은 전화를 거는 방법입니다. :body 대신 :parameters에 대한

result = client.execute(
      :api_method => 'latitude.currentLocation.insert', 
      :body => "{\"data\": {\"kind\":\"latitude#location\",\"latitude\":#{latitude},\"longitude\":#{longitude}}}", 
      :headers => {'Content-Type'=> 'application/json'} 
     ) 

Latitude API의 모습.