ゴリラ

服○栄養専○学校

自己紹介

フロントエンドエンジニア

新卒から約4年は営業してました(IT・Web一切関係無い業界で)

文系出身

大阪出身なので普段は関西弁(社会人になってから関東に来た)

高校からニックネームがドンキー
(ドンキーコング由来100%)

←なのでこれがslackアイコンです

今日の献立

twitterでゴリラが呟く!!!
ゴリラbotをnode.jsで作成

この時期が旬!!!!

季節の変わり目に
最適!!

ちびっ子も大好き!!

お袋の味

なぜ、作ろうとおもったのか

  • アイデンティティ形成の為
  • nodeで何か作りたかった
  • twitterはじめたかった

ゴリラbotって面白いんとちゃうん!!!
コレ、珍しいからバズるやつやで
絶対ッ!!!

そう思っている時期が僕にもありました…

気を取り直して…

新鮮なtwitter API
生きのいいnode.js
脂の乗ったAWS

本日、使用する材料

twitter API is 何?

スミマセン(^o^;)これやってみたかったんです...ハイ

twitter APIとは

その前にAPIってなにそれ美味しいの?
 

・APIとはアプリケーションプログラミングインターフェイス(Application Programming Interface)の略

‐>アプリケーションの機能を別のアプリケーションからプログラムを介して利用可能にするための仕組み

何が嬉しいの?

 

WebアプリケーションではAPIはHTTPリクエストを使って特定のURLに対してアクセスすることで、アプリケーションの機能をネットワーク上の別のアプリケーションから動かすことが可能になる。

要するにTwitterの機能を外部から
触れる便利なものってこと

 

 

node.js is 何?

それでは一緒にみんなで

要するに
凄いJavascript

AWS is 何?

AWSAmazon Web Servicesは、Amazonが提供する様々なWEBサービスの総称です。
 

まずは、AWSのいくつかのサービスを組み合わせることで、便利なサービスを作れると考えていただければ、間違いありません。

AWSは、クラウドサービスのシェア1のサービスです。

AWSを利用しているのは、「インターネット上で、何かしらのサービスを提供したい!」とか、「インターネット上にデータを保存しておきたい!」と考える企業個人です。

これから代表的なサービスの利用例をいくつか紹介しますが、AWSは全部で100種類以上のサービスを提供していて、現在もさらに増え続けています。

お、おう…

今回はLambdaを使用

  • 小さなプログラムの コードを実行に適している。
  • Node.jsにコード対応している。

  • 発火のタイミングのみ、料金が発生するのでお財布に優しい。
    (1ヶ月に1,000,000件の無料リクエスト)
    (400,000GB−秒のコンピューティング時間無料)

  • 使ってみたかった。

//npm module
const Twitter = require('twitter');

// twitter API
const twitter = new Twitter({
  consumer_key:'consumer_key',
  consumer_secret:'consumer_secret',
  access_token_key:'access_token_key',
  access_token_secret:'access_token_secret'
});

// node etc
const fs = require('fs');
const path = require('path');
const json = require('../json/main');
const tweetArray = json.data;

const tweetInfo = tweetArray[Math.floor(Math.random()* tweetArray.length)];
const { img, tweet } = tweetInfo;
const imgRoot = path.resolve(__dirname, `../${img}`);

const gorillaImg = fs.readFileSync(imgRoot);
const media = { "media":gorillaImg };

const main = async () => {
  const upMedia = await twitter.post('media/upload', media);
  await twitter.post('statuses/update', {status:tweet,media_ids:upMedia.media_id_string});
};

main();

Javascript

{
  "data":[
    {
      "img":"img/sample_gorilla1.jpg",
      "tweet":"バナナは美味しい"
    },
    {
      "img":"img/sample_gorilla2.jpg",
      "tweet":"ドンキーコングです"
    },
    {
      "img":"img/sample_gorilla3.jpg",
      "tweet":"風船で1UPする謎"
    }
  ]
}

json

まとめ

  • 世の中にあるbotの中で何番煎じかわからないけど、bot(ていうか定期的に呟きを投稿するなにか)ができた
  • コレを気にnode深掘りしていきたい
  • 遊びでなんか適当に動くもの作るのは楽しい
  • ちょこちょこ触って拡張していきたい
  • Lambdaでasync/awaitが上手く使えなかった

その他

Made with Slides.com