bitflyer.comでAPI使ってみたよ、遅っいぞ。

20200605

Logging

bitflyer.comでAPI使ってみたよ、遅っいぞ。自分の回線が悪いのかわからないけれど、データの結果が返却されるまで2?4分ぐらい時間がかかるのです、レスポンスが遅い恐ろしく遅いのだ。
まるでオイラのようだ(´・ω・`)。

ccxtとかも使ってみたら・・アレ大丈夫?
PHPで再度を自作してみた「body部分は間違っているかも。いや間違っているよ・・・?。」とぶつぶつ言いながら制作。

追記:
PHPのレスポンスが遅いのは、LinuxのOSをゴニョゴニョしたからでした。OS入れ直して再度コードを走らすと普通にレスポンスが返ってきました、、、。

返ってきたときには「ほんと、何やねん」とボヤきました?。

PHPのソースコードを記載します。

<?php
date_default_timezone_set('Asia/Tokyo');
class Api_Bitflyer_Class
{
    var $basic_url = "https://api.bitflyer.com";
    public function __construct()
    {
        require_once __DIR__."/../common/init.php";
    }
    /**
     * @param timestamp $timestamp
     * @param string $path
     * @param string $method
     * @param string $body
     */  
    public function api_set($timestamp = "", $path = "/v1/me/getbalance", $method = "GET", $body = "")
    {
        $url = $this->basic_url . $path;
        $data = strtolower($method) === "get" ? $timestamp . $method . $path : $timestamp . $method . $path . (function ($body) {
            if (!is_array($body)) {
                $body = [];
            }
            return json_encode($body);
        })($body);
        $access_singn = hash_hmac("sha256", $data, APISECRET);
        $headers = [
            'ACCESS-KEY: ' . APIKEY,
            'ACCESS-TIMESTAMP: ' . $timestamp,
            'ACCESS-SIGN: ' . $access_singn,
            'Content-Type: application/json',
        ];
        return new class($url, $method, $headers, $body)
        {
            var $url = "";
            var $method = "";
            var $headers = "";
            var $body = "";
            /**
             * @param string $url
             * @param string $method
             * @param string $headers
             * @param string $body
             */              
            public function __construct($url, $method, $headers, $body)
            {
                $this->url = $url;
                $this->method = $method;
                $this->headers = $headers;
                $this->body = $body;
            }
            public function api_run()
            {
                $curl = curl_init();
                curl_setopt($curl, CURLOPT_URL, $this->url);
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $this->method);
                curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers);
                strtolower($this->method) == "post" ? curl_setopt($curl, CURLOPT_POSTFIELDS, $this->body) : "";
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                $response             = curl_exec($curl);
                // $response_info        = curl_getinfo($curl);
                // $response_code        = $response_info['http_code'];
                // $response_header_size = $response_info['header_size'];
                curl_close($curl);
                print date("Y/m/d H:i:s");
                var_dump(json_decode($response));
                // var_dump($response_code);
                // var_dump($response_header_size);
            }
        };
    }
}

$Api_Bitflyer_Class = new Api_Bitflyer_Class();
$Api_Bitflyer_Class->api_set(time(),"/v1/me/getbalance","GET","")->api_run();

PHPとは別にnode.jsでリアルタイムAPIを使用した動画を貼っときます。

bitflyerAPI_PHPcode

なお、よく読んだほうが良いAPI Documentation

bitFlyer Lightning では、HTTP API と Realtime API の 2 種類の API を提供しています。

尚、ビットコイン高くて買えないので、ビットコインの売買したい知人は格安で自動売買のシステム作りますよ。

タグ

2, 39, 4, API, Asia, bitFlyer, body, ccxt, class, com, date, default, Linux, lt, OS, php, set, timezone, Tokyo, アレ, おいら, コード, ゴニョゴニョ, ソース, データ, とき, ほんと, レスポンス, , 再度, 制作, 回線, 時間, 普通, 結果, 自作, 自分, 記載, 返却, 追記, , 部分,


kabu.com APIする前にビットフライヤーライトニングで頑張ってみるのが良いかも、自動売買のはなし。

20200604

Logging

kabu.com APIする前にビットフライヤーライトニングで頑張ってみるのが良いかも、自動売買のはなしです。そんなに単純なものではないとは思うものの、プログラミング書けばある一定の利益を得ることができそうな気がするので近々、じぶんもAPIを使用してプログラミングしてみます。上手く動作してもコードを公開することはないとは思います。ただしコードの仕組みなどは公開するかもしれません。もしくはコードの一部分とかは公開すると思います。

18.仮想通貨自動売買プログラムを作る(5) | TypeScript入門講座

ちなみに動画で仮想通貨自動売買の方法をレクチャーしているサイトがあります、世の中、、、どうなっていくのだろうかと思ってしまう。仮想通貨自動売買で上手く利益を得ることが出来たらkubu.com APIを使用して取引を使用と思ってます、収入がないと来月からマイナスになる一方なので。手当り次第、収入に繋がるものは手を動かしてトライしていきます。

追記1:kubu.com APIは個人は駄目だそうです、ビットコインの方は高くて買えないのでロジックだけ作りました。

おそらくシンプルなコードでもずっと動作させていれば収益化できるはずです、但しそのコードを改善させようとしてコードを書き換えたりすると逆に損するような気がしますね。そんな事もあるのか、APIは複数申請が可能みたいです。

映画『ハミングバード・プロジェクト 0.001秒の男たち』予告編

なお、映画ハミングバード・プロジェクトにも取り上げられているけど、取引には処理速度はかなり大事なような気がします。

追記2:
ビットコインの価格が高いので断念しました?詳しくは下記参照。

https://zip358.com/?p=9310

タグ

API, com, kabu, kubu, コード, こと, サイト, じぶん, トライ, はなし, ヒット, フライヤー, プログラミング, もの, ライトニング, レクチャー, 一定, 一方, 一部分, , , 仮想, 使用, 公開, 利益, , 動作, 動画, 単純, 収入, 取引, 売買, , 方法, 来月, , 自動, 通貨,


JavaScriptを再勉強しているのだが、ある疑惑が!?

20200603

Logging

JavaScriptを再勉強しているのだが、ある疑惑が生まれた。それはjqueryで良いじゃねぇという疑惑。自分はjsよりjqueryの方が使いやすく感じる。まぁいまの所なのかもしれないが・・・使いやすいですね。

jqueryはいろいろなブラウザ上で動くことをサポートしてくれるライブラリとして普及したのだけど、IEが消滅時効状態のいまではシェア率は下がっていてネイティブJSが良いじゃねぇという動きですが・・・。いやいやjqueryの方が楽だしコードはあまり書かなくて良い。特にイベント処理時のデータの複数受け渡しでは、今の所、JavaScriptよりjqueryの方が楽だと思います。

あと非同期通信とかもね。ajaxで良いじゃねぇとか思いますよ。
最後に動画のJSコードを載せときますね。

document.getElementById("my-textarea").addEventListener("input",()=>{
	document.getElementById("view").innerText = document.getElementById("my-textarea").value;
});

タグ

addEv, ajax, document, getElementById, IE, javascript, jquery, JS, my-textarea, quot, イベント, いま, いやいや, いろいろ, コード, こと, サポート, シェア, それ, データ, ネイティブ, ブラウザ, ライブラリ, , 処理, 勉強, 動画, 同期, , , 時効, 普及, 最後, 消滅, 状態, 疑惑, 自分, 複数, 通信,


ダラダラとLaravel構築してみた解説あり(*´?`*)

