6

Chúng tôi đang sử dụng Google Analytics API v3 (phiên bản thuần dot) để báo cáo một số dữ liệu thống kê trên trang web của chúng tôi. Tôi có mã chạy tốt trên máy cục bộ của tôi, nhưng nó sẽ không hoạt động trên máy chủ sản xuất do một số quy tắc tường lửa. Quản trị viên hệ thống của chúng tôi khuyên bạn nên thử và sử dụng proxy. Tôi đã tìm kiếm trên internet mọi hướng dẫn để thiết lập proxy cho dịch vụ API Google Analytics, nhưng không có may mắn. Đánh giá cao bất kỳ con trỏ nào về vấn đề này.Định tuyến API Google Analytics v3 thông qua máy chủ proxy

EDIT:

public DataTable GetSearchTrends() 
    { 
     string GoogleAnalyticsProfileId = AppConfigManager.GetGoogleAnalyticsProfileIdForInis(); 

     var service = new AnalyticsService(new BaseClientService.Initializer() 
     { 
      Authenticator = Authenticate() 

     }); 

      DataResource.GaResource.GetRequest request = service.Data.Ga.Get(
      GoogleAnalyticsProfileId, 
      string.Format("{0:yyyy-MM-dd}", StartDate), 
      string.Format("{0:yyyy-MM-dd}", EndDate), 
      GoogleAnalyticsSearchUniquesMetric 
      ); 

     request.Dimensions = GoogleAnalyticsSearchKeywordMetric; 
     request.Sort = string.Concat("-", GoogleAnalyticsSearchUniquesMetric); 
     request.MaxResults = NumberOfSearchTrendsToFetch; 

     GaData response = request.Fetch(); 

     return SearchTrendsHelper.ConvertToDataTable(
      response.Rows, 
      SearchTrendsKeywordsExcludeList, 
      NumberOfSearchTrendsToDisplay 
      ); 
    } 


    private IAuthenticator Authenticate() 
    { 
     string GoogleAnalyticsServiceScope = AnalyticsService.Scopes.AnalyticsReadonly.GetStringValue(); 
     string GoogleApiServiceAccountId = AppConfigManager.GetGoogleApiServiceAccountId(); 
     string GoogleApiServiceAccountKeyFile = AppConfigManager.GetGoogleApiServiceAccountKeyFile(); 
     string GoogleApiServiceAccountKeyPassword = AppConfigManager.GetGoogleApiServiceAccountKeyPassword(); 
     AuthorizationServerDescription desc = GoogleAuthenticationServer.Description; 

     X509Certificate2 key = new X509Certificate2(
      HttpContextFactory.Current.Server.MapPath(GoogleApiServiceAccountKeyFile), 
      GoogleApiServiceAccountKeyPassword, 
      X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet 
      ); 

     AssertionFlowClient client = new AssertionFlowClient(desc, key) { 
      ServiceAccountId = GoogleApiServiceAccountId, 
      Scope = GoogleAnalyticsServiceScope, 
     }; 

     OAuth2Authenticator<AssertionFlowClient> auth = new OAuth2Authenticator<AssertionFlowClient>(
      client, 
      AssertionFlowClient.GetState 
      ); 

     return auth; 
    } 
+0

Bạn có thể tải lên mã của mình ở đâu đó không. Làm cách nào để xác thực và báo cáo dữ liệu.Chúng tôi sẽ cố gắng trợ giúp –

+0

@KamranShahid: Cập nhật câu hỏi bằng mã nguồn – itsbalur

Trả lời

3

tôi không tìm thấy bất kỳ tài liệu hữu ích trong các diễn đàn hoặc trên internet, vì vậy quyết định sử dụng cấu hình System.Net trên web.config.

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
     <proxy proxyaddress="http://abc.com:3128" usesystemdefault="True" bypassonlocal="True"/> 
     <bypasslist> 
     <add address="http://xyz.com" /> 
     <add address="http://www.example.com" /> 
     </bypasslist> 
    </defaultProxy> 
    </system.net> 

Bất kỳ yêu cầu nào chúng tôi không muốn chuyển qua proxy, có thể được thêm vào <bypasslist>. Nó có thêm lợi thế, bất cứ khi nào thư viện lớp Google API thay đổi, chúng tôi không phải bận tâm về việc viết lại mã để thiết lập proxy. :-)

+0

Bạn có thể cho tôi danh sách mặt hàng bạn đã thêm vào không danh sách bỏ qua

Các vấn đề liên quan