動かざることバグの如し

近づきたいよ 君の理想に

バンドリスレ過去ログ一覧

wiki的なのがなかったので作ってみた

一覧

rubyでTwitterに画像付きツイートを投稿する

一番有名なtwitter gemを利用してRubyTwitterに画像つきのツイートを投稿するメモ

色んな人がすでに書いているが、どうもやり方が変わってるらしくてできなかった

まずはGemfileにgem "twitter"に追加して以下

require 'twitter'

tw = Twitter::REST::Client.new do |config|
  config.consumer_key        = ""
  config.consumer_secret     = ""
  config.access_token        = ""
  config.access_token_secret = ""
end

images = []
images << File.new('gazo.jpg')

res = tw.update_with_media("test #{Time.now}", images)
puts res

各4つキーにはTwitterで設定したキーを設定する。

update_with_mediaでいいの?

よくあるブログではupload(media)してからupdate('hello', media_id)するのがあるが、それをやろうとすると

index.rb:15:in `<main>': private method `upload' called for #<Twitter::REST::Client:0x007f972af350e8> (NoMethodError)

となる。ソースコードを読めばわかるが、 uploadメソッドはprivateメソッド化され、update_with_media()の内部で呼ばれるようになった。つまり外からはupdate_with_media()だけ叩けばよい

爆速でChrome対応オレオレ証明書を作成する

目指す証明書

検証環境

  • Ubuntu 16.04(多分どのOSでも行ける

やりかた

面倒な設定など無い。5秒で作れる ここでは仮に*.turai.workオレオレ証明書を生成する方法を示す。

秘密鍵の作成

openssl genrsa 2048 > server.key

秘密鍵からCSR(証明書署名要求)を作成 何か聞かれるがエンター連打で大丈夫

openssl req -new -key server.key > server.csr

一時的な設定ファイルを作成。ドメイン部分は各自書き換えて

echo subjectAltName=DNS:*.turai.work > san.ext

ファイルを利用して証明書作成

openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt -extfile san.ext

これで終わり。お疲れ様でした(5秒は無理か

背景

いつものように「オレオレ証明書 作成」で1番上に来る以下のサイトで証明書作ったらChromeにエラー吐かれた。

オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている

このサーバーが vagrant.turai.work であることを確認できませんでした。このサーバーのセキュリティ証明書で SAN(サブジェクトの別名)が指定されていません。設定が不適切であるか、悪意のあるユーザーによって接続が妨害されている可能性があります。

は????ってかSANってなんだよSAN値かよ

って調べたらChrome58以降では今までのオレオレ証明書は使えなくなったらしく、SAN(Subject Alternative Name)を含む証明書を作らなくてはいけなくなった。