2

こんにちは
私の問題は次のとおりです: Google カレンダーでイベントを作成できる小さな Web ページを作成したいと思いますが、いくつかの制限があります。私の場合、フラットメイトがこのカレンダーを編集して、洗濯機を予約することができました。この予約は重複することはできません。また、私たち全員が使用できる日数も限られています。プライベート カレンダー
を作成し、リクエストを検証するスクリプトを作成しました。問題がなければカレンダーにイベントを追加します。このスクリプトは私として実行されます(私だけがこのカレンダーを編集する権限を持っているため)。しかし、このスクリプトを実行するユーザー (私またはフラットメイトの 1 人) の情報を取得する際に問題があります。クラス Session には getActiveUser() と getEffectiveUser() の 2 つのメソッドが含まれていますが、アクティブ ユーザーは機能しません (プライバシー保護ポリシーのためだと思います)。しかし、Web にアクセスするユーザーとして実行される別のスクリプトを作成すると、アクティブ ユーザーを取得できます。
同じサイトに埋め込まれたこの 2 つのスクリプト間で何らかの方法で通信できるかどうかを知っている人はいますか? あるスクリプトから別のスクリプトにアクティブ ユーザーのメールを渡したい。または、この問題を解決するためのより良い解決策を知っていますか?

よろしくアダム

4

2 に答える 2

3

お気づきのように、スクリプトにアクセスして電子メールを取得するユーザーとしてスクリプトを実行するように設定する必要があります。次に、カレンダーに直接アクセスする代わりに (明らかにできません)、公開された別のスクリプトを呼び出すことができますが、自分自身として実行すると、「表示」スクリプトからこの要求を受け取り、カレンダー イベントを作成する匿名アクセスが許可されます。

この「バックグラウンド」スクリプトを公開したら、その URL を取得し、UrlfetchApp.fetch呼び出しで使用します。post次に、パラメーターを url パラメーターとして (またはの代わりに使用する場合はペイロードでget) 渡します。

バックグラウンド スクリプトはContentServiceを使用して、呼び出し元のスクリプトに適切な戻り値を与えることさえできます。

于 2012-11-14T01:03:33.257 に答える
0

確かにそうすることができますが、それはあなたが望むほど単純ではありません。管理者レベルのスクリプトで、他のスクリプトに応答する Web サービスを実行します。ユーザー認証ができないのでハッキングされる可能性はありますが、これは洗濯機です!

于 2012-11-14T00:31:58.200 に答える