*

Google App EngineからのSpreadSheetの権限変更について

公開日: : 最終更新日:2014/03/28 投稿者: GAE

Google App Engine(以下GAE)からGoogleDocsのSpreadSheetを操作することになりましたので、権限周りについて少し調べてみました。

結論として、Google Data APIを使えば、ひと通りは手作業と同じようにSpreadSheetの操作はできるようです。

検証結果を簡単にまとめてみましたので、どうぞご参考までに読んでください。

 

<検証結果>

・使用したAPI : Google Documents List Data API version3.0

検証内容 Google Data API 手作業
オーナー権限の移譲
既存ユーザーの権限の変更
Spreadsheetへのユーザーの追加
既存ユーザーの削除

1:オーナー権限の委譲 & Spreadsheetへのユーザーの追加

DocsServiceクラスのInsertメソッド、もしくはAclEntryクラスのUpdateメソッドを使用します。

オーナー権限を変更した場合、前オーナーは自動で編集権限に変更になり、新オーナーに権限を委譲したことを知らせるメールが送られます。

コード例

[java]// Scopeに新オーナーのメールアドレスと、タイプをSetします。
aclEntry.setScope(new AclScope(AclScope.Type.USER, "newOwner@addres.co.jp"));
// 追加する権限にオーナーを指定します。
aclEntry.setRole(new AclRole("owner"));
// entryオブジェクトは権限を追加するドキュメントのDocumentListEntryクラスです。
docsService.insert(new URL(entry.getAclFeedLink().getHref()), aclEntry);
[/java]

2:既存ユーザーの権限の変更

DocsServiceクラスのInsertメソッド、もしくはAclEntryクラスのUpdateメソッドを使用します。
コード例

[java]
aclEntry.setRole(new AclRole("reader"));
AclEntry resulAclEntry = aclEntry.update();
// docsService.update(new URL(entry.getAclFeedLink().getHref()), aclEntry);
[/java]

既存ユーザの削除

DocsServiceクラスのDeleteメソッド、もしくはAclEntryクラスのDeleteメソッドを使用します。
コード例

[java]
aclEntry.delete();
// docsService.delete(new URL(entry.getAclFeedLink().getHref()), aclEntry);
[/java]

Goog Data APIのページで探していたときに「Google Spreadsheets Data API」が目に入りましたが、こちらはどうやらSpreadsheetの内容を編集する時に使うようです。名前に騙されました。
Google Documents List Data API では権限の変更以外にもSpreadsheetの新規作成も行えるので、GAEからGoogle Docsを操作する際には活躍すると思います。

この記事を書いた人

kimura
kimura
Webデザイナー。本サイトの管理・デザイン担当をしております。
 

関連記事

1つのエンティティにプロパティをいくつまで作れるか

1つのエンティティにプロパティをいくつまで作れるか 1つのエンティティにプロパティをいくつまで

記事を読む

これで怖くない Datastore のトランザクション

”トランザクション” 聞いただけで嫌厭する方も少なくないのでは? Datastore のトランザ

記事を読む

Datastoreの仕組み ~Consistencyについて~

はじめに スケーラビリティと可用性が高いと言われているGoogle Cloud Datastore

記事を読む

App Engine for PHP ベータ版から正式版へ

GCPBlogの記事によると App Engine for PHP(PHPアプリをGoogle Ap

記事を読む

Cloud Loggingの利用方法

はじめに 本記事はGoogle Cloud Platformの公式ページで公開されている「Goog

記事を読む

静的HTMLをGAE上で公開する

みなさんこんにちは。 本日は、静的HTMLをGAEで公開する手順を紹介します。 本サイトを運営し

記事を読む

1つのエンティティにプロパティをいくつまで作れるか(パート2)

1つのエンティティにプロパティをいくつまで作れるか 1つのエンティティにプロパティをいくつまで

記事を読む

Search APIの「Faceted Search」を使ってみた

Search API詳細解説シリーズは完結しましたが、2015年2月19日のAppEngine SD

記事を読む

Datastoreモデル変更の影響調査

GoogleAppEngine(以下GAEと呼称)に限らず、開発を行なっていると『テーブルの構造を変

記事を読む

GAEのスケーリング 前編 <仕組みについて>

今回は、こちらの公式ドキュメントをもとに、GAEのスケーリングの仕組みと最適化のやり方について紹介し

記事を読む

PAGE TOP ↑