🤠

OpenSeaのメタ情報の更新を自動化するスクリプトをGASで組んでみた

2022/12/10に公開

はじめに

dNFTを作る我らにとってはopenseaのmetadataの更新って結構めんどくさいですよね。
ユーザー側に依頼すんのもなんかなーって感じですし。。。

ということでGoogle Apps Scriptで自動化を組んでみました。


使い方

コントラクトアドレスに更新したいアドレスをいれ、idstartに開始番号、idendに終了番号を入れるだけです。


本番環境

function openseaMetadataRefreshScript() {
  // コントラクトアドレスの指定
  var contractaddress = "0xhonyahonyahonyahonya";

  // idの開始番号
  var idstart = 0;

  // idの終了番号
  var idend = 699;

  // metadataの更新を繰り返す
  for (var id = idstart; id <= idend; id++) {
    // HTTP リクエストを送信するためのオプションを指定する
    var options = { method: "GET" };
    // URLの指定
    var url = 'https://api.opensea.io/api/v1/asset/' + contractaddress + '/' + id + '/?force_update=true';
    // httpリクエストの送信
    var response = UrlFetchApp.fetch(url, options);
    // IDの更新終了終了メッセージ
    console.log('ID:' + id + 'の更新リクエストが完了しました。');
    // 1秒待機
    Utilities.sleep(1000);
  }
  // 全処理終了メッセージ
  console.log('全ての更新リクエストが終了しました。');
}

testnet

function openseaMetadataRefreshScript() {
  // コントラクトアドレスの指定
  var contractaddress = "0xhonyahonyahonyahonya";

  // idの開始番号
  var idstart = 0;

  // idの終了番号
  var idend = 699;

  // metadataの更新を繰り返す
  for (var id = idstart; id <= idend; id++) {
    // HTTP リクエストを送信するためのオプションを指定する
    var options = { method: "GET" };
    // URLの指定
    var url = 'https://testnets-api.opensea.io/api/v1/asset/' + contractaddress + '/' + id + '/?force_update=true';
    // httpリクエストの送信
    var response = UrlFetchApp.fetch(url, options);
    // IDの更新終了終了メッセージ
    console.log('ID:' + id + 'の更新リクエストが完了しました。');
    // 1秒待機
    Utilities.sleep(1000);
  }
  // 全処理終了メッセージ
  console.log('全ての更新リクエストが終了しました。');
}

最後に

GASのHTTPリクエストは上限やら1秒に1回という縛りがあるのでid数が多いのは結構時間かかります。
リビールの時とかに使っていただくと結構使いやすいんじゃなかろうかとは思っています。


宣伝

現在、ゾンビの女の子をテーマにしたプロジェクトやってます!
ぜひチェックしてください!
サイトはこちら
https://zonmus.com/
Discordはこちら
https://discord.com/invite/yyQJSzkTYR

Discussion