JQueryを利用してTwitterのfriends_timelineを取得するサンプル

今回はBasic認証が必要なTwitterのfriends_timeline(今回は自分のタイムライン)を表示するサンプルです。

ポイントは、$.getだとBasic認証するために必要な情報を送信できないので、より柔軟な$.ajaxを利用している事と、usernameとpasswordを指定しているという事です。

その他の部分は前回のサンプルそのままです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" 
            content="text/html; charset=UTF-8">
<script src="jquery.js"></script>
<script>
function getTimeLine()
{
	$.ajax({url:"http://twitter.com/statuses/friends_timeline.xml",
		username : "username",
		password : "password",
		success : function(data)
		{
			var value = "<ul>";
			result = $(data).find("status").each(function(){
				
				value += "<li><span style='font-weight:bold'>" + $(this).find("user").find("screen_name").text()  +  "</span>" + $(this).find("text").text() + "</li>";
			});
			value += "</ul>";
			$("#timeline").html(value);
		},
		error : function(XMLHttpRequest, textStatus, errorThrown)
		{
			alert(textStatus);
		}
		});
}
</script>
</head>
<body>
<input type="button" onclick="getTimeLine();" value="Get!TL" />
<div id="timeline">
</div>
</body>
</html>
FacebookTwitterHatenaTumblr共有

JQueryを利用してtwitterのpublic_timelineを表示するサンプル

認証とかめんどくさいんで、とりあえずpublic_timelineを表示するサンプルです。

解釈している部分はfunction getTimeLine()内の

result = $(data).find("status").each(function(){
value += "<li><span style='font-weight:bold'>" + $(this).find("user").find("screen_name").text()  +  "</span>" + $(this).find("text").text() + "</li>";
});

だけですので結構お手軽です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" 
            content="text/html; charset=UTF-8">
<script src="jquery.js"></script>
<script>
function getTimeLine()
{
	$.get("http://twitter.com/statuses/public_timeline.xml",{},
		function(data)
		{
			var value = "<ul>";
			result = $(data).find("status").each(function(){
				
				value += "<li><span style='font-weight:bold'>" + $(this).find("user").find("screen_name").text()  +  "</span>" + $(this).find("text").text() + "</li>";
			});
			value += "</ul>";
			$("#timeline").html(value);
		}
		);
}
</script>
</head>
<body>
<input type="button" onclick="getTimeLine();" value="Get!TL" />
<div id="timeline">
</div>
</body>
</html>

WCFでのRESTをざっくりとメモ

とりあえず、web.configのendpointBehaviorsの中に<webHttp />なbehaviorを作る。

作成するサービスのendopointのbehaviorを上で作った奴にする。

サービスのinterfece内でOperation Contractに相当するメソッドにWebGet属性を付ける。

UriTemplateに対応するUriを設定。

{}で囲った部分が、引き数としてわたってくる。

{hoge=ほにゃほにゃ}とした場合、実際のリクエストでその部分が省略されると「ほにゃほにゃ」が引数でわたってくる。

例:

[OperationContract]
[WebGet(UriTemplate = "User/{id=allusers}/")]
User[] GetUsers(string id);

あとはinterfaceを実装。

このステップでとりあえずできる。

カテゴリー: .NET

WCFで構築したRESTなサービスのレスポンスをJQueryで解釈する

前回のWCFでRESTなサービスを例にあげて、レスポンスをJQueryで解釈してみたいと思います。

レスポンスからエレメントID=UserListなSelectタグの選択肢として展開するサンプルです。

レスポンスは以下のようなxmlを想定しています。

<ArrayOfUser xmlns="http://schemas.datacontract.org/2004/07/sample" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<User>
<Id>0001</Id>
<Name>テスト太郎</Name>
</User>
<User>
<Id>0002</Id>
<Name>テスト花子</Name>
</User>
</ArrayOfUser>

例によってコメントで説明します。

function ユーザリスト設定()
{
$.get(
"/sample/Service1.svc/User/",
{},
function(data){
var value = "";
//レスポンスの解釈をしているのはこの部分だけです。
//レスポンスとして帰ってきたdataの中の
//Userというタグをfindで検索し、
//見つかったら都度each内に定義してある無名関数を実行しています。
//無名関数の中では、それぞれUserタグの中にあるIdとNameという要素を検索し、
//それぞれの要素に定義されている値を利用してselectタグに設定するoption要素を生成しています。
result = $(data).find("User").each(function(){
value += "<option value='"+ $(this).find("Id").text()  +  "'>" + $(this).find("Name").text() + "</option>";
});
//Selectタグに生成したoption要素を設定。
$("#UserList").html(value);
});
}

このようにJQueryを利用して比較的簡単にXMLとして返ってきたレスポンスを解釈して展開することが可能だという事がわかります。

マスコミによる「表現の自由」の定義はに捏造が含まれることを認めてしまいましたね

総務省がTBSに行政処分を下したことは、表現の自由を萎縮(いしゅく)させかねず「重大な懸念を抱かざるをえない」との談話を発表

TBSのやらせ清掃めぐり、BPOが総務省対応に「重大な懸念」 – MSN産経ニュース

自由には責任が伴うという事をお忘れのようです。

捏造は「表現の自由」に含まれてはいけないでしょう。

都議選等の地方選挙

国政と勝手に絡めているけど、該当の地域以外の人にしてみれば

・勝手に絡めるな

というタイプと

・やっぱり、そうなんだ。私もそうしよう。

というタイプに別れるんだろうね。

そして、後者は誘導されているという事に気づかないんだ。