クリプト

カスタム 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
はるか先生's icon'
  • はるか先生
  • @haruka
ブロックチェーンの技術ビジネス/dAppsとProtocol周りが得意/ブロックチェーンの技術関連の寄稿

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

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

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

Like token Tip token
61.20 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

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

Like token Tip token
236.30 ALIS
Eye catch
クリプト

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

Like token Tip token
44.10 ALIS
Eye catch
クリプト

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

Like token Tip token
947.13 ALIS
Eye catch
クリプト

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

Like token Tip token
40.40 ALIS
Eye catch
クリプト

クリプトスペルズで入手したMCHCを引き出す方法

Like token Tip token
196.20 ALIS
Eye catch
クリプト

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

Like token Tip token
30.03 ALIS
Eye catch
クリプト

バイナンスの信用取引(マージン取引)を徹底解説~アカウントの開設方法から証拠金計算例まで~

Like token Tip token
3.50 ALIS
Eye catch
クリプト

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

Like token Tip token
121.79 ALIS