C# 执行身份验证请求返回意外结果:404
我一直在使用C# 执行身份验证请求返回意外结果:404,c#,.net,google-api,google-analytics-api,google-client-login,C#,.net,Google Api,Google Analytics Api,Google Client Login,我一直在使用Google.GData.Analytics和Google.GData.Client 通过我的web应用程序中的Google Analytics API v2检索一些Google Analytics数据 守则如下: string username = "abc@gmail.com"; string password = "myPasswordHere"; string profileId = "ga:88376970"; string
Google.GData.Analytics
和Google.GData.Client
通过我的web应用程序中的Google Analytics API v2检索一些Google Analytics数据
守则如下:
string username = "abc@gmail.com";
string password = "myPasswordHere";
string profileId = "ga:88376970";
string _from = Convert.ToDateTime(dtpFrom.SelectedDate.Value.ToString()).ToString("yyyy-MM-dd");
string _to = Convert.ToDateTime(dtpTo.SelectedDate.Value.ToString()).ToString("yyyy-MM-dd");
AccountQuery AccountsQuery = new AccountQuery();
service = new AnalyticsService("DoogalAnalytics");
service.setUserCredentials(username, password);
try
{
DataFeedUrl = "https://www.google.com/analytics/feeds/data";
DataQuery PageViewQuery = new DataQuery(DataFeedUrl)
{
Ids = profileId ,
Metrics = "ga:pageviews",
Dimensions = "ga:date",
Sort = "ga:date",
GAStartDate = _from,
GAEndDate = _to
};
StringBuilder strData = new StringBuilder();
int maxValue = 0;
int today = 0;
List<int> gList = new List<int>();
foreach (DataEntry entry in service.Query(PageViewQuery).Entries)
{
var value = entry.Metrics.First().IntegerValue;
gList.Add(value);
maxValue = value > maxValue ? value : maxValue;
today = entry.Metrics.Last().IntegerValue;
strData.AppendFormat("{0},", value);
}
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
string用户名=”abc@gmail.com";
字符串password=“myPasswordHere”;
string profileId=“ga:88376970”;
字符串_from=Convert.ToDateTime(dtpFrom.SelectedDate.Value.ToString()).ToString(“yyyy-MM-dd”);
字符串_to=Convert.ToDateTime(dtpTo.SelectedDate.Value.ToString()).ToString(“yyyy-MM-dd”);
AccountQuery AccountsQuery=新AccountQuery();
服务=新分析服务(“DoogalAnalytics”);
service.setUserCredentials(用户名、密码);
尝试
{
DataFeedUrl=”https://www.google.com/analytics/feeds/data";
DataQuery PageViewQuery=新数据查询(DataFeedUrl)
{
Ids=profileId,
Metrics=“ga:pageviews”,
Dimensions=“ga:日期”,
Sort=“ga:date”,
加斯塔特日期=_自,
GAEndDate=_至
};
StringBuilder strData=新的StringBuilder();
int maxValue=0;
int今天=0;
List gList=新列表();
foreach(service.Query(PageViewQuery.Entries)中的数据条目)
{
var value=entry.Metrics.First().IntegerValue;
增加(价值);
maxValue=value>maxValue?值:maxValue;
今天=entry.Metrics.Last().IntegerValue;
AppendFormat(“{0},”,值);
}
}
捕获(例外情况除外)
{
Response.Write(例如Message.ToString());
}
这段代码在大约5天前还运行得很好,在过去的7到8个月里我一直在使用这段代码,但是现在我突然遇到了错误
执行身份验证请求返回意外结果:404
当我搜索谷歌的时候。
我找了很多,但找不到任何解决办法。
任何帮助或指导都将不胜感激。客户端登录从2015年5月26日开始中断/关闭,可能在2015年5月26日左右完成。您不能再在Google Analytics API中使用客户端登录(登录名和密码),您需要切换到Oauth2。您需要更改代码以使用Oauth2或服务帐户 最好抓取最新版本的客户端库,它使用您正在使用的Google Analytics V3 V2
如果这是您已经拥有的数据,您可能需要考虑服务帐户。服务帐户将允许您设置对google analytics帐户的访问权限,并且不需要用户验证您的代码。如果这不是您的Google Analytics帐户,而是另一个用户拥有的帐户,那么您需要使用Oauth2并请求该用户进行身份验证
我的教程: 从以上教程中删除的代码教程保持最新此代码可能不是: string[] scopes = new string[] {
AnalyticsService.Scope.Analytics, // view and manage your Google Analytics data
AnalyticsService.Scope.AnalyticsEdit, // Edit and manage Google Analytics Account
AnalyticsService.Scope.AnalyticsManageUsers, // Edit and manage Google Analytics Users
AnalyticsService.Scope.AnalyticsReadonly}; // View Google Analytics Data
String CLIENT_ID = "6.apps.googleusercontent.com"; // found in Developer console
String CLIENT_SECRET = "xxx";// found in Developer console
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
UserCredential credential =
GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets {
ClientId = CLIENT_ID
, ClientSecret = CLIENT_SECRET
}
, scopes
, Environment.UserName
, CancellationToken.None
, new FileDataStore("Daimto.GoogleAnalytics.Auth.Store")).Result;
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Analytics API Sample",
});
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();
你能提供一些示例工作代码吗?我对谷歌API没有足够的经验,我以前使用的代码是从互联网上下载的…?虽然教程的底部是示例项目,但老实说,我不知道如何获得它。?你能详细说明吗???点击链接,这是一个教程。告诉你怎么做。除了给你一个教程并向你展示你还需要多少精化?我在本教程中尝试了这些代码,但它给出了类似AnalyticsService.Scope.Analytics的错误,V3.AnalyticsService不包含范围的定义