アドレスラインの値と、getId() を使用したときに取得する ID の違いは何ですか? たとえば、あるドキュメントのgetId()
値は次のとおりです。
t8K_TLQPmKzgB72pY4TblUg
アドレスラインのキーは次のとおりです。
0Amu7sNvd2IoudDhLX1RMUVBtS3pnQjcycFk0VGJsVWc
これまでにわかったことは、base64 で getId をエンコードすると、アドレスラインのキーの最後の部分が多かれ少なかれ得られるということです
(base64Encode(t8K_TLQPmKzgB72pY4TblUg) = dDhLX1RMUVBtS3pnQjcycFk0VGJsVWc=).
0Amu7sNvd2Iou
しかし、この部分も古い文書では異なる印象があるため、何の略かはまだわかりません 。そのため0Amu7sNvd2Iou
、最初にずっと使用してキーを組み合わせることはできません
これを知る必要がある理由: 私のスクリプトでは getId メソッドを使用していますが、ID を手動で入力するユーザーもいます (アドレスラインのキーから ID をコピーして貼り付けるだけです)。その結果、同じドキュメントを参照しているにもかかわらず、それらを比較しようとすると、完全に異なるように一致させることができません...
この問題に光をもたらしてくれてありがとう
edit @taras: キーと ID を使用してドキュメントを開くこともできます。1 つのドキュメントに 2 つの異なる ID があるのは奇妙です。たとえば、誰かがアドレスラインからドキュメントにコピーペーストした値が、私が開いたファイルと同じかどうかを比較したい場合、同じファイルであっても true を取得しません
var keyFromHeadline = "0Amu7sNvd2IoudDhLX1RMUVBtS3pnQjcycFk0VGJsVWc"
var id = SpreadsheetApp.getActiveSpreadsheet.getId();
if (keyFromHeadline==id) Browser.msgBox("blabla")
したがって、2つの異なる値の理由と、それらを一致させる方法に興味があります