あなたのモバイル番号に無料の暗号融資清算警告をする
REFERAL ALERT
If you would like to take the loan against your crypto give celsius a chance, use this signup promo https://celsiusnetwork.app.link/149806af89 you get $40 and I get $40, more about it here
その結果、私はBitcoin価格のためのオンライン警報のためにgoogledしました、そして、私はCryptocurrencyalertingを見つけました.しかし、私は無料の電話の呼び出しのアラートサービスを取得しないキャッチは、代わりに電子メールを得た.米国とカナダの外では、いずれかの呼び出しやSMSを取得するには、プロの計画を持っている必要があります.それで、私はなぜ価格が条件に会ったとき、cron仕事を作成して、呼び出しをすると思いませんでした.
技術スタック
展開スタック
Deta.sh 我々が我々のcron仕事を走らせる無料の雲プロバイダーです.DETAにはまだ有料プランはない.ので、コードを自由に実行できます.無料で無料ホスティングやサービスプロバイダを探検するFree-for-dev
の暗号化を開始しましょう
1 .アカウントの作成
まず、DETAで無料アカウントを作成します.あなたがアカウントを持っていたならばweb.deta.sh エンドポイント.
2 .ローカル開発の設定
DETAで提供される指示に従ってください.千葉大here あなたのOSに基づくインストールとセットアップのために.CLIを設定したら、DETAにログインしてください.ターミナルからのshアカウント、それについてもっとhere
3 . cronジョブの配備
今すぐドキュメントをhere 単にあなたのダッシュボードで実行しているcron仕事を作成すること.この基本的な流れは、プラットフォームの概要を説明します.今まで我々はまだDETAを使って快適に感じています.shは、このようなプロトタイプのための素晴らしいプラットフォームです.
作成している間BitCoinNumアラートとしてあなたのサンプルアプリを命名します、私たちが後でこのサンプル・コードを
index.js
論理にminimum time interval is 1 min while running the cron job
4 .アカウントを作成する
REFERAL ALERT
use this referral link www.twilio.com/referral/eES7kf during sign up to get $10 and I get $10
これを通すlink , あなたの自由なトレイルアカウントについての制限と説明については、どのようにまだ作成されていない場合.
In the trial account you need to verify your phone number if you would like to receive a call or SMS.once you verify you will be able to receive calls that are made from code.
あなたのサインアップの後、あなたはtwilio console .
新しいtwilioプロジェクトを作成する
方法を学ぶhere .
6 .アカウントIDと認証トークンを取得する
あなたのダッシュボードでは、呼び出しから送信/SMSを送信するために必要なアカウントsidとauthトークンを取得します.
使節変数[ env ]の設定
コードに必要なすべての値は
.env
.このファイルはAPIキーとauthトークンとプログラムに必要な他のデータを保持します.このファイルを敏感にして、Githubレポにファイルをアップロードしないでください.このファイルを入手できますhere . env変数についてhere ..env
PROJECT_KEY=<Deta project key>
DETABASE=<Database name, provide what ever name you like>
MARGIN_CALL=<Your bitcoin margin call price in USD>
LIQUIDATION_CALL=<Your bitcoin liq call price in USD>
TWILIO_SID=<your Twilio sid>
TWILIO_AUTH_TOKEN=<your Twilio auth token>
TWILIO_PHONE_NUMBER=<Twillo phone number with country code>
TWILIO_MESSAGE_LIQ=Bitcoin price is at liquidation call
TWILIO_MESSAGE_MARGIN=Bitcoin price is at margin call
PHONE_NUMBER_WITH_COUNTRY_CODE=<Phone number to which you want to receive a call, with Countrycode>
There should not be space after the equals sign
SECRET=123 //no space after equals
SECRET= 123 //space after equals, not accepted
プレースホルダのテキストを実際の値に置き換えます.Envファイルは、実行中にこれらの値をコードに反映するように次のコマンドを適用します.そのコマンドなしで将来的に値を更新する場合は、コードに反映されません.
deta update -e .env
8 .論理の適用
前のステップ[ 3 ]では、サンプルコードを持つDETAプロジェクトを作成しました
index.js
ファイル.今必要なのは、ファイルのソースコード/内容をすべてノードに置き換えることです.以下のJSコード.私は、コード自体のコメントをして、あなたにその論理のその部分がしようとしていることを考えさせます.8.1インデックスの更新。jsファイル
const { app, Deta } = require("deta");
const axios = require("axios");
// add your Project Key
const deta = Deta(process.env.PROJECT_KEY);
//
// Envorment Varaibles
const db = deta.Base(process.env.DETABASE);
const accountSid = process.env.TWILIO_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require("twilio")(accountSid, authToken);
const marginCall = process.env.MARGIN_CALL;
const liquidationCall = process.env.LIQUIDATION_CALL;
const PhoneNumber=process.env.PHONE_NUMBER_WITH_COUNTRY_CODE;
let btcprice = 0;
// define a function to run on a schedule
// the function must take an event as an argument
app.lib.cron(async (event) => {
console.log("CRON running @ " + new Date().toLocaleTimeString());
const resp = await getBitcoinPrice();
const data = resp.data;
console.log("Current BTC price ===>", data.bitcoin.usd);
btcprice = parseInt(data.bitcoin.usd);
//btcprice = 23000; this variable holds the btc price at that moment
// hascalled is the key in the database, which stores if phone call made for liquidation/Margin conditions when the predefined criteria met.
// Suppose if BTC price met Margin condition then a call will be made , once its made,the code is not going
// to make a another call in the very next run even the condition satisfied.
// querying the DB for the key `hascalled`
let hasCalled = await db.get("hascalled");
console.log("values from db for the key named hascalled is -->", hasCalled);
if (hasCalled == null) {
// Runs for the very first time
// initally set margin and liq to false for the key 'hascalled' in db
const insertedkey = await db.put(
{ margin: false, liq: false },
"hascalled"
);
hasCalled = insertedkey;
}
//_BTCValidation_Block_Margin
if (hasCalled.margin == false) {
// This block will get executed only if there was no liquidation call not made yet
await _BTCValidationMargin();
}
//_BTCValidation_Block_Liquidation
if (hasCalled.liq == false) {
// This block will get executed only if there was no liquidation call not made yet
await _BTCValidationliquid();
}
});
const _BTCValidationMargin = async () => {
if (btcprice < marginCall && btcprice > liquidationCall) {
await getCallfromTwillo(process.env.TWILIO_MESSAGE_MARGIN, PhoneNumber);
const updateState = await db.update({ margin: true }, "hascalled");
console.log("DB UPDATED For Margin --->", updateState);
}
};
const _BTCValidationliquid = async () => {
if (btcprice < liquidationCall) {
await getCallfromTwillo(process.env.TWILIO_MESSAGE_LIQ, PhoneNumber);
const updateState = await db.update({ liq: true }, "hascalled");
console.log("DB UPDATED For Liquid --->", updateState);
}
};
const getCallfromTwillo = async (msg, _to) => {
const call = await client.calls.create({
twiml: `<Response><Say>${msg}</Say></Response>`,
to: _to,
from: process.env.TWILIO_PHONE_NUMBER,
});
console.log(call.sid);
};
const getBitcoinPrice = async () => {
try {
return await axios.get(
"https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=USD"
);
} catch (error) {
console.error(error);
}
};
module.exports = app;
8.2プロジェクト依存の更新
私たちの論理コードは2つのNPM依存性に依存します.
AXIOS
and TWILIO
.インストールするには、次のコマンドを端末に適用します.npm i axios twilio
最後に論理を展開する
ルートディレクトリで端末を開き、次のコマンドを適用してローカルソースコードをリモートに展開します
deta deploy
配備について詳しく知るhere .ログ用チェックバイザー
データ.は、
Visor
生産コードのロガー種である機能.バイザーについて詳しく知るhere プロジェクト構造
📦ビットコロン
┣ 📂.データ
┃ ┣ 📜進捗情報
┃ ┗ 📜州
┣ モジュール名
┣ 📜.env
┣ 📜インデックス.js
┣ 📜パッケージロック.JSON
┗ 📜パッケージ.JSON
12 . detaベースリセット
あなたが選択することによってそうすることができるDBでキーをリセットしたいならば
Base
あなたのdetabaseダッシュボードのセクション.次のようなイメージが表示されますそのキーの値をチェックすることもできます.次の実行は、更新された値
これを使うgithub repo 更なる参照のために
⭐⭐⭐ 楽しいコーディングを持っている!⭐⭐⭐
時間をありがとう.🐸
Reference
この問題について(あなたのモバイル番号に無料の暗号融資清算警告をする), 我々は、より多くの情報をここで見つけました https://dev.to/swapnachippagi15/make-a-free-crypto-loan-liquidation-alert-to-your-mobile-number-2n8gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol