2017-04-20 5 views
1

Node.jsアプリで同意画面なしでGoogle Drive APIを使用することは可能ですか?Node.js google drive api - 承認画面なしで承認

  • 私はアプリエンジンを有効にするアカウントのみを使用します。 Apiは、ファイルの保存、ファイルの共有、ファイルの削除を完全に許可する必要があります。
  • 私のアプリはherokuに展開されます。

私はquickstartからGoogleドライブAPIの例を取得していますが、私はこれをどのように行うことができるのか分かりません。

答えて

0

サービスアカウントを使用しないでください。それはあなたが思っていることをしません。必要なのは、Googleアカウント用に保存された更新トークンです。私はHow do I authorise an app (web or installed) without user intervention? (canonical ?)にすべてのステップを設定しました。これは、ノードの下で実行されるサンプルJavaScriptを含みます。

+0

Tkanksサービスアカウントは本当に私が望むものではありません。ですから、私はrefresh_tokenを環境変数に保存し、コードを使ってトークンを取得します。 –

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 protected]'; 
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']); 

あなたは、彼らがどのように動作するかを理解し、どのように1つのアップを設定するに興味がある場合、私はまた、サービスアカウントのチュートリアルを持っています。 Google developer console service account

+0

ありがとうございます!これはうまくいきますが、ファイルを送信すると自分のアカウントに表示されません。サービスアカウントにファイルが保存されている場所はありますか? –

+0

サービスアカウントはサービスアカウントに格納されないため、自分のアカウントのディレクトリをサービスアカウントのディレクトリと共有し、他のユーザーと同じようにそのディレクトリにアップロードします。または、サービスアカウントで共有することで、そのディレクトリへのアクセスを許可することができます。 – DaImTo

+0

folderidに権限を作成します。サービスアカウント。フォルダとファイルは同じことを忘れないでください。回答のためのhttps://developers.google.com/drive/v3/reference/permissions/create – DaImTo

関連する問題