20200602

Logging

Laravelをインストール手順を動画にしました。いらない手順が含まられていますが・・・。気にしないでください!!

ちなみに適当な動画は無音ですみません。尚、PHPがタイムアウトしてComposerがインストール出来ない場合はポートの解放が出来ているか、IPv6が有効になっていないかなど調べてくだいね。なお、自分の場合、IPv6が有効になっていてダウンロードが出来ない状態でした(´・ω・`)。

お世話になったサイトはこちらです。こちらの手順通り対応しvirtualBOX、いや仮想環境を再起動してあげてください。そうするとすんなりダウンロード出来ます。それでもダウンロード出来ない場合はアドレスからgetcomposer.orgからダウンロードする手段もありますが、恐らくその後のComposerインストールで躓くはずです。サーバー環境を見直すと良いでしょう。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
composer create-project laravel/laravel example-app

最後にLaravelのドキュメントのリンクを貼っときますm
https://laravel.com/docs/8.x/installation

タグ

6, Composer, getcomposer, https, IPv, Laravel, org, php, server-me, virtualBOX, www, アドレス, いね, インストール, お世話, くだ, こちら, サーバー, サイト, タイムアウト, ダウンロード, パス, ポート, 仮想, 再起動, 動画, 場合, 対応, , 手段, 手順, 有効, 構築, , 無音, 状態, 環境, 自分, 解放, 解説, 適当,


テストサーバーを適当に立ち上げる。

20200602

Logging

テストサーバーを適当に立ち上げる方法を録画してみました。
最初の動画はselinux 無効などはしていませんが、それをしないと誤作動というか上手く動かなくなるのでご注意を!!

ちなみにファイヤーフォールの設定などはググりながらお勉強ください。動画ではそこらへんもググりながら設定しています。あんまりサーバー系のコマンド覚えていないだよね。サーバーの考え方がなんとなく頭に入っている程度です。

ちなみにこれをローカルサーバーじゃなくてVPSでサーバーとして公開するならばWAF(わふ)とかその他、いろいろな設定をすることをオススメします。尚、さくらレンタルサーバーのブログはいいよ!?

尚、cgi-binでPHPのバージョンを分ける動画は、ちょっと見るだけでは出来ないかもしれませんが・・・ヒントを2、3書いときますね、あとコマンドも例として記載します。

まずcentOS8の最小インストールでPHP7.4系を使う場合は鬼車(おにぐるま)が入っていないので入れなければなりません。そんな具合にインストールしていないものはガンガン入れていこうぜという具合です(*´?`*)

