search
クリプト

カスタム ALISランキングサイトの作り方(2)

はるか先生's icon'
  • はるか先生
  • 2018/11/17 12:23
Content image

今日はスプレッドシートにデーターを貼り付けところまで行きましょう。前回の講座はこちら





前回はGoogle Apps Script(GAS)を使い、ALISのAPIをたたいてデータを取得するところまでできました。このデータをスプレッドシートに貼り付けましょう。


前回のコードはこちら

function getAlisPopularArticle(){

var response = UrlFetchApp.fetch("https://alis.to/api/articles/popular?limit=100&page=1").getContentText();

var results = JSON.parse(response);

Logger.log(results);
}


今回は原理を説明しながら少しずつコードをつくりあげていきましょう。まずスプレッドシートを使うにはスプレッドシートのIDが必要になります。これはスプレッドシートのURLの一部になっていますのでそのIDを手に入れます。


https://docs.google.com/spreadsheets/d/1D0PQSWSZQpeuxklUTg8ix_MTMIq0K5rlqD8y8QZC9-c/edit#gid=0


1D0PQSWSZQpeuxklUTg8ix_MTMIq0K5rlqD8y8QZC9-c で表記された乱数のような箇所がそれに当たります。それぞれで準備した数値を取得しましょう。これはこの講座用につくったシートのIDです。


次にスプレッドシートは複数のページで構成されています。しっかりとページまで指定する必要があります。操作するための準備を行います。

そのために下記の変数を準備しましょう

var mySpread = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxx");
var mySheets = mySpread.getSheetByName("シート1");

シート1は特に名称を変更しないと記載されるページの名前です。この2つのコマンドで準備した mySheets を使うと、シートを操作することができます。

それぞれのセルに書き込むには下記のコマンドを実行すれば可能です。この

mySheets.getRange( X, Y ).setValue( データ );

セルは X,Yで指定し、その中に入れるデータをSetValueにて指定してあげます。


次にALISから取り出したデーターについてお話しましょう。データはJSON形式で取得されています。JSON形式というのはラベルのついた箱にデータを格納する方式だと思ってください。

箱のラベルを指定すると任意のデーターを取り出せる便利なデーター表記方法です。

ただデーターが大きくなるとややこしくなりますが一生懸命眺めていればだんだんわかってきます(すいません。うそです)。ややこしいことはPCにやらせましょう。


ALISから取得されたデーターは下記のような表記です。意味わかりませんね。

Content image


データを下記のWEBで解読しましょう。。


解析するとこのように関係性を見やすい形でしめしてくれます。この緑の表記を使うとJava Scriptにてデータを取り出すことができるようになっています。


Content image


データはresultsにすべて格納しています。resultsから、必要なデーターを取り出していきます。


この2つの知識を組み合わせて取得したデーターをシートに書き込むコードがこちらになります


function getAlisPopularArticle2(){
var sheetidx ="シートIDを入れる";
var mySpread = SpreadsheetApp.openById(sheetidx);
var mySheets = mySpread.getSheetByName("シート1");


var response = UrlFetchApp.fetch("https://alis.to/api/articles/popular?limit=100&page=1").getContentText();
var results = JSON.parse(response);
Logger.log(results);

var count = results["Items"].length;

for (i=0;i<count;i++){
str = mySheets.getRange(i+1, 1).setValue(i+1);
str = mySheets.getRange(i+1, 2).setValue(results["Items"][i]["article_id"]);
str = mySheets.getRange(i+1, 3).setValue(results["Items"][i]["user_id"]);
str = mySheets.getRange(i+1, 4).setValue(results["Items"][i]["title"]);
str = mySheets.getRange(i+1, 7).setValue(results["Items"][i]["topic"]);
str = mySheets.getRange(i+1, 8).setValue(results["Items"][i]["eye_catch_url"]);
}

}


新たに追加した箇所をハイライトしています。

複数の記事分のデータを順番に書き込むためにループを使用しています。データ数は results["Items"].length にてデータ長から抽出しています


こちらを先日紹介したスクリプトエリアに書き込み。再生ボタンを押せば実行ができます。

実際に実行すると下記のようにランキング順に記事の情報が書き込まれます。

実際のシートもこちら からみれます

Content image



みなさんデータをスプレッドシートに書き込めるようになりました。


次回はさらにそれぞれの記事のデーターを深掘りする。またデーターのソートを覚えましょう。

続きはこちら



公開日:2018/11/17
獲得ALIS:49.79
Article registration Article registration
はるか先生's icon'
  • はるか先生
  • @haruka
ブロックチェーンの技術ビジネス/dAppsとProtocol周りが得意/ブロックチェーンの技術関連の寄稿

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

CryptoChick 2020/03/05
Like token Tip token
44.10 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

池田らいく 2021/04/04
Like token Tip token
18.92 ALIS
Eye catch
クリプト

UNISWAPでALISをETHに交換してみた

Macky3216 2020/09/28
Like token Tip token
40.40 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

暗号資産ジョシ校生 蟻巣 2021/06/30
Like token Tip token
30.03 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

nnppnpp(んぺー) 2021/09/08
Like token Tip token
46.60 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

kaya 2021/10/06
Like token Tip token
61.20 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

ゆうき 2021/05/17
Like token Tip token
236.30 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

KTAG 2021/02/22
Like token Tip token
54.01 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

大田コウキ 2021/04/06
Like token Tip token
947.13 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

暗号資産ジョシ校生 蟻巣 2021/07/14
Like token Tip token
32.32 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

otakucoin 2021/03/29
Like token Tip token
121.79 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Taka 2021/02/25
Like token Tip token
59.99 ALIS