web-dev-qa-db-ja.com

Wgetなどのコマンドラインツールを使用してOpenIDサイトにログインするにはどうすればよいですか?

具体的には、さまざまなStackExchangeサイトのユーザープロファイルから特定のページをダウンロードできるようにしたいと考えています。ただし、これをコマンドラインから解析可能な形式で(cronジョブを使用して)自動的に実行したいと思います。これにはLinuxを使用する方がはるかに好きですが、必要に応じてMacまたはWindowsマシンにアクセスできます。

理想的には、 WgetcURL のようなツールを使用してページをフェッチしたいと思います。ログインを通過する方法はわかりませんが。 Firefox経由でログインし、関連するCookieをエクスポートし、その--load-cookiesoptionを介してWgetにインポートできるという提案を見てきました。たとえば、 ここ および ここ 。ログインしたばかりの場合は機能しますが、しばらくすると機能しません。 IDトークンを更新する必要があるためだと思います。

したがって、SUにログインしてCookieをエクスポートした直後に、次のことができます。

wget --load-cookies cookies.txt \
  https://superuser.com/users/151431/terdon?tab=responses

しかし、数分後、404エラーが発生します。

wget -O ~/stack/$(date +%s) --load-cookies ~/cookies.txt \
   https://superuser.com/users/151431/terdon?tab=responses

--2013-08-06 04:04:14--  https://superuser.com/users/151431/terdon?tab=responses
Resolving superuser.com (superuser.com)... 198.252.206.16
Connecting to superuser.com (superuser.com)|198.252.206.16|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-06 04:04:15 ERROR 404: Not Found.

では、コマンドラインからOpenID対応のWebサイトに自動的にログインするにはどうすればよいですか?


PS。私の質問は実際にはコマンドラインの側面に関するものであり、問​​題のWebページの実際の詳細ではないため、これはWebアプリケーションよりもここに適していると思います。どんな解決策もすべての OpenID サイトに適用できると思います。

10
terdon

クッキーは頻繁に更新されるため、できません。これはセキュリティ上の目的であり、これを実行できる唯一の方法は、すでに実行した方法です。少なくとも、私の理解から。

1
Maarten