読者です 読者をやめる 読者になる 読者になる

5分でRailsのTwitterBotを作る手順

やりたいこと

自動的にTwitterに通知するBOTを作りたい。

今回は、「Webエンジニアのためのテックブログまとめ」で、評価+100以上の記事を殿堂入りとしてTwitterにつぶやかせます。

 

前提条件

RailsまたはRubyで作っていきます。

 

TwitterBotを作る手順

Twitterアプリを登録する

Twitter Application Management

Create New Appから登録します

 

f:id:kitahashi-ryoichi:20161223154428p:plain

 

入力項目

  1. Name 「Tweet Bot」とか何でも良いです
  2. Description 「This bot post high quality entry.」とか適当に
  3. WebSite 「http://~~

 

 

作ったらアクセストークンを生成します

Keys and Access Tokensタブをを開いて、「Create my access token」ボタンをクリックします。

f:id:kitahashi-ryoichi:20161223154815p:plain

f:id:kitahashi-ryoichi:20161223155010p:plain

ここで作った4つのキーとトークンは投稿する時の認証に使います。

 

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

 

Twitter Ruby Gemをインストール

ファイル:/Gemfile

gem 'twitter'

そしていつものコマンドを打ちます

bundle install

 

GitHub - sferik/twitter: A Ruby interface to the Twitter API.

 

Rakeタスクを作る

/lib/tasks/bot.rake

require 'twitter'
namespace :bot do client = Twitter::REST::Client.new(
consumer_key: ENV['TWITTER_CONSUMER_KEY'],
consumer_secret: ENV['TWITTER_CONSUMER_SECRET'],
access_token: ENV['TWITTER_ACCESS_TOKEN'],
access_token_secret: ENV['TWITTER_ACCESS_TOKEN_SECRET'],
) task :tweet => :environment do client.update('つぶやきの内容をここにいれる')
end
end

 

つぶやく

client.update("I'm tweeting with @gem!")

 

フォローする

client.follow(213747670)

 

ユーザー情報を取得する

client.user(213747670)

 

詳しいAPIのメソッドはコチラのリファレンスを参照してください

GitHub - sferik/twitter: A Ruby interface to the Twitter API.

 

TwitterAPIのアクセストークン等を環境変数に入れる

GitHubとかにアクセス情報をコミットしたくないので、bash_profileなどに入れちゃいます。

~/.bash_profile

export TWITTER_CONSUMER_KEY=hogehoge
export TWITTER_CONSUMER_SECRET=hogehoge
export TWITTER_ACCESS_TOKEN=hogehoge
export TWITTER_ACCESS_TOKEN_SECRET=hogehoge

 

環境変数を最新にするために、sourceしておきます

source ~/.bash_profile

 

Rakeタスクを実行してみる

rake bot:tweet

 

すると・・・つぶやきができるはずです。

 

こんな感じ

f:id:kitahashi-ryoichi:20161223155520p:plain

最新のWeb技術をゆるくおさえられる「Webエンジニアのためのテックブログまとめ」作りました。

Webエンジニアのためのテックブログまとめというサービスをリリースしました。単純に有名企業がやっているテックブログを探したりフィードに登録するのが面倒な人向けに、まとめて見られるサービスです。

 

ばばん! 

 

ターゲット

Webエンジニアとして働いてる人で、最新のテクノロジーや他社の事例をするっと見たい人におすすめです。

 

提供しているサービス

  • 143のすべての企業テックブログのフィードに対応
  • Qiita::Organizationのテック記事に対応
  • はてブ数+Qiitaイイネ数でランキング

 

こんな感じでテック記事の週間ランキングが見れます

f:id:kitahashi-ryoichi:20161220164736p:plain

 

今後追加するサービス

  • 個人ブログで上がっているテック記事にも対応
  • テック記事を100点中何点と評価する機能を追加
  • ElasticSearchでサイト内検索と精度の高いレコメンドを提供

最終的には、すべてのテック記事にスコアを付けて、優良な記事をちゃんと評価して残していくエコシステムにしていきたいと考えています。各社ものすごいコストかけた優良記事を残しているので、もっと広めたい!

 

作ってからの反省

  • 日本語ドメインはもうなんか怪しすぎる・・・二度と取らない
  • レスポンシブで実装したけどアクセス元がほぼMacでChromeだった
  • メディアだったので最新技術なにもつかってない

 

