Failed to open TCP connection to https://www.example.com:80 (getaddrinfo: Name or service not known) (SocketError) のようなエラーが出たとき

Ruby です。

一つの解決法

誤っている例

MyApplication::Client.new(
  host: 'https://www.example.com',
  port: 80,
  username: 'MY_USERNAME',
  password: 'MY_PASSWORD',
  use_ssl: true,
)

一見誤りはないように見えます(見えました)。結構ハマりました*1

……よく見ると host にスキームがくっついてる……。

正しい例

MyApplication::Client.new(
  host: 'www.example.com',
  port: 80,
  username: 'MY_USERNAME',
  password: 'MY_PASSWORD',
  use_ssl: true,
)

補足

慌てて急いで書くと良くないことに遭遇してしまうという例です。しかも頭が沸騰しているから誤りに気づきにくい。

*1:情けない

Twitter の gem でツイートに埋め込まれた URL を t.co 形式で取得する

結論

Tweetオブジェクトの uris メソッドを用いた戻り値*1の要素に対してさらに url メソッドを用いる。

具体例

以下のツイートを例とします。

*1:配列

続きを読む
Powered by はてなブログ