2012-04-19 14 views
0

私はGoogleサイトでApps Scriptを使用していますが、アクティブユーザーとしてガジェットを認証してアクティブユーザーのドキュメントリストを表示しようとしています。私はいくつかのグーグルグループの議論でこれについて無回答で尋ねてきたが、私がここで答えを得られることを期待していた。ここに私のコードです:Apps Scriptを使用して現在ログインしているユーザーのGoogleドキュメントのリストを取得するにはどうすればよいですか?

var oauthConfig = UrlFetchApp.addOAuthService( "gDocs"); oauthConfig.setAccessTokenUrl( "https://www.google.com/accounts/OAuthGetAccessToken"); oauthConfig.setRequestTokenUrl( "https://www.google.com/accounts/OAuthGetRequestToken?scope=https://docs.google.com/feeds/"); oauthConfig.setAuthorizationUrl( "https://www.google.com/accounts/OAuthAuthorizeToken"); oauthConfig.setConsumerKey( "myDomainName"); oauthConfig.setConsumerSecret( "myCosumerSeceret");

VARオプション= { "方法": "GET"、 "ヘッダ" { "のGData-バージョン": "3.0"}、 "oAuthServiceName": "gDocs"、 "oAuthUseToken": "常に " };

var results = UrlFetchApp.fetch( "https://docs.google.com/feeds/default"、options);

この時点でコードは実行されず、ガジェットを含むページが表示されます。 その操作を実行するには認証が必要です。

ご協力いただければ幸いです。

は3本足のOAuthを使用して認証を行うためには、 ジェームズKrimm

答えて

0

それはactive userデータにアクセスすることはできません。公開されているAppsスクリプトは、サイト上と同様に、effective userというスクリプト所有者のアカウントで実行されます。また、セキュリティ上の問題として、スクリプトの所有者にはactive userのデータにアクセスする権限がありません。

@claudioが(組み込みDocsListを使用して)示唆していることはできません。

私たちはGoogle Appsドメイン(一般消費者アカウントではない)について話しており、スクリプトの所有者はドメイン管理者です。その場合、彼はGoogle Docs List Data APIを使用して、自分のドメイン上のユーザーを偽装することができます。

どちらの場合でも、このシナリオに関係なく、コンシューマキーとシークレットは常に「匿名」にする必要があります。

+0

私の答えを参照してください。ガスを所有者ではなく "ウェブアプリケーションにアクセスするユーザー"として実行することが可能です。 –

+1

この回答は古くなりました。ユーザーがアクセスする際にスクリプトを実行するオプションが用意されています。 - –

+0

+1、それが利用可能になる前にあなたがそれに答えていることを理解していません:) –

1

をありがとう、あなたはConsumerKeyとConsumerSecretとして「匿名」を使用する必要がありますのでご了承ください。また

oauthConfig.setConsumerKey("anonymous"); 
oauthConfig.setConsumerSecret("anonymous"); 

、正しいフィードURLはhttps://docs.google.com/feeds/default/private/fullです。

しかし、あなたの目標がアクティブユーザーのドキュメントのリストを取得することであれば、Apps Scriptで提供されているDocsListサービスを使用してみませんか?彼らはまたあなたのために結果を解析する世話をするでしょう。

https://developers.google.com/apps-script/service_docslist

0

この特定のエラーはおそらくOAuthとは関係ありませんが、アプリにDocsListを追加することに関連していると思われます。

参照:https://developers.google.com/apps-script/troubleshooting#common_errors

許可はそのアクションを実行するために必要です。

このエラーは、スクリプトに実行に必要な承認がないことを示しています( )。スクリプトエディタまたはカスタムメニュー項目の からスクリプトを実行すると、承認ダイアログがユーザーに表示されます。 しかし、スクリプトがサービスとして実行され、Google サイトページが埋め込まれているか、またはトリガーから実行されると、ダイアログは表示されず、 このエラーが表示されます。 スクリプトを承認するには、スクリプトエディタ を開き、任意の機能を実行します。このエラーを回避するには、スクリプトに新しいサービスまたは機能を追加した後に、スクリプトエディタでスクリプト を1回実行してください。

0

ここでの回答は正しくありません。 Oauthを直接使用するのではなく、必要な作業を行うことができます。代わりに、スクリプトの所有者ではなく、「現在のユーザーとして実行する」オプションを使用してApps Scriptを公開します。次に、DriveAppのDocsListを使用してユーザーファイルを取得します。ここでの鍵は、サービスを公開して「ユーザーがアプリにアクセスするときに実行する」ことです。

+0

私はこの "ユーザーとして実行中"と答えたときは利用できませんでした。 –

関連する問題