Created
January 25, 2012 13:10
-
-
Save m039/1676188 to your computer and use it in GitHub Desktop.
get likes/comments count from the facebook
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; -*- mode: emacs-lisp; -*- | |
(require 'mm-uu) | |
(require 'json) | |
(require 'url) | |
(defvar facebook-access-token nil) | |
(defvar facebook-retrive-limit 1000) | |
(defun facebook-set-access-token (token) | |
(setq facebook-access-token token)) | |
(defun facebook-get-count (fbid getter &optional offset limit) | |
(let* ((offset (or offset 0)) | |
(limit (or limit facebook-retrive-limit)) | |
(count (length (retrive-json (funcall getter fbid offset limit))))) | |
(if (>= count limit) | |
(+ count (facebook-get-count fbid getter (+ offset limit) limit)) | |
count))) | |
(defun facebook-get-comment-count (fbid) | |
(facebook-get-count fbid #'facebook-query/comment)) | |
(defun facebook-get-like-count (fbid) | |
(facebook-get-count fbid #'facebook-query/like)) | |
(defun facebook-query/comment (fbid &optional offset limit) | |
(let ((limit (or limit facebook-retrive-limit)) | |
(offset (or offset 0))) | |
(concat "https://api.facebook.com/method/fql.query?format=json&query=" | |
(url-hexify-string (format "SELECT '' FROM comment WHERE object_id = '%s' LIMIT %s OFFSET %s" fbid limit offset)) | |
"&access_token=" facebook-access-token))) | |
(defun facebook-query/like (fbid &optional offset limit) | |
(let ((limit (or limit facebook-retrive-limit)) | |
(offset (or offset 0))) | |
(concat "https://api.facebook.com/method/fql.query?format=json&query=" | |
(url-hexify-string (format "SELECT '' FROM like WHERE object_id = '%s' LIMIT %s OFFSET %s" fbid limit offset)) | |
"&access_token=" facebook-access-token))) | |
(setq facebook-retrive-limit 2000) | |
(facebook-set-access-token "") | |
(facebook-get-like-count "2946613217211") | |
(facebook-get-comment-count "2946613217211") | |
;; misc | |
;; ---- | |
(defun retrive-json (url) | |
(with-current-buffer | |
(mm-handle-buffer | |
(with-current-buffer (url-retrieve-synchronously url) | |
(mm-dissect-buffer t))) | |
(goto-char 1) | |
(json-read))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment