0

문제 설명403 금지 오류

내가 분석의 데이터를 가져 오기 위해 구글 분석 관리 API 2.4을 사용하고 있습니다. 는 어디에서 오류를

com.google.gdata.util.ServiceForbiddenException: Forbidden 
<?xml version="1.0" encoding="UTF-8"?><errors xmlns="http://schemas.google.com/g/2005"><error><domain>GData</domain><code>insufficientPermissions</code><internalReason>User does not have permission to perform this operation</internalReason></error></errors> 
atcom.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:605) 
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564) 
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560) 
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538) 
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536) 
at com.google.gdata.client.Service.getFeed(Service.java:1135) 
at com.google.gdata.client.Service.getFeed(Service.java:1077) 
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:676) 
at com.google.gdata.client.Service.getFeed(Service.java:1034) 
at com.report.pojo.GoogleAnlytics2.printFirstAccount(GoogleAnlytics2.java:80) 
at com.report.pojo.GoogleAnlytics2.main(GoogleAnlytics2.java:91) 

을 다음 얻고 내 문제 (link1, link2link3)에 관한 나는 일부 Google 그룹 토론 페이지를 가지고

public static DataQuery getBasicQuery(String tableId) throws MalformedURLException { 
    DataQuery query = new DataQuery(new URL(DATA_URL)); 
    query.setIds(tableId); 
    query.setStartDate("2011-07-12"); 
    query.setEndDate("2012-07-15"); 
    query.setDimensions("ga:hour"); 
    query.setMetrics("ga:visits,ga:bounces"); 
    query.setStringCustomParameter("key",API_KEY); 
    return query; 
} 

public static void printData(String title, DataFeed dataFeed) { 
    System.out.println(title); 
    System.out.println(dataFeed.getEntries().size()); 
    for (DataEntry entry : dataFeed.getEntries()) { 
     System.out.println("\tHour: " + entry.stringValueOf("ga:hour")); 
     System.out.println("\t\tVisits: " + entry.stringValueOf("ga:visits")); 
     System.out.println("\t\tBounces: " + entry.stringValueOf("ga:bounces")); 
     System.out.println("\t\tBounce rate: "+ entry.longValueOf("ga:bounces")/(double) entry.longValueOf("ga:visits")); 
    } 
    System.out.println(); 
} 

BASE_URL="https://www.googleapis.com/analytics/v2.4/management/" 
DATA_URL="https://www.googleapis.com/analytics/v2.4/data" 

다음 코드를 사용하고 그러나 나는 할 수 없었다 해결책을 얻으십시오.

이 문제를 어떻게 해결할 수 있습니까?

답변

0

Google API 콘솔에서 Google Analytics API를 활성화 했습니까? 지난주 파이썬 코드를 업데이트하면서이 작업을 수행해야했습니다. 실제로 내가 마이그레이션하고, 내가 로그인

google api console

+0

을 및 분석 서비스이 사용자에 대한 켜져 있는지 확인 : 당신은 아직이 작업을 수행하지 않은 경우

ON으로, https://code.google.com/apis/console/에서 다음 설정 상태를 로그인 v2.3에서 v2.3으로 마이 코드를 마이 그 레이션하는 동안 403으로 이전 중 기존 사용자 계정을 사용하고 있어도 기존 계정을 사용하는 것이 좋거나 새로운 계정을 만들어야합니다. –

+0

지난 주에 404 오류가 발생했습니다. 파이썬 라이브러리를 사용하고있었습니다. 업그레이드가 3 부분이었습니다. 1) 라이브러리 코드, 특히 URL을 업그레이드합니다 (https://www.google.com/analytics/feeds/data를 새 v2.4 URL로 대체). 2) 간단한 API 액세스 키를 사용하도록 라이브러리 인증 코드를 업데이트하십시오 (Google API 콘솔의 API 액세스 탭에서도 사용 가능). 3) 서비스 탭에서 애널리틱스 API를 사용하도록 설정합니다. 이 3 단계로 나를 다시 사업에 몰아 넣었습니다. 단계 1과 3을 완료 한 것처럼 들립니다. 2 단계? – klenwell

+1

답장을 보내 주셔서 감사합니다. 실제로 데이터 URL을 https://www.googleapis.com/analytics/v2.4/data로 변경하고 계정 URL을 https://www.googleapis.com/analytics/v2.4로 변경했습니다./management/accounts? max-results = 1 그리고 DataQuery 쿼리 = 새 DataQuery (새 URL (DATA_URL))로 키를 설정하고 있습니다. query.setStringCustomParameter ("key", API_KEY); 내 코드는 계정 ID, 계정 이름과 같은 계정 정보를 표시하지만 코드에 대한 예외는 발생하지 않습니다. DataFeed basicData = myService.getFeed (basicQuery, DataFeed.class); –

관련 문제