JsonSlurperを使ってfacebook内のいいね!してないフィードを一覧表示

Facebook, Groovy

JsonSlurperかなりいい!調子にのっていろいろやってみた。

#!/usr/bin/env groovy
import groovy.json.*
def slurper = new JsonSlurper()
slurper.metaClass.define{
def baseurl = "https://graph.facebook.com"
def accessToken = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
getJson{ path, params = [] ->
delegate.parseText(
new URL(
baseurl + path + "?" +
([ "access_token":accessToken ] + params).collect{ it.key + "=" + it.value }.join("&")).text
)
}
}
def me = slurper.getJson("/me")
def friends = slurper.getJson("/me/friends")
friends.data.id.each{ id ->
feeds = slurper.getJson("/${id}/feed")
feeds.data.findAll{
def likes = slurper.getJson("/${it.id}/likes")
!likes.data.id.contains( me.id ) && it?.type != "photo"
}.each{ feed ->
println feed.from.name
println feed.message
println feed.created_time
println (feed.actions.find{ it.name == "Like" }?.link)
println "--------------------------------------------------"
}
}

ミソはインスタンスにdefineしてメソッド追加している点ぐらいかな。
あとは JsonSlurper 使ってる点。

Facebook, Groovy