【Scala】Scala&Play FrameworkでTwitter4jをいじってみる Part3【Twitter4j】
前回の続きです。
今回は、build.sbtなどの設定ファイルの詳細について書いていきます。
build.sbt
name := みなさんが決めたやつ organization := みなさんが決めたやつ version := "1.0.0-SNAPSHOT" lazy val root = (project in file(".")).enablePlugins(PlayScala) scalaVersion := "2.11.11" libraryDependencies ++= Seq( "com.adrianhurt" %% "play-bootstrap" % "1.1-P25-B3", "org.twitter4j" % "twitter4j-core" % "4.0.6", "org.twitter4j" % "twitter4j-stream" % "4.0.6" ) TwirlKeys.templateImports ++= Seq("forms._")
build.sbtはこんな感じです。
libraryDependenciesには、見た目を最低限整えるために、play-bootstrapを入れています。
また、twitter4jのライブラリも追加しています。
twitter4j.properties
debug=true oauth.consumerKey=発行してゲットしたやつ oauth.consumerSecret=発行してゲットしたやつ oauth.accessToken=発行してゲットしたやつ oauth.accessTokenSecret=発行してゲットしたやつ twitter4j.loggerFactory=twitter4j.NullLoggerFactory
twitter4j.propertiesを作成し、confフォルダの中に格納します。
consumerKeyなどの取得方法は、広大なネットにいくらでもあります。
次回は、controllerの中身などについて書いていきたいと思います。
【Scala】コップ本の自分用メモ2
集合とマップの作成・初期化・操作
// イミュータブルな集合の作成・初期化・操作 var footballSet = Set("Messi", "CR7") footballSet += "Pogba" println(footballSet.contains("Neymar")) // ミュータブルな集合の作成・初期化・操作 import scala.collection.mutable val footballSet2 = mutable.Set("Honda", "Kagawa") footballSet2 += "Okazaki" println(footballSet2) // ミュータブルマップ import scala.collection.mutable val footballMap = mutable.Map[Int, String]() footballMap += (1 -> "Messi") footballMap += (2 -> "Suarez") footballMap += (3 -> "Neymar") // イミュータブルマップ val footballMap2 = Map(1 -> "Pogba", 2 -> "Hazard", 3 -> "Reus")
【Scala】コップ本の自分用メモ
Scala&Play Frameworkでのプロジェクトが始まることになるので、必読書のコップ本を読んでいます。
リストの重要なメソッド集です。
// 空のリスト // var list1 = Nil でも可 var list1 = List() // 三個の値を持つ新しいList[String]を作る var list2 = List("Messi", "CR7", "Neymar") // 三個の値を持つ新しいList[String]を作る var list3 = "Messi" :: "CR7" :: "Neymar" :: Nil // 2個のリストを連結し、新しいリストを作成する var list4 = List("Messi", "Neymar") ::: List("CR7", "Bale") // list3の添字2の要素を返す(Neymarが返される) var list5 = list3(2) // list3の中で、長さが3の要素の数が返される(1が返される) var length4 = list3.count(s => s.length == 3) // 先頭の2要素を取り除いたlist3を返す list3.drop(2) // 末尾の2要素を取り除いたlist4を返す list4.dropRight(2) // list3の中に値が”Neymar”があるかどうかを返す。trueが返される var boolean1 = list3.exists(s => s == "Neymar") // list3に含まれる長さが4のすべての要素を返す var list6 = list3.filter(s => s.length == 4) // list3のすべての要素について、末尾の文字が”i”になっているかどうかを返す var list7 = list3.forall(s => s.endsWith("i")) // リストの先頭要素を返す list3.head // リストの最後の要素を返す list3.last // リストから末尾の要素を除いた残りのリストを返す var list8 = list3.init // リストの各要素のXを追加したものから構成されるリストを返す var list9 = list3.map(s => s + "X") // リストの要素を並べた文字列を返す var str: String = list3.mkString(" , ") // リストに含まれる長さが4以外のすべての要素を順に並べたリストを返す var list10 = list9.filterNot(s => s.length == 4) // リストのすべての要素を逆に並べたリスト var list11 = list10.reverse // リストのすべての要素から、先頭文字小文字にしてアルファベット順を決めて、その順序にしたがったリストを作って返す var list12 = list11.sortWith((s,t) => s.charAt(0).toLower < t.charAt(0).toLower) // リストから先頭要素を取り除いたリストを返す var list13 = list12.tail