6

Googleドライブに接続したり、DOMエレメントをどこかに挿入したり(「アクティビティペイン」など)できるChrome拡張機能を作成しています。ユーザーがファイルを選択します。GoogleドライブのフロントエンドのUIイベントリスナー

Googleドライブでは、イベント駆動型のUIモデルを使用している可能性があります。ユーザーがこのファイルのプレビュー画像をクリックすると、そのファイルの「アクティビティ」の詳細を読み込んでペインに表示します)しかし、これはどこにも記載されていないようです(明らかにGoogle側はクライアントサイドのJavascriptを難読化しています) 。

私はコールバックを実行するためにフックすることができ、これらのイベントのためのパブリックAPIのいくつかの種類がありますような何か:?私は実装することで、同じ結果を得ることができ実現

googleDriveUi.on("fileSelect", function(file) { 
 
    alert("You have selected " + file.filename); 
 
});

自分のUIフロントエンドでGoogleドライブにフックするバックエンド API。 GoogleドライブのUIは既にかなり優れているため、再構築する必要はありません。

代わりに、Webリクエストイベントを聞くこともできます。たとえば、ドライブでファイルをクリックすると、{http} // {google} /appsactivity/v1.1internal/activities?{etcetc}にリクエストが送信されます。拡張機能はおそらくこのURLに対して行われたリクエストを聞くことができますが、Googleがいつでも特定のリクエストエンドポイントを変更する可能性があるため、これは非常にばかげた解決策になるでしょう。

その他のご意見をいただければ幸いです。

+0

ドライブがまだ提供していない情報を取得するにはどのような情報が必要ですか? –

+0

理想的には、ファイルID、ファイル名、サイズ、アクティビティリストなどすべてのメタデータを利用できます。私の暫定的なアプローチは、[data-id]属性(属性の値がファイルのID)を持つ要素のクリックイベントを聴いてから、そのIDを使用してドライブのAPI呼び出しを介してファイルを取得し、終わり。このアプローチの問題点は、(1)文書化されていないため、Googleが拡張子を破る[data-id]の使用を中止できること、(2)ファイルIDのみで動作すること、つまり他のメタデータ別のAPI呼び出しを行うことなく(これは大きな問題ではありませんが)。 –

答えて

3

フロントエンドのUIイベントに対する公開APIはありません。いくつかのオプション:

A. Google Apps Activity APIは公開されており、サポートされています。あなたは正式に変更を加えることができます(クライアント側、文書化されていない、ばかげた手段によってfile.idを盗聴したと仮定した場合)。

B.「正しい方法」は、ドライブREST API Open Files(「Open with」)統合インターフェイスを使用することですが、これはOAuth経由でアプリを許可/インストール/接続しているユーザーに依存します。

C.フロントエンドUI全体を書き込む代わりに、Google Picker APIを使用することができます。これにより、「ユーザーはfile.id = xyzを選択しました」という完全な制御を得ることができます。

オプションBまたはCは、完全かつ正式にサポートされているAPIに最も近いものです。

Googleに必要な機能を追加したい場合は、feature request for the Drive APIを確認したりファイルしたりすることができます。

+0

レスポンスを気に入っていますが、これは私が探しているものではありません。ファイルIDをスニッフィングせずにDriveバックエンド(現在は私がやっていることです)から再取得する必要なしに、DOMのDrive要素とやり取りするための、文書化されたフロントエンドAPIがあることを期待していました。しかし、Googleはこれを利用可能にしていないようだ。 –

+0

この制限が存在するのは残念です。私は機能要求をファイルする方法に関する私の答えにいくつかの情報を追加しました。 –

+0

これは私の質問に答えることができませんでしたが、私はあなたに賞金を授与しました。 –

関連する問題