0

Googleドライブ内の長いリスト(約1000アイテム)のドキュメントのオーナーを特定しようとしています。所有者はドキュメントによって異なる場合があります。私は各アイテムの一意のドキュメントIDを持っています。Googleドライブのdoc IDの大きなリストのドキュメントオーナーを返す

私は自分のドメインでGoogle Appsの管理者であり、ドキュメントIDをパンチして特定のアイテムの所有権を確認できるユーティリティを持っています。しかし、私は一度に1つずつWebインターフェイスを使ってこれを行う必要があります。

スプレッドシートのように、ドキュメントIDが与えられたときにドキュメントの所有者を返すことができるGoogleのAPIを利用する方法はありますか? Googleのスクリプトはおそらく?

答えて

0

私の同僚と協力して、うまく機能する次のGoogle Appsスクリプトを生成しました。

使用方法:列DでのドキュメントのIDのリストで、チェックしたい行を強調表示する(任意の細胞が細かいですが、ちょうど何かを持っている希望行で強調表示)し、「オートメーション」メニューのカスタムを使用して実行します。

結果:所有者は、列Eに

function getOwnerFromValue(val){ 
    var doc = DriveApp.getFileById(val); 
    var user = doc.getOwner(); 
    return user; 
} 


function scanRange() { 
var range = SpreadsheetApp.getActiveRange(); 
    var start = range.getRow(); 
    var stop = range.getLastRow(); 
    var range = SpreadsheetApp.getActive().getRange("D"+start+":D"+stop) 
    var resultRange = SpreadsheetApp.getActive().getRange("E"+start+":E"+stop); 
    var result = []; 
    range.getValues().forEach(function(obj){ 
    obj = obj[0]; 
    if(obj.trim() != "") 
     result.push([getOwnerFromValue(obj).getEmail()]); 
    }); 
    resultRange.setValues(result); 
} 

function onOpen(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Get Owners' User", 
    functionName : "scanRange" 
    }]; 
    sheet.addMenu("Automation",entries); 
} 


function onAdd(e){ 
    var editted = e.range; 
    if(editted.getRow() != 1 && editted.getColumn() == 4) { 
    Logger.log(getOwnerFromValue(editted.getValue())); 
    } 
} 
を返されます
0

Apps Scriptで実行できます。

Class File

Googleドライブ内のファイル

。ファイルは DriveAppからアクセスまたは作成できます。

コードサンプル

var files = DriveApp.getId('DOC_ID'); 
while (files.hasNext()) { 
var file = files.next(); 

var owner = file.getOwner() 

} 

getOwner()

Fileの所有者を取得します。

戻り

User - 所有者に

を表すUserオブジェクトは、この情報がお役に立てば幸いです。

関連する問題