3

突然、公開スプレッドシートに直接投稿するこのフォームが停止しました。

<form action='https://drive.google.com/spreadsheet/formResponse?formkey=XXXXXXXXXXXXXXXX' method='post'>
<input type='text' name='entry.0.single' />
<input type='text' name='entry.1.single' />
[...]
</form>

スプレッドシートに関連付けられたフォームを介してそれを行うことができました:

<form action='https://docs.google.com/forms/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/formResponse' method='post'>
<input type='text' name='entry.YYYYYYYYYYY' />
<input type='text' name='entry.ZZZZZZZZZZZ' />
[...]
</form>

問題は、入力名がフォームごとに異なることです。これは、entry.0、entry.1 などの古い方法とは対照的です。これに対する回避策はありますか?

4

2 に答える 2

2

G は、スプレッドシートに直接投稿するためにフォームをバイパスするサードパーティのアプリを好まないということをどこかで読んだことを思い出します。堅牢な代替手段を得るには、単純な Apps Script または App Engine サーブレットを作成する必要がある場合があります。

于 2013-09-11T04:06:05.240 に答える
0

ここ数日、かなり長い間使用してきた 2 つの異なるフォームでこの問題に遭遇しました。私の場合、Google フォームの html から始めて、自分のサーバーが提供する自分のページに書き直しました。この質問を見て、新しいフォームのソースを確認し、アクション URL をフォームに貼り付けました。うまくいきませんでしたが、別の方法で。次に、すべての entry.x.single 名を entry.10000x 名に置き換えました。それでも問題が発生していました。しばらく時間がかかりましたが、最終的に失敗したエントリは型エントリであることに気付きました。生の Google フォームには、私が提供していたフォームのエントリのサブセットが含まれていました (そして、1 つのエントリが別のエントリに基づいて動的に更新されたため、最初にこの方法を使用したのです)。Google フォームに戻り、これらを入力タイプ = テキスト エントリに変更しました。それは何でも受け入れ、私はビジネスに戻りました。POST 応答は、スプレッドシートに保存されているフォームで Google に表示されるオプションのリストに対して検証されているようです。

私自身のサーバーから提供された別のフォームでは、問題はより単純に見えました。ここでも、エントリのサブセットのみを含む「選択」タイプのエントリがありました。Google が知っているエントリは問題ありませんでした。だから私は残りを追加しただけで、すべてが良かった. アクション URL も、entry.x.single 名も変更していないことに注意してください。これが機能する理由はわかりませんが、少なくとも私にとっては機能します。

于 2014-10-11T03:45:56.277 に答える