简体   繁体   English

远程服务器返回错误:(404) 未找到。 谷歌在 C# 中的实现

[英]The remote server returned an error: (404) Not Found. google implentation in c#

I'm using OAuth2 credentials, getting 404 error:我正在使用 OAuth2 凭据,但出现 404 错误:

using Google.Analytics;
using Google.GData.Analytics;

    void Analytics()
        {
            try
            {
                string userName = ConfigurationManager.AppSettings["username"];
                string passWord = ConfigurationManager.AppSettings["password"];
                string gkey = "key=api _key";
                string dataFeedUrl = "https://www.googleapis.com/analytics/v3/data/ga";//+ gkey;
                AccountQuery query = new AccountQuery();
                AnalyticsService service = new AnalyticsService("Web App");
                service.setUserCredentials(userName, passWord);

                DataQuery query1 = new DataQuery(dataFeedUrl);
                query1.Ids = "ga:123456789";
                query1.Metrics = "ga:visits,ga:sessions,ga:pageValue,ga:bounces,ga:bounceRate,ga:pageviews";
                query1.Dimensions = "ga:city,ga:date";
                query1.GAStartDate = ("2016-03-15");//DateTime.Now.AddMonths(-1).AddDays(-2).ToString("yyyy-MM-dd");
                query1.GAEndDate = ("2016-03-17");//DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd");
                query1.ExtraParameters = gkey;
                DataFeed dataFeedVisits = service.Query(query1);
                foreach (DataEntry entry in dataFeedVisits.Entries)
                {
                    string st = entry.Title.Text;
                    string ss = entry.Metrics[0].Value;
                    int _intVisists = Int32.Parse(ss);
                    Response.Write("<br/>");
                    Response.Write("Total Visits : " + ss);
                    Response.Write("<br/>");
                }
            }
            catch (Exception ex)
            {
                Response.Write("Error : " + ex);
            }
        }

Exception is :例外是:

Execution of request failed: https://www.googleapis.com/analytics/v3/data/ga?key=api_key&dimensions=ga:city,ga:date&end-date=2016-03-17&ids=ga:123456789&metrics=ga:visits,ga:sessions,ga:pageValue,ga:bounces,ga:bounceRate,ga:pageviews&start-date=2016-03-15请求执行失败: https : //www.googleapis.com/analytics/v3/data/ga?key=api_key&dimensions= ga:city,ga: date&end-date=2016-03-17&ids= ga: 123456789&metrics= ga: visits ,ga:sessions,ga:pageValue,ga:bounces,ga:bounceRate,ga:pageviews&start-date=2016-03-15

Somehow its redirecting to https://www.google.com/accounts/ClientLogin which is shutdown by google.不知何故,它重定向到https://www.google.com/accounts/ClientLogin被谷歌关闭。

  1. client login was shut down in May 2015, there for you need to use Open authentication.客户端登录已于 2015 年 5 月关闭,因此您需要使用 Open 身份验证。
  2. you are using the GData library which requires data be returnd as XML.您正在使用 GData 库,它需要将数据作为 XML 返回。
  3. you are requesting against the Google Analytics V3 API, which is not a gdata api and returns data as JSon.您正在请求 Google Analytics V3 API,它不是 gdata api 并以 JSon 形式返回数据。

Solution:解决方案:

Install the current version of the Google .net client library安装当前版本的 Google .net 客户端库

PM> Install-Package Google.Apis.Analytics.v3 PM> 安装包 Google.Apis.Analytics.v3

Authentication:验证:

string[] scopes = new string[] {AnalyticsService.Scope.AnalyticsReadonly};      // View Google Analytics Data

var clientId = "[Client ID]";      // From https://console.developers.google.com
var clientSecret = "xxx";          // From https://console.developers.google.com
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId,
                                                                                 ClientSecret = clientSecret},
                                                            scopes,
                                                            Environment.UserName,
                                                            CancellationToken.None,
                                                            new FileDataStore("Daimto.GoogleAnalytics.Auth.Store")).Result;

create an analytics service创建分析服务

var service = new AnalyticsService(new BaseClientService.Initializer() { HttpClientInitializer = credential,
                                                                         ApplicationName = "Analytics API Sample",});

request data请求数据

DataResource.GaResource.GetRequest request = service.Data.Ga.Get("ga:8903098", "2014-01-01", "2014-01-01", "ga:sessions");
request.MaxResults = 1000;
GaData result = request.Execute();

code ripped from my Google Analytis api tutorail从我的Google Analytis api 教程中撕下的代码

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 HttpWebRequest引发“ 404远程服务器返回错误:(404)未找到。” - HttpWebRequest throws “The remote server returned an error: (404) Not Found.” for 404 远程服务器返回错误:(404)找不到。 在GetResponse()中 - The remote server returned an error: (404) Not Found. In GetResponse() Picasa API返回“远程服务器返回错误:(404)Not Found。” - Picasa API returns “The remote server returned an error: (404) Not Found.” WebDriverManager - &#39;远程服务器返回错误:(404)未找到。&#39; - WebDriverManager - 'The remote server returned an error: (404) Not Found.' 远程服务器返回错误:(404)找不到。 使用Facebook图形API时 - The remote server returned an error: (404) Not Found. when using facebook graph api 远程服务器返回错误 (404) 未找到。 在 system.net.httpwebrequest.getresponse() - the remote server returned an error (404) not found. at system.net.httpwebrequest.getresponse() 远程服务器返回错误:(404)找不到-HttpWebResponse - The remote server returned an error: (404) Not Found - HttpWebResponse 远程服务器返回404找不到错误C# - Remote Server returns 404 not found error c# BrowserMob 代理 - 远程服务器返回错误:(404) 未找到 - BrowserMob Proxy - The remote server returned an error: (404) Not Found 服务器返回错误:找不到404 - The server returned an error: 404 not found
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM