【HSP3】ツイッターのトレンドを取得してみるよー

1年ぐらい前に作ったのを発掘したのでアップロードしてみる。今でも動いたから大丈夫なはず・・・。API 1.1になったら動くのかな?

1年ぐらい前に作ったのを発掘したのでアップロードしてみる。今でも動いたから大丈夫なはず・・・。API 1.1になったら動くのかな?

  • タグ:
  • タグはありません
// hspinet (HSP 3.2 以降が必要)
#include "hspinets.as"

// 以下モジュール
// このモジュールはhspinetを使用していますので、
// 先に hspinet.as がインクルードされている必要があります。
#module _twittertrend_
#deffunc TTSetConfig str _url, str _woeid, str _ex
	if _url == ""{
		url = "http://api.twitter.com/1/trends/"
	}else{
		url = _url
	}
	if _woeid == ""{
		woeid = "23424856"	// 日本
	}else{
		woeid = _woeid
	}
	if _ex == ""{
		ex = ".json"
	}else{
		ex = _ex
	}
return
#deffunc TTGetTrends var _trend, var _url
	neturl@ url
	netrequest_get@ woeid+""+ex
	error = 0
	repeat
		netexec@ res
		if res > 0 : break
		if res < 0 : error = 1 : break
	loop
	if error == 1{	// エラー
		neterror@ estr
		return -1
	}
	sdim buf,$10000
	netgetv@ buf
	if buf == "" : return -2
	jsonnkf@ "Ws"	; utf8->sjisへの変換指定
	jsonopen@ jroot, buf
	jsongets@ erstr, "error"
	if stat == 0 {
		jsonclose@
		return -3
	}
	
	sdim trendnames, 1400
	sdim trendurls, 5000
	trendname = "" : trendurl =""
	jsonnext@ root, ,2
	jsongetobj@ trends, "trends", root
	jsonnext@ cur, trends, 2
	repeat
		if cur == 0 : break
		jsongets@ trendname, "name", cur	; 内容の取得
		if stat == 0 {
			trendnames+=trendname+"\n"
		}
		jsongets@ trendurl, "url", cur	; URLの取得
		if stat == 0 {
			trendurls+=trendurl+"\n"
		}
		jsonnext@ cur,cur,0
	loop
	jsonclose@
	_trend = ""+trendnames
	_url = ""+trendurls
return 0
#global

// モジュール終了
// 以下サンプル

	title "ツイッタートレンドランキング"

	netinit
	if stat : dialog "ネット接続できません。" : end
	
	// woeid の一覧は以下のアドレスを参照
	// http://phpjavascriptroom.com/exp3.php?f=include/topic/twitter_rest_api_local_trends/available.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%3Atrends.json

	; 第1パラが アドレス(空欄でデフォルト使用)
	; 第2パラが woeid (空欄で日本の 23424856 使用。東京 は 1118370 )
	; 第3パラが 取得形式(空欄でデフォルトのJSON使用)
	TTSetConfig "","",""		; 日本
	;TTSetConfig "","1118370",""	; 東京
	
	; 第1パラが トレンドを入れる変数
	; 第2パラが トレンドのURLを入れる変数
	TTGetTrends trends, url
	if stat < 0 : dialog "エラーが発生しました。" : end

	// 分離して表示する
	notesel trends
	repeat notemax
		noteget tmp, cnt
		mes "("+(cnt+1)+"位) \t"+tmp
	loop

// サンプル終了