over 7 years ago
上禮拜辦了一個活動,完全用 facebook 的活動 (event)功能邀請賓客;活動前一天我想要印出賓客清單,才發現 facebook 居然沒有把賓客名單匯出成 .csv 的功能..... 我記得以前有啊?
這種時候就只好動用 facebook 強大的 opengraph API了。opengraph 的 EDGE 除了可以是一個人,一個fan page之外,也可以是一個活動。
取得 event 相關資訊前,要在申請 access token 前額外要求要 event 的權限:
話不多說,來看 code:
# encoding=utf-8
require 'open-uri'
require 'json'
event_id = '1609895432567499'
token = STDIN.read
url = 'https://graph.facebook.com/v2.3/' \
+ event_id + '/attending/?limit=250'
url = url + '&access_token=' + token
json = open(url)
data_hash = JSON.parse(json.read)
data_hash["data"].each do |datum|
puts datum["name"]
end
執行
ruby list_attendees.rb < token > guests.csv
即可
其中 < token
是利用 standard input 將我放在另一個檔案的 token 吃進來; > guests.csv
就是把列印出來的內容存到csv檔裡面。