Skip to content

Instantly share code, notes, and snippets.

@cyrixhero
Created June 14, 2014 15:22
Show Gist options
  • Save cyrixhero/59ad03ebc71fdaadd8ff to your computer and use it in GitHub Desktop.
Save cyrixhero/59ad03ebc71fdaadd8ff to your computer and use it in GitHub Desktop.
Use Swift to connect Facebook Graph API, and then get UID of post like
import Foundation
func input() -> String {
var keyboard = NSFileHandle.fileHandleWithStandardInput()
var inputData = keyboard.availableData
return NSString(data: inputData, encoding:NSUTF8StringEncoding).stringByReplacingOccurrencesOfString("\n", withString:"")
}
print("{Post-ID}:")
var PostID = input()
var urlPath = "https://graph.facebook.com/" + PostID + "/likes?limit=1000"
var outputFile: NSMutableString = ""
var url: NSURL
var request: NSURLRequest
var response: NSData
var JSONData: NSDictionary
var FacebookUID: NSArray
var getNextFlag: NSDictionary
var nextFlag: NSArray
do {
url = NSURL(string: urlPath)
request = NSURLRequest(URL: url)
response = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
JSONData = NSJSONSerialization.JSONObjectWithData(response, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
FacebookUID = JSONData["data"].valueForKey("id") as NSArray
for var i = 0; i < FacebookUID.count; ++i {
outputFile.appendFormat("%@\n", FacebookUID.objectAtIndex(i).stringByStandardizingPath)
}
if FacebookUID.count < 1000 {
break
}else {
getNextFlag = JSONData["paging"] as NSDictionary
nextFlag = getNextFlag.allKeys
if nextFlag[1] as NSString == "next" {
urlPath = JSONData["paging"].valueForKey("next").stringByStandardizingPath
}
}
} while nextFlag[1] as NSString == "next"
println(outputFile)
outputFile.writeToFile("Your CSV file Path", atomically:true)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment