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

ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

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 使ってる点。