0

Google サイトで Apps Script を使用しています。Oauth を使用してガジェットをアクティブ ユーザーとして認証し、アクティブ ユーザーのドキュメント リストを表示しようとしています。これについて質問する 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 options = { "method": "GET", "headers": { "GData-Version": "3.0" }, "oAuthServiceName" : "gDocs", "oAuthUseToken" : "always" };

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

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

どんな援助でも大歓迎です。

ありがとう、ジェームズ・クリム

4

5 に答える 5

1

3-legged OAuth を使用して認証を実行するには、ConsumerKey および ConsumerSecret として「anonymous」を使用する必要があります。

 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

于 2012-04-19T22:05:54.930 に答える
0

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

于 2013-11-21T15:49:52.903 に答える
0

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

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

そのアクションを実行するには承認が必要です。

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

于 2013-03-26T21:42:21.937 に答える
0

OAuth 部分の負担を軽減するGoogle Script OAuth ライブラリhttps://sites.google.com/site/scriptsexamples/custom-methods/google-oauthがあります。

また、現在開発中の DriveSrevice ライブラリのソース コードの一部は、Google スクリプトに欠けている点を補います。 https://sites.google.com/site/scriptsexamples/custom-methods/driveservice

于 2012-05-02T02:09:49.297 に答える
0

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

したがって、@claudio が (組み込みの DocsList を使用して) 提案することは不可能です。

Google Apps ドメイン (通常の消費者アカウントではない) について話している場合を除き、スクリプトの所有者はドメイン管理者ですその場合、彼は Google Docs List Data API を使用して、ドメイン上の任意のユーザーになりすますことができます。

いずれにせよ、このシナリオに関係なく、コンシューマ キーとシークレットは常に「匿名」である必要があります。

于 2012-04-20T02:59:40.130 に答える