14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

消えない環境変数を設定する

Last updated at Posted at 2018-06-18

環境変数がよく消える

\\\SLACK用に環境変数を設定するぞ!!!///

export SLACK_API_TOKEN=xoxb-HOGEHOGE123456789

bundle exec ruby bot.rb ...よし、上手く動いた!!!
ターミナルを落として寝るか!!!

2日後のワイ将

undefined local variable or method `event' for main:Object (NameError)

なんやコレ...。
export コマンドを打っても、環境変数がSLACK_API_TOKENが出てこない...。

原因と解決策

~/.bashrc、もしくは~/.bash_profileを開き、環境変数を追加しましょう。vimで開くとそのまま編集できるので良いと思います。私の場合は、こんなふうになっていました。

~/.bash_profile
export PATH=/usr/local/bin:$PATH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/bin:$PATH"
export PATH=$HOME/.nodebrew/current/bin:$PATH
eval "$(rbenv init -)"

上記にexport SLACK_API_TOKEN=xoxb-HOGEHOGE123456789を追加し、ターミナルを開き直すことで、いつでも環境変数SLACK_API_TOKENを参照することができるようになりました。

環境変数はログアウト時に消えるそうなので、毎回読み込みを行う~/.bashrc、または~/.bash_profileに書いておくことで環境変数を保持することができそうです。

変数はターミナルからログアウトもしくはexitするまで保持

余談

実は環境変数を定義するshellを誤ってSLACK_API_TOKENとgithubにpushしてしまい、以下のようなメールがSlackから飛んできました。よく見つけたなと、逆に驚きです...。

Your authentication tokens were found in a public code repository alongside a custom integration or bot that you (or someone with access to your token) wrote and published publicly on GitHub or a similar code-sharing site.
あなたの認証トークンは、あなた(またはあなたのトークンへのアクセス権を持つ人)が書いたとGitHubのまたは同様のコード共有サイトに公に発表されたカスタム統合やボットと一緒に公共のコードリポジトリで発見されました。

これでそのような過ちを犯すこともなく、安心してbotが作成できるようになりますね。

参考

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?