【Python】LINEでBotを作成する
LINE MANAGER
下記のURLにアクセスし、自分のID、PASSを利用してログインする。
LINE
Python
$ pip install line-bot-sdk
app.pyを以下からダウンロード。 line-bot-sdk-python/app.py at master · line/line-bot-sdk-python · GitHub
シークレトキーと、アクセスキーを入力。
app.pyに記載のある、以下の部分をコメントアウト。
#line_bot_api.reply_message( # event.reply_token, # TextSendMessage(text=event.message.text) # )
ngrokを利用することで非常に簡単に外部のサーバーを利用することができる。
$ brew cask install ngrok $ python app.py $ ngrok http 8000
ngrokコマンドの出力結果より以下の部分を抜き出し、
Forwarding https://f3552516.ngrok.io
LINE Developersのwebhook URLに以下のように設定する。
https://f3552516.ngrok.io/callback
Verifyボタンを押し、Success.になったら コメントを外し、app.pyを再度実行する。
line_bot_api.reply_message( event.reply_token, TextSendMessage(text=event.message.text) )
すると、そのままメッセージを返還するBOTが完成する。 実際に、LINEでメッセージを入力するとそのままメッセージを返信するBOTが完成する。
参考
【R】エラーをtry catchで回避する
silentをTRUEにすればエラーメッセージは表示されない。
e<-try( func(),silent=FALSE) if( class(e) == "try-error") { #エラー時の処理 }else{ #成功時の処理 }
例えば、文字列検索関数str_extractを実行したときに
'pattern'引数が不正です。
というようなエラーが出た時、どのpatternがエラーを起こしたのかエラーは吐き出してくれない。 そこで、try関数を利用することで、エラーの発生箇所を知ることができる。
tryCatch({ # エラーや警告が発生したときに例外処理を行いたいコード }, error = function(e) { #エラーが発生した時の処理 }, warning = function(e) { #警告が発生した時の処理 }, finnaly = { #ここに記載したコードは必ず実行される }, silent = TRUE )
【Shell】sedで文字クラスを含む列を削除する
単純に文字クラス[]の中に「\記号」という形式で記述すれば完了。 中には不要なものも存在するが、つけておいても問題ない。
cat test.csv | sed -e "/[\.\*]/d" cat test.csv | sed -e "/[\.\*\?\$\%\&\!\"\'\@\/\_\~\(\)\'\$\#\{\}\.\^\|\[\+\-]/d"
【R】CSV読み込み
通常のファイル読み込み
read.csv("test.csv",header=T,stringsAsFactors=F)
- ヘッダーあり
- 文字列をFactor型として読み込まない
Shift-JISのcsvファイルを読み込むとき
read.csv(file("test.csv",encoding="Shift_JIS"),header=T,stringsAsFactors=F)
余計な行が含まれているとき
read.csv("test.csv",skip=1,header=T,stringsAsFactors=F)