2013-07-18 1 views
1

Google 관리자 디렉토리 API를 쿼리하기 위해 google-api-client ruby ​​gem 버전 0.6.4를 사용하고 있습니다.Google 관리자 디렉토리 API를 쿼리 할 때 ruby ​​google-api-client에 잘못된 요청 오류가 발생했습니다.

여기에 루비 콘솔에서 내 세션 : 아마 여기에 뭔가를 분명 실종

require 'rubygems' 
require 'google/api_client' 

SERVICE_ACCOUNT_CLIENT_ID = "SOME_STRING.apps.googleusercontent.com" 
SERVICE_ACCOUNT_EMAIL = "[email protected]" 
SERVICE_ACCOUNT_PKCS12_FILE_PATH = "/path/to/privatekey.p12" 

key = Google::APIClient::KeyUtils.load_from_pkcs12(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'notasecret') 
asserter = Google::APIClient::JWTAsserter.new(SERVICE_ACCOUNT_EMAIL, "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly", key) 
client = Google::APIClient.new 
client.authorization = asserter.authorize 
dir_api = client.discovered_api('admin', 'directory_v1') 
resp = client.execute(:api_method => dir_api.chromeosdevices.list, :parameters => {'customerId'=>SERVICE_ACCOUNT_CLIENT_ID}) 

resp.body 
=> "{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"badRequest\",\n \"message\": \"Bad Request\"\n }\n ],\n \"code\": 400,\n \"message\": \"Bad Request\"\n }\n}\n" 

하지만 요청에없는 어떤 오류 응답에서 불분명하다. 올바른 방향으로 어떤 도움이나 조언을 부탁드립니다.

감사합니다.

답변

1

나는 내 도메인의 사용자를 나열하는 C# 프로그램에서 비슷한 응답을 받았습니다.

나는 여전히 해결되지하지만이 같은 요청을하려고하고 도메인에 대한 값을 생략 할 때 지금까지 내가 의 API를 탐색기 https://developers.google.com/apis-explorer/#p/admin/directory_v1/ 을 같은 오류 메시지를 얻을 수 있었다.

그건 내가 어떻게 든 내 C# 코드 및 시행 착오를 통해 내 요청에 도메인을 추가 할 필요가 있다고 믿게했다. 생각하다. C#에서이를 수행하는 방법을 찾았습니다.

하지만 내 제안은 API 탐색기에서 API 요청을 시도한 다음 도메인에 대한 값을 제출하지 않아도 동일한 오류 메시지가 표시 될 수 있다는 것입니다. 오류 메시지가 의미하는 바를 생각합니다.

+0

입니다. API 탐색기에 대한 링크는 매우 유용합니다. 친구는 또한 서비스 계정이 사용자 정보에 액세스 할 수 없다고 지적했습니다. (필자는 설명서에서 그 부분을 놓쳤습니다.) 유용한 정보를 찾으면이 스레드를 업데이트하고 몇 가지 다른 것들을 시도해 보겠습니다. –

0

동일한 문제가있었습니다.

https://gist.github.com/thomaswitt/7468182

단계는 다음과 같습니다 : P12 파일로

  1. 이동 구글 클라우드 콘솔 (https://cloud.google.com/console)
  2. 만들기 서비스 계정 나는 그것을 설정하는 방법에 대해 설명 예제 요점을 작성했습니다
  3. API에서 Admin SDK를 사용하도록 설정합니다.
  4. 이 프로젝트 섹션 '인증서'에
  5. 이동 내에 등록 된 응용 프로그램을 작성하고 키
  6. 이 앱 콘솔> 보안뿐만 아니라
  7. 이동을 JSON 파일을 다운로드 생성> 확장 프로젝트
  8. 만들기 > 3rdPartgy OAuth (https://admin.google.com/AdminHome?#OGX:ManageOauthClients)
  9. API 클라이언트를 추가하십시오. 클라이언트 이름은 JSON 파일의 client_id 값이며 API 범위는 https://www.googleapis.com/auth/admin.directory.user.readonly