したがって、基本的にタスクは非常に単純ですが、私の問題に対する実行可能な解決策は見つかりませんでした。私の Web サイト (現在は localhost) に巨大なアップロード スクリプトがありますが、すべての複雑さを必要なものだけに減らしましょう。
つまり、Google App Script を使用して 1 つのファイルを Google ドライブにアップロードし、その URL を受け取って var に保存し、後でその情報を関数で使用できるようにしたいと考えています。
問題は、Web サイトにすでにフォームがあることです。追加の HTML として script.google .com 内にフォームを追加したくないのですが、それをユーザーに送信します。入力は Google App Script に転送され、Google ドライブにアップロードされ、var に保存できる Web サイトへの URL が返されます。
今の問題は、すべてをまとめられないことです。
これは私のウェブサイトのフォームです (簡略化):
リーリーでは、Google ドライブに情報をアップロードして結果を取得するにはどうすればよいでしょうか? iFrame などを使用せずに Google App Script からデータをプッシュするにはどうすればよいですか?
###ありがとう!**** HTML が script.google .com にある場合の実際の例 ****
GS
リーリー apps.googlescript の
htmlリーリー
提案どおり、ここでプロセスを説明します。Web サイト www.example.com には、テキスト入力フィールドとファイル フィールドのあるフォームがあります。画像を入力し、それを例としてみましょう。ここで、送信を押すと、oAuth を使用せずに画像を Google ドライブにアップロードし (そのため、ここでは Google App Script が必要です)、テキスト フィールドに入力した名前を付けます。アップロードが完了したら、フォームでその情報を引き続き使用できるように、Google ドライブ画像の URL を Web サイトに返したいと考えています。返された URL を var に保存し、後でデータベースに保存したいと考えています。そのため、結果を自分の Web サイトに返す必要があります。
したがって、解決策は次のとおりです:
Web サイト上のフォームに情報を入力します -> Google アプリ スクリプトにリダイレクトします: Web サイトのフォーム フィールドの情報を取得し、ファイルを Google ドライブにアップロードし、テキスト入力エントリという名前を付けます -> Google ドライブの URL を次のように変更します最終結果 -> 最終 URL 結果を Web サイトにリダイレクトします -> URL 結果を var に保存し、Web サイト上の関数からの操作を続行します -> 最後に var の情報をデータベースに保存します ->仕上げる ###
------------------------------------------------- - - - - - - - - - - 編集: - - - - - - - - - ###
@Tanaike のおかげで、チャレンジの目標に近づいたので、どこで行き詰まったかを確認するために、今質問をコピーしています:あなたの例のスクリプトを使用してフォームを取得しました:
リーリー
Google スクリプトの場合:リーリー
今、何かをアップロードしようとすると、次のエラーが表示されます: CORS ポリシーを取得できませんでした。そこで、この部分を次のように変更し、no cors モードを追加しました:リーリー
これはうまくいきます。ファイルをアップロードしようと 2 回目に試行すると、次のエラーが発生します。構文エラー: 予期しない入力の終わりです
そこで、この行を変更し、res.json から括弧を削除しました。
リーリー
実際に有効なファイルをアップロードする 3 回目の試行では、コンソールの結果は次のようになります:
しかし、Google ドライブにはアップロードされたファイルがありません。どこかで何かが欠けています。フォルダーを作成してそこにファイルを置くとよいかもしれません。
ああ、もう 1 つの情報: Google アプリ スクリプトで doPost 関数を実行すると、次のように表示されます:
リーリー編集 2----------------------------------------------- --- --------
https://drive.google .com/uc?export=download&id=
fileIdをコードに追加しましたが、すべて正常に動作します。ファイルをアップロード中です。
ファイル test.mp3 をアップロードし、testdata という名前を付けるとします。 これが私たちが受け取ったものです:
リーリーファイルの URL を開くと、ブラウザはファイルをダウンロードしますが、その名前は testdata.mp3 ではなく testdata です。ファイルタイプの末尾がありません。
2 番目のタスク: リンクをクリックしたら、ブラウザでファイルを開きます。たとえば、mp3 ファイルの場合は、次のように Web ビューでサウンドを再生します。 https: / /files.freemusicarchive .org/storage-freemusicarchive-org/music/Creative_Commons/Dead_Combo/CC_Affiliates_Mixtape_1/Dead_Combo_-_01_-_Povo_Que_Cas_Decalo.mp3
ご指導いただければ幸いです。 ######P粉5127298622024-01-22 14:32:10
https://stackoverflow.com/a/63391363/1585523 回答には役立つヒントがたくさんあります。共有していただきありがとうございます。 POST ファイルに加えて、
も使用できます。クライアント上:index.html
リーリーサーバー上: Code.gs
リーリーこのメソッドを使用して、バイナリ情報を値として持つ JS オブジェクトなどの複合型を交換することもできます。
P粉2983052662024-01-22 13:48:47
あなたの目標は次のとおりだと思います。
この場合、Google Apps Script を使用して作成された Web アプリケーションで目的を達成できると思います。
###使用法:###Web Apps のサンプル スクリプトは Google Apps Script です。そこで、Google Apps Script プロジェクトを作成します。
https://script.new/
にアクセスしてください。この場合、まだ Google にログインしていない場合は、ログイン画面が開きます。そこで、Google にログインしてください。これにより、Google Apps Script スクリプト エディタが開きます。###2。スクリプトを準備します。 次のスクリプト (Google Apps Script) をコピーして、スクリプト エディターに貼り付けてください。このスクリプトは Web アプリケーションに適しています。
ファイルを配置するフォルダーIDを設定してください。
リーリー ###3。 Web アプリケーションを展開します。スクリプト エディターで、[公開] -> [Web アプリとして展開] を選択してダイアログ ボックスを開きます。
Google Apps Script を変更した後は、新しいバージョンに再デプロイしてください。このようにして、変更したスクリプトが Web Apps に反映されます。ご注意ください。
###結果:###
上記のスクリプトを実行すると、以下の値が返されます。ここから、ファイルの URL を取得できます。