私の質問は、 Henrique Abreuによって公開された電子メール テンプレートとして使用するために Google ドキュメントを HTML に変換する際の問題に対する回避策の使用に関するものです。Google Apps Script イシュー トラッカーにIssue 585として登録されています。
私は 1 年間のほとんどの間、次のコードを使用してきましたが、醜い認証シナリオ (つまり、自動認証システムが機能しない) を除けば、問題なく動作しています。
function getDocAsHtml(docId){
var url = 'https://docs.google.com/feeds/download/documents/Export?exportFormat=html&format=html&id=';
var auth = googleOAuth_('docs',url+docId);
return UrlFetchApp.fetch(url+docId,auth).getContentText();
}
function googleOAuth_(name,scope) {
var oAuthConfig = UrlFetchApp.addOAuthService(name);
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey('anonymous');
oAuthConfig.setConsumerSecret('anonymous');
return {oAuthServiceName:name, oAuthUseToken:"always"};
}
私の問題は、最近の新しい承認が機能しなくなったことです。そのため、私が使用している既存のスプレッドシートは引き続き機能し、メールを正しく送信できます。ただし、新しいスプレッドシートを作成してコードをインポートすると、承認メカニズムがトリガーされます [1]。
問題は、以前は権限を付与したときにデバッガーの承認ダイアログが消えてシステムが機能していたのに対し、今ではダイアログが単に再表示されることです。スプレッドシートのメニューからコードパスを実行しようとすると、代わりに一般的な「おっと!認証が必要です」というダイアログが表示されます [1]。
これが長い間浮かんできた問題の醜い回避策であるという事実はさておき、この回避策が機能しなくなるために何が変更されましたか? 別の解決策はありますか?
[1] 残念ながら、まだ画像をアップロードすることはできませんが、Issue Trackerを参照してください。ここに、私が話しているエラーと認証ダイアログの例を含む画像が添付されています。