2016-11-20 4 views
0

내 Google Proximity API 프로젝트에 대한 서비스 계정을 만들고 응용 프로그램에 사용하기 위해 키 파일을 다운로드했습니다. 아래 코드의 맨 마지막 줄이 실행될 때, 나는 다음과 같은 예외가 나타납니다Google 비콘 플랫폼에서 비콘 목록을 가져올 때 금지 된 오류 메시지 (403) 수신

Google.GoogleApiException 사용자 코드에 의해 처리되지 않은했다
HRESULT = -2146233088 메시지 = Google.Apis.Requests.RequestError 무단으로. [403] 오류 [. 메시지 [무단] 위치 [-] 이유 [금지] 도메인 [세계]]

그리고 여기에는 서버 시스템 (백엔드)에서 실행하도록되어 코드입니다 :

X509Certificate2 certificate = new X509Certificate2(@"key.p12", 
       "notasecret", X509KeyStorageFlags.Exportable); 

      var credential = new ServiceAccountCredential(
       new ServiceAccountCredential.Initializer("[email protected]") 
       { 
        Scopes = new[] { "https://www.googleapis.com/auth/userlocation.beacon.registry" }, 
       }.FromCertificate(certificate)); 

      var beacon = new Google.Apis.Proximitybeacon.v1beta1.Data.Beacon(); 

      var beaconServices = new ProximitybeaconService(new BaseClientService.Initializer 
      { 
       ApplicationName = "My SampleProject", 
       HttpClientInitializer = credential 
      }); 

      var result = await beaconServices.Beacons.List().ExecuteAsync(); 

나는 몇 시간을 보냈지만 전혀 결론을 내릴 수 없었습니다. 이 문맥에서 나는 무엇을 놓치고 어떻게 문제를 해결할 수 있습니까?

+0

서비스 계정을 사전 승인해야합니다. 해당 사용자의 데이터에 다른 사용자가 액세스 할 수 있는지 여부를 잘 모르겠지만 서비스 계정 이메일 주소를 사용하여 공유 할 수 있다면 – DaImTo

답변

0

서비스 계정을 만들 때 필요한 권한을 부여하여 문제를 해결했습니다. 그것은 내가 불행하게도 놓친 단계였다. 그런 다음 동일한 .p12 파일을 사용하여 API에 대한 응용 프로그램을 인증했습니다.

+1

기꺼이 도와 드리겠습니다. 다른 사람들이 당신의 문제를 어떻게 정확하게 해결했는지 설명해 주시겠습니까? 이 API에 대한 서비스 계정을 어떻게 승인합니까? – DaImTo