2016-11-18 4 views
0

아래 코드 예제는 비컨 목록을 반환합니다. Google API 콘솔에서 API 키를 생성 할 때 공개 IP 주소를 허용하고 api 키와 연관 시켰습니다. 코드에서 ExecuteAsync() 메서드를 호출하면 오류 코드 403 (금지됨)으로 예외가 계속 수신됩니다. 내가 잘못했거나 문제를 완화하는 방법은 무엇입니까?오류 403 (금지됨)으로 인해 Google .NET API가 작동하지 않습니다.

public async void TestApiKey() 
{ 
    var apikey = "739479874ABCDEFGH123456"; //it's not the real key I'm using 
    var beaconServices = new ProximitybeaconService(new Google.Apis.Services.BaseClientService.Initializer 
    { 
     ApplicationName = "My Project", 
     ApiKey = apikey 
    }); 

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

    // Display the results. 
    if (result.Beacons != null) 
    { 
     foreach (var api in result.Beacons) 
     { 
      Console.WriteLine(api.BeaconName + " - " + api.Status); 
     } 
    } 
} 
+0

비콘 서비스를 API 콘솔의 프로젝트에 추가 했습니까? – davidgyoung

+0

전체 오류 메시지 403을 게시하시기 바랍니다 금지 된 아마 Google은 당신에게 무엇을 반환했습니다. – DaImTo

답변

1

공개 API 키를 사용 중입니다. 공용 API 키는 공용 데이터에서만 작동합니다. 시청자와 로그인 한 사용자로부터 OAuth 액세스 토큰을 사용하여

beacons.list 인증하고, 소유자인가, 아니면 권한을 편집 할 수 있습니다.

는 다음의 OAuth 범위를 필요 :
는 개인 사용자 데이터에 액세스하는 액세스하려는 방법

https://www.googleapis.com/auth/userlocation.beacon.registry •. 인증을 받으려면 먼저 인증을 받아야합니다. Oauth2 인증으로 전환하십시오. public으로 설정하는 것은 아마도 공개 API 키의 범위를 내 지식으로 제공 할 수 없기 때문에 작동하지 않을 것입니다.

+0

@dalmto OAuth 액세스 토큰은 Google의 API 콘솔을 통해 생성 한 클라이언트 ID와 동일합니까? – Arash

+1

사용자가 응용 프로그램에 자신의 데이터에 대한 액세스 권한을 부여하면 클라이언트 ID와 클라이언트 비밀번호를 사용하여 인증 서버에서 액세스 토큰을 생성하지 않습니다. – DaImTo

+0

@dalmto 그러나이 코드는 사용자가 가지고 있지 않은 서버 중 하나에서 작동하도록되어 있습니다. 백엔드에 대한 액세스. 그때 내가해야 할 일은 무엇입니까? – Arash