dnf --enablerepo=PowerTools install oniguruma-devel

これを全部入れることができればPHPの違うバージョンでも何とかなりますよ。ちなみにPHP5系とかは下記のようなものを入れるのであって、同じじゃないよ。同じものも有るけれど記述が違うので注意してくださいね。過去のものはググれば結構表示されます。

./configure \
--prefix=/var/www/php-7.4.6  \
--with-config-file-path=/var/www/php-7.4.6 \
--with-config-file-scan-dir=/var/www/php-7.4.6 \
--with-zip \
--enable-gd \
--with-jpeg \
--with-xpm \
--with-zlib \
--with-gettext \
--enable-bcmath \
--enable-sockets \
--enable-opcache \
--enable-exif \
--with-curl \
--with-bz2 \
--enable-calendar \
--enable-inline-optimization \
--with-expat \
--enable-mbstring \
--enable-mbregex \
--with-freetype \
--with-openssl \
--with-mysqli \
--with-pdo-mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock

最後にcgi-binってインストールしたPHPのphp-cgiを参照しているだけです。シンボリックリンクで!!!

あとは・・・。
Apacheグールプにオリジナルのユーザーを追加してあげて!!。尚、最初の動画はrootで動かしているだけどね。基本的にrootではなくユーザー追加してそれをApacheグールプ追加するのさってヒントも書いときますね。

タグ

2, , 7.4, 8, centOS, cgi-bin, php, selinux, VPS, WAF, いろいろ, インストール, おすすめ, お勉強, こと, コマンド, これ, ご注意, サーバー, さくら, そこら, その他, それ, テスト, バージョン, ヒント, , ファイヤー, フォール, ブログ, べん, レンタル, ローカル, 使, , 公開, 動画, 方法, 最初, 最小, 無効, 程度, 考え方, 記載, 設定, 誤作動, 適当, 録画, ,


js初心者さんのお勉強:思いつき写経。

20200601

Logging

js初心者さんのお勉強をvlogとして昨日撮りました。もっと簡略化できることはあるのだが、敢えてやらない自分がいます。自分のモットーに初心者さんでもわかるコードをという考えがあります。初心者さんに分かりやすいと言うことは馬鹿な自分にも分かりやすいという事です。ぱっと見て読みやすければ良いという事です。javascriptを本当に1から勉強中なんですね。本当に右も左も分からないのでググりながらお勉強しています。知らないと言ってもプログラミングの基本は知っているのでJS用の書き方やお作法を覚えているというような感じです。

ソースコードはこちら

let btn1 = function (e) {
	//btn2
	console.clear();
	console.log("btn1");
	let p = document.getElementsByTagName("p");
	let style1 = [["backgroundColor", "fontSize", "color"], ["#000000", "20px", "#ffffff"]];
	for (const key in p) {
		if (p.hasOwnProperty(key)) {
			const element = p[key];
			for (var i = 0; i < style1[0].length; i++) {
				element.style[style1[0][i]] = style1[1][i];
			}
		}
	}
};
let btn2 = function (e) {
	//btn2
	console.clear();
	console.log("btn2");
	let p = document.getElementsByTagName("p");
	let style2 = {
		backgroundColor: "#ffffff",
		fontSize: "20px",
		color: "#000000"
	};
	for (const key in p) {
		if (p.hasOwnProperty(key)) {
			const element = p[key];
			for (const key2 in style2) {
				element.style[key2] = style2[key2];
			}
		}
	}
};
document.body.style.backgroundColor = "#0b222b";
document.getElementById("btn1").addEventListener("click",btn1);
document.getElementById("btn2").addEventListener("click",btn2);

デモページ
https://zip358.com/tool/demo17/

タグ

, 2, btn, Clear, console, document, function, getElementsByTagName, javascript, JS, let, log, quot, Vlog, お勉強, コード, こちら, こと, ソース, プログラミング, モットー, , 作法, 写経, 初心者, 勉強, , 基本, , 思いつき, 感じ, 昨日, 書き方, 本当, , 簡略, 自分, 馬鹿,