質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Q&A

解決済

1回答

5495閲覧

GASでpdfを作成したいが、たまにエラーが出る

Sou23

総合スコア38

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

0グッド

0クリップ

投稿2022/05/08 04:10

前提

GASでPDFを作成するコードを書いています。
一度に複数枚作成すると、数枚作成したところでvar pdf= のところでエラーが発生しているとメッセージが出ます。

発生している問題・エラーメッセージ

Exception: Request failed for https://docs.google.com returned code 429. Truncated server response: <!DOCTYPE html><html lang="ja"><head><meta name="description" content="ウェブ ワープロ、プレゼンテーション、スプレッドシート"><meta name="viewport" content="width=device-wid... (use muteHttpExceptions option to examine full response)

該当のソースコード

GAS

1var url = "https://docs.google.com/spreadsheets/d/" + key + "/export?gid=" + billsheetid + "&format=pdf&portrait=false&size=A5&gridlines=false&fitw=true&pagenumber=false&top_margin=0.15&bottom_margin=0.00&left_margin=0.15&right_margin=0.15"; 2var pdf = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' + token}}).getBlob().setName(name+".pdf"); 3 4//pdf保存 5 var folder = DriveApp.getFolderById("1k1bXln-8wFDsDoqrEKWtWiToS36f5TGm"); 6 var file = folder.createFile(pdf); 7 } //check if done 8

試したこと

該当コード前で進行を1秒待たせたり、スプレッドシートを更新したりしましたが同様でした。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Exception: Request failed for https://docs.google.com returned code 429.

ステータスコードが 429 なので、429 Too Many Requests ですね。

HTTP 429 Too Many Requests レスポンスステータスコードは、ユーザーが指定された時間内に多くのリクエストを送信した ("rate limiting") ことを示します。

全体のコードが不明ですが、連続して作成ということなのでおそらくアクセス頻度が多くて Google から拒否されているのでしょう。

Quotas for Google Services に記載されているどの制限に引っかかったのかはわかりませんが、アクセス頻度を少なくするしかエラーの解決方法はないと思います。

たとえば、1分待つなどにすると状況は変わりますか?

投稿2022/05/08 07:25

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sou23

2022/05/08 08:24

なるほど、ありがとうございます。 1分待たせるとこのエラーは出ませんが、5枚作成したところでタイムアウトしますのでやはりこれまで通りやるしかなさそうです。 ありがとうございました。
CHERRY

2022/05/08 08:33 編集

まあ、429 が出ない程度のインターバルを開けるしかないということです。 ステータス429が出ないインターバルが、5秒なのか10秒なのか30秒なのかそれ以上なのか判断できないので、長めの1分でどうなるかをまずは確認しました。 1分でもエラーになるので有れば、別の原因もあるのかもという点もありますので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問