Node.js谷歌驱动器api - 未经同意屏幕授权

时间:2017-04-20 06:56:52

标签: node.js google-api google-drive-api google-oauth

我很有意思,可以在Node.js应用中使用Google Drive API没有同意屏幕吗?

  • 我只想使用启用应用引擎的帐户。 Api必须具有保存文件,共享文件,删除文件的完全权限。
  • 我的应用将部署到heroku。

我从Google Drive API的quickstart获取示例,但我不知道如何才能做到这一点。

2 个答案:

答案 0 :(得分:0)

您要找的是service account。服务帐户是具有自己的驱动器帐户的虚拟用户。他们也可以通过与任何其他用户共享文件夹或文件来授予您个人驱动器帐户的权限。由于服务帐户是预先授权的,因此没有同意屏幕。

我不是Node.js的开发者,但我找到了这个。 Accessing Google API using Service Account in Node.js

var CLIENT_ID = env.googleapis.client_id;
var CLIENT_SECRET = env.googleapis.client_secret;
var oauth2 = new googleapis.OAuth2Client(CLIENT_ID, CLIENT_SECRET, 'postmessage');

var SERVICE_ACCOUNT_EMAIL = 'email@serviceaccount.com';
var SERVICE_ACCOUNT_KEY_FILE = '/path/to/decrypted/key/file';
var jwt = new googleapis.auth.JWT(
        SERVICE_ACCOUNT_EMAIL,
        SERVICE_ACCOUNT_KEY_FILE,
        null,
        ['https://www.googleapis.com/auth/analytics.readonly']);

如果您有兴趣了解它们如何工作以及如何设置服务帐户,我还有一个关于服务帐户的教程。 Google developer console service account

答案 1 :(得分:0)

请勿使用服务帐户。它没有做你认为它做的事情。您需要的是为您的Google帐户存储的刷新令牌。我已经列出了How do I authorise an app (web or installed) without user intervention? (canonical ?)的所有步骤,包括将在节点下运行的示例JavaScript。