PerlでWebAPIにアクセスしたい…のでモジュールを入れる【TwitterAPI】
エラーばっかり出る。このやろう。
参考:
Perl - LWPでOauthクリア。とりあえずTwitterのタイムライン取得。 - Qiita
1.Httpsに対応したモジュールが入ってない
LWP/Protocol/https.pmが入ってなかった悲しみ。
管理者権限ないので、
ブラウザからDL→解凍→自分のディレクトリに入れる→パス通し
DLはここから。
2.500エラーが出る
参考:[Perl] LWP::UserAgent で SSL 証明書のエラーへの対応 - Open MagicVox.net
というわけでMozilla::CAを入れたい。
↑と同じく
ブラウザからDL→解凍→自分のディレクトリに入れる→パス通し
DLはここから。
3.タイムスタンプがずれているエラー
{"errors":[{"code":135,"message":"Timestamp out of bounds."}]}
変数にちゃんと現在時刻設定してなかった(・ω<)
oauth_timestamp=time
にしてさっくり解決。
WebAPIとは?
WebAPIを使って情報を取得する。
そもそもWebAPIって?どんな仕組み?
という情報が、優しく全体的にふんわり解説されてるサイトが見当たらなかったので、自分なりに書いておきます。
長くなったので概要…
・WebAPIは、外部サービスの情報を自分のプログラムで利用するための手順・規約
・webブラウザがサーバに情報を要求するのと同じ形式でプログラムからメッセージを送れば、情報が返ってくる
・WebAPIを使って得られる情報は、HTML形式とは限らない
APIを使いたいとき
例えば、ある商品の金額の変動を記録したいとき。
毎日その商品のページ(amazonとか、価格.comとか)を表示して、金額をexcelに保存すれば金額の変動はメモできる。でもそれってめんどくさい。しかも気になる商品が100個とかになったら対応できない。
そんなとき、WebAPIを使うことで、自動で金額を取得→保存、というのが可能になる。
WebAPIとは
WebAPI【 Web Application Programming Interface 】
Web APIとは、コンピュータプログラムの提供する機能を外部の別のプログラムから呼び出して利用するための手順・規約(API:Application Programming Interface)の類型の一つで、HTTPなどWebの技術を用いて構築されたもののこと。
Web APIとは|ウェブAPI|Web Application Programming Interface - 意味/解説/説明/定義 : IT用語辞典
ちょっとだけ噛み砕くと、
Twitterの検索とか、天気情報の取得とか、amazonの商品情報とかを、自分のプログラムで利用するための手順・規約。
WebAPIの使い方
Web APIで機能を公開しているサーバに対して、インターネットなどの通信ネットワークを通じて依頼内容をHTTPリクエストの形で送信すると、処理結果がHTTPレスポンスの形で送られてくる。送受信されるデータの形式はAPIによって様々だが、Webでよく用いられるXMLやHTML、JSON、各種の画像ファイル形式などが用いられることが多い。
Web APIとは|ウェブAPI|Web Application Programming Interface - 意味/解説/説明/定義 : IT用語辞典
『HTTPリクエストの形』というのは、webブラウザがサーバに対して情報を要求するときに送るメッセージの形式。
メッセージの形式っていうのは、日常生活で言うと封筒とかに当たる。A4の封筒は受け付けるけど、B5の封筒で送ると中身を見ないでシュレッダーにぶちこまれるので、ちゃんとA4で送ってやらないといけない。
つまり、webブラウザがサーバに情報を要求するのと同じ形式(封筒)を使って、プログラムからメッセージを送れば、情報が返信されてくるってこと。やったね。
WebAPIで返信されてきた情報
通常、Webページにアクセスしたとき、サーバからの返信はHTML形式になっている。ブラウザはHTML形式を人間に見やすい形にして表示している。
WebAPIを使って得られる情報は、HTML形式とは限らない。
Q. なんでWebAPIはHTML形式以外のデータを返せるのか?
ブラウザと同じHTTPリクエストの形(A4の封筒)を使ってるから区別がつかないはず!
A. URL(宛名書き)が違うから。
WebAPIを用意してある=普通のHTTPリクエストとは別の宛先が準備されている
同じHTTP形式(A4の封筒)でも、URL(宛名書き)が異なるので、こちらがブラウザでないことがわかり、HTML形式以外を返信してくる(ことがある)。
モジュールチェック【Perl】
ベイズの定理の意味とか利用価値とか
ベイズの定理で確率をひっくり返す意味がわからなかったし、何してるのか意味不明だったし、何に使うのかもわからなかったけど、つい先程理解したので忘れないうちに!
問題設定)
スパムメールが来るのでフィルタリングしたい。
知りたいこと → あるメールXがスパムメールかどうか
知ってること → スパムメールに含まれている可能性の高い文字列・文
『あるメールXがスパムメールである確率』はわからないが、
『スパムメールに含まれている可能性の高い文字列・文』はわかる。
これをベイズの定理を使ってヒックリ返すことで、
『スパムメールに含まれている可能性の高い文字列・文』を利用して、
『あるメールXがスパムメールである確率』を出すことが可能。
式にしようと思ったけど、日本語で表すと上手くいかない…
予め細かく定義しないと無理なようだ。
色設定かったるいので雑。