Kotz’ijに恋して番外編3(XserverにRubyをインストール)

続いてサーバー上にRubyをインストール。Xserverには幾つかのバージョンのRubyがあるけど最新版でも2.0.0。私がTzijonikプログラムとTwitter Bot開発で使ったのが2.3.3なのでそのバージョンをインストールしたい。

必要最低限の手順でやってみたい。

まずはディレクトリを作成:

パスを追加:

一行目の後にiを入力すると入力モードになり二行目を入力。入力モードから抜け出すにはEscを押してから:wqを入力すると変更が保存される。

下記ディレクトリに移動して

Ruby 2.3.3をダウンロード。勿論他のバージョンでもOK。

次にダウンロードしたファイルを解凍する。

移動して

インストール。

Rubyのバージョンを確認すると

1.8.5となっている。これはサーバー上に元々インストールされているもの。

でも下記の通り

しっかりインストールされていることが分かる。

次回はRubyGemsのインストール。

Kotz’ijに恋して番外編2(SSH設定)

次はSSH設定。再度サーバーパネルへ。

SSH設定を選択。

ボタンを押して状態をOnにする。

SSH設定の変更完了を伝えるメッセージが出る。

続いてパスフレーズを入力して公開鍵認証用鍵ペアを生成する。

その次の画面で現れる確定ボタンを押すと鍵がダウンロード出来る様になる。任意の場所に鍵を保存。

次にSSHクライアントを起動。ここではTera Termを使う。起動すると下記の様な画面が現れるのでアカウント情報を入力。なお、接続ポートは22ではなく10022。OKを押した後次の画面では先程ダウンロードした鍵を読み込む。

それからパスフレーズも入力。全て正しければOKを押す。サーバーに繋がるはず。

まだ準備はすることがあり、それはRubyとGemのインストール。というのもXserverのRubyのバージョンが古いので。また次回。

Kotz’ijに恋して番外編1(FTPアカウントの設定)

以前Kotz’ijをHerokuにデプロイしたけど、Herokuの料金体系が支払いを初めてから物凄く曖昧と気付いたので辞めた。でどうしようかなぁと思って今使っているサーバー上に置こうかなと思う。具体的にはXserver。出来るかどうかは分からないけど。

で取り敢えずはFTPの設定。そういえば最近Gitは使ってもFTPって殆ど使ってなかった様な気が。FileZillaを使うことにした。クライアントは別にこれでなくてもいいけど何となく。

まずはサーバーパネルへ。FTPアカウント設定を選択。

アカウントを設定するドメインを選択。

必要事項を入力してアカウントを作成する。確定する。

FileZillaを起動して必要事項を入力。

そしてリモートサイトのリストが現れれば成功。

次回はSSHの設定。

HerokuにデプロイしたRubyアプリからGoogle Sheetsにアクセスする方法

前回の続き。

今回は作成したRubyのプログラムをHerokuにデプロイして実行する。そうすることによってHeroku Schedulerを使って定期的にプログラムを実行出来る。

まずはHeroku用のGemFileを作成。

でここに書かれているgemをインストールする。

するとGemfile.lockが作成される。

git関連の作業を行う。

これで準備完了。

後は

で実行できる。

Heroku上で定期的に実行したい場合はSchedulerを用いる。

これはブラウザを用いても出来る。

コマンド欄には

と入力し頻度を選択。

色々と応用出来る筈。

RubyアプリからGoogle Sheetsにアクセスする方法

以前、HerokuにデプロイしたRubyによるTwitterbot, Kotz’i’jでツイートへの返信を行う際に以前に読み込まれたツイートを除くため、最新のツイートIDを保存することとしたけどHeroku上のファイルはこの方法では更新されないことが判明。

代替策としてGoogle SheetsのシートにIDを保存し、毎回読み込みと更新することとした。

でその方法。

まずはGoogle APIsにアクセスし、

Sheets APIを選択。

利用規約に同意する。

プロジェクトの作成を促されるので従う。

プロジェクト名を決めて作成ボタンを押す。

APIを有効にする。

続いて認証情報を作成する。

色々選択肢があるけど、HerokuにデプロイしたアプリからAPIを呼び出す場合はその他のUIを選ぶと上手くいく筈。それからユーザーデータにアクセスするを選択。

OAuth2.0のクライアントIDを作成。

認証情報追加画面でメールアドレスを指定する。

下記の画面が現れるのでJSONをダウンロードし完了ボタンを押す。

このJSONはHerokuにデプロイするアプリがあるディレクトリに保存する。

Google SheetsのシートにアクセスするRubyでプログラムを作成することとなるけど、その前にアクセス用のGoogle Sheetsファイルを作成しておく。

また、テスト用に任意のセルに値を入れておく。

ファイルを作成したらそれを選択し、共有リンクを取得。

共有リンクのd/と/edit?の間の値がキーとなるので保存しておく。

google_driveのgemをインストール。

ここでバージョン指定しているのはTwitterbotとの関係でFaradayが問題を起こしてしまうから。

プログラムをこんな感じで書く。

初めて実行した時は下記のメッセージが現れるので指示に従う。

表示されたアドレスにアクセスすると許可を求められるので承認する。

許可すると認証コードが表示されるのでそれをコピペする。

これでシートへのアクセスが出来るはず。

次に先程セルに書き込んだ値を編集してみる。

これを実行すると:

Rubyからシートを編集出来た。

長くなったので今回はここまで。次回はこれをHerokuにデプロイして実行する方法を紹介する。