假设我有一个web应用程序(“MyDriveApp”)需要在后台服务中访问驱动器文件。它要么拥有正在访问的文件,要么在所有者共享文档的谷歌账户中运行。
我明白我的应用程序需要一个刷新令牌,但我不想编写代码来获得它,因为我只会做一次。
注意。这不是使用服务帐户。该应用程序将在一个传统的谷歌账户下运行。服务帐户在某些情况下是一种有效的方法。然而,使用Oauth Playground来模拟应用程序的技术可以节省大量的冗余工作,并且适用于任何不支持共享服务帐户的API。
这可以通过https://developers.google.com/oauthplayground的Oauth2 Playground实现
步骤:-
凭据/Create Credentials/OAuth Client ID
,然后选择Web Application
您的应用程序现在可以在无人参与的情况下运行,并使用所描述的刷新令牌https://developers.google.com/accounts/docs/oauth2webserver#offline获得访问令牌。
注意,刷新令牌可能会被谷歌过期,这意味着你需要重复步骤5来获得一个新的刷新令牌。这种情况的症状是,当您尝试使用刷新令牌时,将返回无效的授权。
NB2.如果您想要一个web应用程序访问您自己的(并且只访问您自己的)驱动器帐户,而无需编写只能运行一次的授权代码,则此技术非常有效。跳过第一步,在第六步中用你自己的电子邮件地址替换“my.drive.app”。确保您知道刷新令牌被盗时的安全影响。
请参阅伍迪在下面的评论,他链接到这段谷歌视频https://www.youtube.com/watch?v=hfwe1gpcnzc
...
下面是一个快速的JavaScript例程,演示如何使用来自OAuth游乐场的刷新令牌列出一些驱动器文件。您可以简单地将它复制粘贴到Chrome dev控制台,或者使用Node运行它。当然提供你自己的凭据(下面的都是假的)。
function get_access_token_using_saved_refresh_token() {
// from the oauth playground
const refresh_token = "1/0PvMAoF9GaJFqbNsLZQg-f9NXEljQclmRP4Gwfdo_0";
// from the API console
const client_id = "559798723558-amtjh114mvtpiqis80lkl3kdo4gfm5k.apps.googleusercontent.com";
// from the API console
const client_secret = "WnGC6KJ91H40mg6H9r1eF9L";
// from https://developers.google.com/identity/protocols/OAuth2WebServer#offline
const refresh_url = "https://www.googleapis.com/oauth2/v4/token";
const post_body = `grant_type=refresh_token&client_id=${encodeURIComponent(client_id)}&client_secret=${encodeURIComponent(client_secret)}&refresh_token=${encodeURIComponent(refresh_token)}`;
let refresh_request = {
body: post_body,
method: "POST",
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded'
})
}
// post to the refresh endpoint, parse the json response and use the access token to call files.list
fetch(refresh_url, refresh_request).then( response => {
return(response.json());
}).then( response_json => {
console.log(response_json);
files_list(response_json.access_token);
});
}
// a quick and dirty function to list some Drive files using the newly acquired access token
function files_list (access_token) {
const drive_url = "https://www.googleapis.com/drive/v3/files";
let drive_request = {
method: "GET",
headers: new Headers({
Authorization: "Bearer "+access_token
})
}
fetch(drive_url, drive_request).then( response => {
return(response.json());
}).then( list => {
console.log("Found a file called "+list.files[0].name);
});
}
get_access_token_using_saved_refresh_token();
我想为android清单做一个权限这个权限是 我的问题是,在没有用户干预的情况下,如何做到这一点?
我使用创建了一个应用程序构建文件。这将用和文件填充文件夹。 我在internet上进行了搜索,发现可以使用运行这些文件。不幸的是,这会产生以下错误输出: org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autocigure.orm.jpa.hibernatejpaAutoCo
有什么方法可以让访问部署的云运行应用程序变得更有趣吗? PS:我不想把应用程序放在我们的cluser中-所以这里只有完全管理是一个选项
我想在Java Spring boot中获取我的应用程序的当前url。但问题是,我想从类而不是从中获得它。我试图从获取这个,但我无法将其包导入我的类。 请帮我得到我的网站的网址,不应该硬编码。或者如果有一种方法可以使用到我的util类。
Milena Nikolic在“Google Play的新功能”演讲中表示,这是Google推出android11的一部分,她说: 当我们继续改进应用程序包时,我们期望它成为2021的某个新应用程序的需求。 我在文档中看到的一切都表明,在Play Store中使用应用程序捆绑包的唯一方法是使用他们的Play应用程序签名服务,例如: 注册到应用程序播放应用程序签名。否则,无法将应用包上传到Play控
问题内容: 我想知道如何在Spring MVC上引导我的应用程序? 我有一个初始化器: 我知道我们为什么需要以及如何使用它来引导应用程序。但是我不明白,如果没有文件(只有),怎么知道应该使用哪个servlet来引导应用程序? 依存关系 我在Spring核心中找到了此类。使用它来引导我的应用程序是否正确? http://docs.oracle.com/javaee/7/api/javax/servl