開発工数とか

11月末からスキマ時間にコツコツ作り込んで、だいたい70時間くらいになりました。シンプルにRails5で作っていて、Rails5のパフォーマンスの良さには頭が下がるばかり・・・。IDCFの500円サーバーで余裕で動くので、世の中すごい便利になったなぁと思います。もう年ですね。

 

今はクラウドワークスでロゴのコンペを実施したり、特集コンテンツを作ってくれるライターの相談をしながら運用面を詰めているところですね。

 

というわけで年明けのアプリリリースに向けて鋭意開発中です。

どうぞよろしくお願いいたします!

 

WELQ等のキュレーションメディアが非公開記事を公開するまでに踏むステップ

WELQショックで各社非公開記事が大量に発生 

これらの削除した記事を公開出来る状態にもっていくには、大きく3つの問題を解決する必要があります。

 

公開するために必要な3ステップ

1.問題のある箇所のリライト

問題といっているのはさらに以下の2点になると思います。

  1. 情報の信頼性問題
  2. 著作権問題

情報の信頼性問題は、ヘルスケア大学のように医師や専門家の監修を付けて、編集部がレビューを実施する体制を取ることで解決されると考えています。これによって、コンテンツの生成スピードは落ちますし、レビューを挟むことになるので高コストになります。したがって、高コストになってもペイできる記事から優先的にリライトされていくのではないでしょうか。

 

また、著作権問題はテキストと画像の両方ありますが、テキストはコピペチェックツールの運用などを含めたライティングマニュアルの改訂を実施し、編集部による目視チェックとシステム面での引用元のチェックや表示方法の改善が必要です。画像の著作権はURLやアップロードでの引用をツール上から外して、Gettyやamana、PIXTAといったコンテンツプロバイダーに課金課金してイメージ絵などを挿入するようなスタイルにする必要があります。MERYの場合は公式インスタをやっていたり、紙媒体も出していたのでキュレーションメディアというよりかは雑誌のWeb版のようなコンテンツメーカーにピボットする可能性はあります。

 

各社このリライトが数万〜数十万記事あるため、1記事1時間1000円でリライトしたとしても相当な出費になるためPVを稼げていなかった記事はここで損切りされる可能性が高いです。

 

2.記事作成システム側の改修

WELQやMERYは月間5000本も記事を上げていたりするので、レビューはしたか、薬機法のチェックはOKかといったワークフローをシステムでサポートしないと業務が混乱すると思われます。そのためエンジニアはごりごりっとワークフロー部分にレビュー機能を付けたり、ユーザー権限周りの機能拡張が必要かと思います。

 

あわせて、引用元がこれまでのようにググって取らないようになるので、画像コンテンツの連携API開発や、コピペチェック、校正チェック、薬機法チェックなどコンテンツの質を高めるための開発が必要ですね。みんな検索して情報を欲しているはずなので、正しいコンテンツを作って伝える事自体は事業継続すべきだと思うので、エンジニアのコストダウン力が問われます。

 

3.再発防止策の策定

再発防止するには1点しかないと考えています。それは品質ガイドライン作って、どういうのがOKでどういうのはNGだと明確に示してそれをすべてチェックするということではないでしょうか。今回はグーグルが言っているYMYLやE-A-Tの領域で、明確な基準とかはどこも持っていない状態なので、DeNAパレットが業界のデファクトスタンダード的なものを打ち立てて愚直に実行すれば解決されるかと考えています。

 

 

再公開された後の世界は・・・

キュレーションメディアが健全に復活すればGoogleで検索すると正しい情報がたぶん手に入るようになる?もしくは、キュレーションメディア自体が高コスト体質になってしまい、個人ブログやアフィリエイターのチェックされてない低品質コンテンツがロングテールで幅を効かせてくるかもしれません・・・。

 

Yahoo!ニュースのステートメントはこんな風になっていて

メディアステートメント - ヤフー株式会社

 

日テレだとコンプライアンス憲章でしょうか

コンプライアンス憲章|企業・IR情報|日本テレビ

 

人間がやる限り絶対的基準というのはないし、時代背景によっても基準は変わるので各社それぞれのモラルで運用しているみたいです。このままメディア事業を辞めてしまわずに正しいWebメディアの方向に向かっていけば社会全体にとってもプラスではないでしょうか。