2022-01-01から1年間の記事一覧

DiscordのBotをGoogle Cloud Compute Engineに移した

github.com 自分のDiscord Botがある、何の機能も実装していないただ常時オンラインでいるだけのボット。 Herokuの無料プランで稼動させていたが、Herokuは無料で使えなくなってしまった。 ボットを常時オンラインにしておくにはWebSocketの接続をずっと維持…

この一週間のこと。 先週までにDiscord のOAuth 2.0の仕組みを使ってDiscordの外のアプリケーションのサインアップ、ログインをサーバーを用意せずに無料で使えるリソースで作ってみる、っていうのをやってた。 先週、動くものができた。できたけど、動くも…

Jupyter NotebookでGMail APIにアクセスするためのOAuth 2.0 アクセストークンをAuthorization Code Flowで取得する

Get OAuth 2.0 Refresh Tokens · GitHub Jupyter Notebookで、一回きりのTCP接続の待ち受けをしてOAuth 2.0 のアクセストークンを取得する。 GMail APIに使用できるアクセストークンはデバイスフローでは取得できない。gmail関連のscopeを受け付けない。 Aut…

Cloudflare WorkersでHMAC付きCookieを使ったステートレスセッションを実装した

github.com Cloudflare WorkersのランタイムはNodejsではない。Web Standards API (Crypto, atob, btoa, ... )で実装する必要がある。 有効期限を持ち、MACで改ざんされたら分かるようにしたトークンを発行する。このトークンをクッキーに設定して、ブラウザ…

Pythonのurllib.requestでリダイレクトをさせない

urllib.request.urlopenメソッドはレスポンスが300番台だった場合、リダイレクトを実行してそのレスポンスを結果とする。 HTTPのステータスコード302のレスポンスを返すAPIを作ってるときに、リダイレクトを実行せずに、最初に返ってきた302レスポンスを取得…

壊れたブルーレイレコーダーを何とかしようとしてできなかった

家族が使っていたSharpのAQUOS ブルーレイディスクレコーダー BD-T1300 が壊れた、と伝えられた。HDDが壊れたっぽいメッセージがずっと表示されて、本体のHDDランプがとても強く光り続けていた。 これ、テレビチューナーが3つもついているのでこのまま捨てて…