Google検索を使ってTwitter検索してヒット数を表示
以前Objective-C用に書いたモノのSwift移植です。辞書と配列は大変だった・・・
TwitterSearchAPIはヒット数まで出してくれないっぽいので、強引にGoogle検索に突っ込んでます。
println(responseData)とやると検索結果すべてのデータが取れるので、そこから余分な部分をカットします。
検索ヒット数=パワーみたいな。結果はすごく正確ではないと思われます。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //つぶやきを検索してヒット数を出す searchTw() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func searchTw() { //キーワード var searchKey: String = "荀イク" //日本語の場合は文字コードを変換 let searchQuery: String = searchKey.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! var urlString1 = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=" var urlString2 = "+site:http://twitter.com" //デフォのGoogle検索はhttp://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=荀イク //Google検索でTwitterを検索する用URL(ajax)、実際はhttp://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=荀イク+site:http://twitter.com var urlStringAll:String = urlString1 + searchQuery + urlString2 //urlStringAllで設定したアドレスにアクセスする設定をする var searchURL1 = NSURL(string: urlStringAll) if let searchURL2 = searchURL1 { var searchURLReq = NSURLRequest(URL: searchURL2) println("OK") NSURLConnection.sendAsynchronousRequest(searchURLReq, queue: NSOperationQueue.mainQueue(), completionHandler: self.getHttp) } else { // URLがなかったときの処理 println("NG") } } func getHttp(res:NSURLResponse?,data:NSData?,error:NSError?){ //jsonで解析する var searchdict = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary //「responseData」キーを取り出す var responseData = searchdict["responseData"] as! NSDictionary //「cursor」キーを取り出す var cursor = responseData["cursor"] as! NSDictionary //ヒット数に近いと思われる「estimatedResultCount」キーを取り出す var countData: NSString = cursor.objectForKey("estimatedResultCount") as! NSString //アバウトなヒット数表示 println(countData) } }