Google Apps Script を使用して、(Google フォームを使用せずに) ファイルを Google ドライブに直接アップロードします
P粉785905797
P粉785905797 2024-01-21 15:39:43
0
2
592

したがって、基本的にタスクは非常に単純ですが、私の問題に対する実行可能な解決策は見つかりませんでした。私の 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粉785905797
P粉785905797

全員に返信(2)
P粉512729862

https://stackoverflow.com/a/63391363/1585523 回答には役立つヒントがたくさんあります。共有していただきありがとうございます。 POST ファイルに加えて、

も使用できます。

クライアント上:index.html

リーリー

サーバー上: Code.gs

リーリー

このメソッドを使用して、バイナリ情報を値として持つ JS オブジェクトなどの複合型を交換することもできます。

いいねを押す +0
P粉298305266

あなたの目標は次のとおりだと思います。

  • あなたのウェブサイトは Google アカウントに関連付けられていません。独立しています。
  • Web サイトにはファイルをアップロードするためのフォームがあります。
  • ユーザーがフォームを送信したときに、承認なしにファイルを Google ドライブにアップロードし、アップロードされたファイルの Google ドライブ上の URL を返したいと考えています。
  • 「データベース」に関しては、これはあなたのデータベースです。取得したファイルの URL をクライアントの「データベース」に置きます。

この場合、Google Apps Script を使用して作成された Web アプリケーションで目的を達成できると思います。

###使用法:###

以下の処理を行ってください。

###1。 Google Apps Script用の新しいプロジェクトを作成します。

Web Apps のサンプル スクリプトは Google Apps Script です。そこで、Google Apps Script プロジェクトを作成します。

直接作成したい場合は、

https://script.new/

にアクセスしてください。この場合、まだ Google にログインしていない場合は、ログイン画面が開きます。そこで、Google にログインしてください。これにより、Google Apps Script スクリプト エディタが開きます。

###2。スクリプトを準備します。 次のスクリプト (Google Apps Script) をコピーして、スクリプト エディターに貼り付けてください。このスクリプトは Web アプリケーションに適しています。

サーバー側: Google Apps Script

ファイルを配置するフォルダーIDを設定してください。

リーリー ###3。 Web アプリケーションを展開します。

スクリプト エディターで、[公開] -> [Web アプリとして展開] を選択してダイアログ ボックスを開きます。

「アプリケーションの実行:」

    「I」
  1. を選択します。
  2. これにより、スクリプトは所有者として実行されます。
      「アプリにアクセスできる人」の場合:
    • 「匿名でも誰でも」を選択します。
  3. 新しい「プロジェクト バージョン」として「デプロイ」ボタンをクリックします。
  4. 「認証が必要です」ダイアログボックスが自動的に開きます。 「権限を表示」をクリックします。
  5. アカウントを選択してください。
  6. 「このアプリは検証されていません」の横にある「詳細」をクリックします。
    1. プロジェクト名
    2. (安全ではありません) に移動」をクリックします
    3. 「許可」ボタンをクリックします。
    4. 「OK」をクリックします。
    5. Web アプリケーションの URL をコピーします。
    https://script.google.com/macros/s/
  7. /exec
  8. のように。
  9. Google Apps Script を変更した後は、新しいバージョンに再デプロイしてください。このようにして、変更したスクリプトが Web Apps に反映されます。ご注意ください。
    • ###4。クライアントからサーバーにファイルをアップロードします。
    クライアント: HTML と Javascript
次のスクリプトに Web アプリケーションの URL を設定してください。

リーリー

クライアント側では、ローカル PC からファイルを選択してボタンを押すと、Web アプリ (サーバー側) のデータが取得されて、ファイルが Google ドライブにアップロードされます。

###結果:###

上記のスクリプトを実行すると、以下の値が返されます。ここから、ファイルの URL を取得できます。
    リーリー ###知らせ:###

      Web アプリのスクリプトを変更する場合は、Web アプリを新しいバージョンに再デプロイします。これにより、最新のスクリプトが Web Apps に反映されます。ご注意ください。
    • 上記のスクリプトでは、最大ファイル サイズは 50 MB です。この段階では、Google Apps Script の最大 BLOB サイズは 50 MB であるためです。
    • 参考文献:

      インターネット アプリケーション
    • Google Apps でウェブ アプリ スクリプトを最大限に活用しましょう
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート