- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个可以访问 Google Analytics 的帐户的凭据,
我希望使用 Analytics Core Reporting API http://code.google.com/apis/analytics/docs/gdata/home.html
我找到了使用用户名/密码调用 setUserCredentials 的示例,但看到评论说这不太安全/请求限制较低(并且在最新的客户端中不存在)。
此外,我还看到了使用 oauth 的示例,但需要用户交互并授予对用户 google 帐户的访问权限。
但是我希望运行一项不需要任何用户交互的服务,并连接到预定义的谷歌帐户(与查看它的用户无关)。
然后我可以将结果存储在数据库中,最终用户可以从数据库中查询结果。
我已经看到有关在您首次登录时使用 AccessType = Offline 的信息,然后返回一个访问 token 和一个刷新 token 。 http://code.google.com/apis/accounts/docs/OAuth2WebServer.html#offline
但在我的示例中,最终用户永远不会登录到应用程序。我可以有一个单独的管理应用程序来获取刷新 token ,并将刷新 token 存储在配置/查找表中吗?然后主应用程序可以使用从配置/查找表中提取的刷新 token ,并获取访问 token 以查询 Google Analytics 帐户。
我正在寻找一个使用 AccessType = Offline 的 C# 示例,并将刷新 token 的获取和使用刷新 token 获取访问 token 以查询 Google Analytics 帐户分开。
最佳答案
创建您的应用 https://code.google.com/apis/console/
为您的应用打开对 Google Analytics 的访问权限,并为您的网站创建一个 OAuth 2.0 客户端 ID。
浏览到:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=YOUR_APP_ID.apps.googleusercontent.com&access_type=offline&scope=https://www.googleapis.com/auth/analytics.readonly&redirect_uri=HTTP://YOUR_CALL_BACK_URL
将 YOUR_APP_ID、YOUR_CALL_BACK_URL 更改为相关值。
重要的是要包含 access_type=offline。
按授予访问权限,这将重定向到 HTTP://YOUR_CALL_BACK_URL?code=THIS_IS_YOUR_CODE
.复制 URL 中的代码。
使用代码,使用 CMD 提示请求刷新 token 。
curl -d "code=THIS_IS_YOUR_CODE&client_id=YOUR_APP_ID.apps.googleusercontent.com&client_secret=YOUR_APPS_SECRET_CODE&redirect_uri=HTTP://YOUR_CALL_BACK_URL&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token
已将 THIS_IS_YOUR_CODE、YOUR_APP_ID、YOUR_APPS_SECRET_CODE、YOUR_CALL_BACK_URL 更改为相关值。
记录返回的refresh_token。
下载最新版本的 Core Reporting V3.0 .net 库 http://code.google.com/p/google-api-dotnet-client/wiki/Downloads
当前版本的 Google.Apis.Analytics.v3.cs 中存在一个错误,要修复此问题,请将此文件中的代码复制到您的本地解决方案(并且不要引用 Google.Apis.Analytics.v3.bin ) http://code.google.com/p/google-api-dotnet-client/source/browse/Services/Google.Apis.Analytics.v3.cs?repo=samples&name=20111123-1.1.4344-beta
并从 List<system.string>
更改属性维度到 string
.
否则你会像我一样得到一个错误,而这个人做到了 http://www.evolutiadesign.co.uk/blog/using-the-google-analytics-api-with-c-shar/
然后您可以使用您的刷新 token ,在没有用户交互的情况下为您生成一个访问 token ,并使用访问 token 针对 Google Analytics 运行报告。
using System;
using DotNetOpenAuth.OAuth2;
using Google.Apis.Authentication.OAuth2;
using AnalyticsService = Google.Apis.Analytics.v3.AnalyticsService;
class Program
{
public static void Main()
{
var client = new WebServerClient(GoogleAuthenticationServer.Description, "YOUR_APP_ID.apps.googleusercontent.com", "YOUR_APPS_SECRET_CODE");
var auth = new OAuth2Authenticator<WebServerClient>(client, Authenticate);
var asv = new AnalyticsService(auth);
var request = asv.Report.Get("2012-02-20", "2012-01-01", "ga:visitors", "ga:YOUR_GOOGLE_ANALYTICS_ACCOUNT_ID");
request.Dimensions = "ga:pagePath";
request.Sort = "-ga:visitors";
request.MaxResults = 5;
var report = request.Fetch();
Console.ReadLine();
}
private static IAuthorizationState Authenticate(WebServerClient client)
{
IAuthorizationState state = new AuthorizationState(new string[]{}) { RefreshToken = "REFRESH_TOKEN" };
client.RefreshToken(state);
return state;
}
}
关于c# - 服务帐户 Google Analytics OAuth AccessType = Offline C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366380/
sls 离线命令停留在“离线:启动离线 SQS:本地/us-east-1”。 "serverless-offline": "^6.8.0", "serverless-offline-sqs": "4.
需要关于使用 redux 的大型 React Native 移动应用程序使用哪个库的建议? redux-离线 或 react-native-offline ? 我需要定期检查连接状态,根据连接状态呈现
我正在使用 Redux Offline在我的 Angular 项目中,现在我想在离线模式下启用取消发件箱中的项目。基本上,我只想过滤发件箱数组以删除我想要取消/修改的项目。 我的问题是它从我在顶级 r
我有一个只能离线工作的应用程序,但由于项目的设置方式,它需要互联网连接启动。我知道问题出在 spring.xml 中的 xsi:schemaLocation 属性,但对 Spring 不太了解,不知道
这就是一大堆错误。我已经安装了所有最新版本的Ffltter和Android Studio,还重新安装了Android SDK,并运行了ADB KILL-SERVER和ADB START-SERVER命
这就是一大堆错误。我已经安装了所有最新版本的Ffltter和Android Studio,还重新安装了Android SDK,并运行了ADB KILL-SERVER和ADB START-SERVER命
我在 Android 4.1 版本和代理后面。我已经设置了代理设置并且 sdk 下载工作正常。但是当我创建一个新项目时,它会抛出错误: Could not GET 'https://dl.google
我正在尝试与服务 worker 合作以缓存并遇到经过身份验证的调用的问题。我目前正在使用 https://css-tricks.com/serviceworker-for-offline/ ( htt
即使用户清除了缓存和 cookie,我也想让我的网站离线可用。有可能吗?我也在处理数据库。是否可以离线处理数据库? 最佳答案 用户可以存储 本地 的副本单例网页使用 Chrome(右键单击另存为),它
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
我想从服务器下载 mp4 视频到我的 Android 设备。我希望这个视频以 block (加密)的形式存储,并且应该在视频播放时实时组合。如何着手解决这个问题。 最佳答案 对于这样的样本 publi
我一直在与社交集成和授权的 oauth 框架密切合作。我知道,像 Facebook 一样,Twitter 为其应用程序实现了一个 oauth Hook 。我的问题是,有没有办法让访问 token 永远
我在我这边使用 OpenStreetMap,但它可以通过他们的页面工作。我想知道是否可以下载一些 map 并使用本地服务器。到目前为止,我发现了这样的事情: http://openlayers.org
我正在考虑使用 Firebase 使用 PhoneGap 和 HTML5 应用程序缓存编写移动应用程序。 让我们假设每个用户都有一个 TODO 项目列表。如果应用程序在手机离线时启动,它是否能够从上一
我正在运行我的 nodejs 代码并且还安装了无服务器( npm i -g serverless )但是在使用命令 sls offline start --CacheInvalidations 运行它
这在以下情况下很有用: 服务器已关闭,客户端无法连接进行实时同步 没有互联网连接 用户不想上网,但想使用应用程序; 最佳答案 是的!这大部分已经在 Meteor 中实现了。 如果与服务器的连接丢失,客
在c#中没有互联网连接时,有没有办法获取计算机的mac地址?当我有连接时我能得到,但当我离线时我不能得到。但强烈要求我的工作需要 mac 地址。 我的在线代码; var macAddr =
我想在此处 map 中离线显示转弯导航。我也下载了 map 并将 MapEngine 设置为 false 以在离线模式下使用它,但在计算路线时返回 map 数据不足错误。如何在离线模式下使用此处 ma
该应用程序执行简单的注册(使用 FirebaseAuth、FirebaseUI 和 Google 登录)。认证时成功 , 我拿firebaseUser.userId并使用它从实时数据库中获取用户配置文
在运行 Flutter doctor 以查看为什么我的物理 LG G6 设备没有被拿起后,我发现“设备离线”。 我试过谷歌搜索,拔下并重新插入设备。 似乎没有任何效果。 这是什么意思?我的设备确实启用
我是一名优秀的程序员,十分优秀!