Twitterクライアントに学ぶASP.NETアプリ

Slides:



Advertisements
Similar presentations
© 2007 Autodesk1 ProjectPoint API 概要 AEC ソリューション CPM オートデスク株式会社.
Advertisements

セッション管理 ソフトウェア特論 第 8 回. ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。
情報の交換・共有・蓄積を目的とした GIS リモートコミュニケーションシステム の実装 Sho Otake Graduate Department of Computer and Information Systems The University of Aizu 1 Hirohide Demura,
マイクロソフトがホスティングする拡張性に優れたサービス ベース アプリケーション プラットフォーム.
Ruby on Rails (RoR) 講習会 近畿大学大学院 田中大介. 本日の目標 Web アプリケーションを作ろう!
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
わんくま同盟 名古屋勉強会 # 初音 玲. わんくま同盟 名古屋勉強会 #4 今日の前提 Windows Mobile アプリの話が中心 BASIC 認証 httphttp http (XML) SOAP.
本プレゼンテーション ( 以下、本書 ) で提供されている情報は、本書が 発表された時点における Microsoft の見解を述べたものです。市場 ニーズの変化に対応する必要があるため、本書は記載された内容の実 現に関する Microsoft の確約とはみなされないものとします。また本 書に記載された情報の正確さについて、保証するものではありません。
OWL-Sを用いたWebアプリケーションの検査と生成
IIS 4.0で開発をするコツ Webアプリケーション構築.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
D2-301 現時点の本資料は 完成版のスライドではありません。
MSON-B2 .NET Framework Web アプリケーション開発
JPAを利用した RESTful Webサービスの開発
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Visual Studio 2005による XML Web サービス入門
Visual Studio 2005による Web アプリケーション入門
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
Twitterクライアントに学ぶASP.NETアプリ
Servlet J2EE I 第8回 /
タグライブラリ ソフトウェア特論 第6回.
タグライブラリとJSP J2EE I 第10回 /
Delphi Day ~Delphi 概要、および新バージョンのご紹介~
チュートリアル EBSCOhost での記事の閲覧 support.ebsco.com.
Visual Studio LightSwitchの概要
セッション管理 J2EE I 第9回 /
チュートリアル EBSCOhostの概要
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
タグライブラリとJSP J2EE II 第2回 2004年10月7日 (木).
JSFによるWebアプリケーション開発 第6回
HTTPプロトコル J2EE I 第7回 /
Cisco Meeting Server - API概要
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
ServletによるWebアプリ作成 入門
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
データベース設計 第9回 Webインタフェースの作成(1)
Visual Basic Oracle Database 11g Release 1
Javaによる Webアプリケーション入門 第9回
Javaによる Webアプリケーション入門 第5回
Windows Phone 7.5 の データ アクセスとクラウド連携
第8章 Web技術とセキュリティ   岡本 好未.
Oracle XEを使ってみよう 初音玲.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
MVP for VB が語る C# 入門 初音 玲.
MVP for VB が語る C# 入門 初音 玲.
Emoneαプログラミング入門 初音 玲.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
.NET Framework 3.0 概要 (旧称 : WinFX)
Javaによる Webアプリケーション入門 第6回
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
データベースアクセス技術 ADO.NET 2.0 開発者カテゴリ ◆NOTES◆
湘南工科大学 2013年10月8日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
情報学類 2年 吉田 光男 ブラウザで使う RSS Reader の実装 情報学類 2年 吉田 光男
Oracle XEを使ってみよう 初音玲.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Androidアプリの作成 07A1069 松永大樹.
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Presentation transcript:

Twitterクライアントに学ぶASP.NETアプリ 2008.09.20 初音 玲

index Twitter API Linq to XML WEBアプリ Twitter APIの弱点対策案

index Twitter API Linq to XML WEBアプリ Twitter APIの弱点対策案

取得フォーマットはXML前提 Twitter 必要なAPIのみ説明 json,rss,atomの説明はなし Twitterクライアント 今日の前提 取得フォーマットはXML前提 json,rss,atomの説明はなし 必要なAPIのみ説明 例)IM関連の説明はなし Twitterクライアント Twitter BASIC認証 http http (XML)

Status :ステータス関連 User :ユーザ関連 Direct Message :DM関連 Friendship :フレンド関連 Twitter API Status :ステータス関連 User :ユーザ関連 Direct Message :DM関連 Friendship :フレンド関連 Account :アカウント関連 Favorite :お気に入り関連 Notification :IM関連 Block :ブロック関連 Help :補助関連

public_timeline friends_timeline user_timeline show update replies ステータス関連 public_timeline friends_timeline http://twitter.com/statuses/friends_timeline.xml ?since=日時?page=ページ user_timeline show update http://twitter.com/statuses/update.xml?status=・・・・ replies destroy

friends followers friendsと featured followersは違う show friends ↓ ユーザ情報関連 friends followers featured show friendsと followersは違う friends ↓ 新しい用語「following」

create favorites destroy http://twitter.com/favorites.xml?page=ページ お気に入り関連 favorites http://twitter.com/favorites.xml?page=ページ create http://twitter.com/favorites/create/id.xml destroy http://twitter.com/favorites/destroy/id.xml

index Twitter API Linq to XML WEBアプリ Twitter APIの弱点対策案

DEMO ステータス(発言)を取得

xml = XElement.Parse(client.DownloadString(url)) ステータス(発言)を取得 Dim culture As New CultureInfo("en-us", True) Dim client As New System.Net.WebClient client.Credentials = _ New NetworkCredential("hogeID","hogePass") client.Encoding = System.Text.Encoding.UTF8 url = _ "http://twitter.com/statuses/friends_timeline.xml" & _ "&since=" & _ System.Uri.EscapeUriString(( _ Now.AddHours(-24)).ToString( _ "ddd, dd MMM yyyy HH:mm:ss +0900", culture)) xml = XElement.Parse(client.DownloadString(url))

<statuses type="array"> <status> <created_at>Sat Sep 13 04:03:14 +0000 2008</created_at> <id>919769975</id> <text>ぜっぺりあのお肉~♪</text> <source><a href="・・・・・・">Tween</a></source> <truncated>false</truncated> <in_reply_to_status_id/> <in_reply_to_user_id/> <favorited>false</favorited> <user> <id>14565539</id> <name>はつね</name> <screen_name>hatsune_</screen_name> <location>Tokyo, Japan</location> <description>初音玲は・・・・・・・</description> <profile_image_url>・・・・・・・</profile_image_url> <url>http://blogs.wankuma.com/hatsune/</url> <protected>false</protected> <followers_count>224</followers_count> </user> </status> </statuses> ステータス取得結果(xml)

ステータス取得結果の解析(Linq to XML) Dim usr = _ From status In xml.Descendants("status") _ Order By status.Element("id").Value Descending _ Select New TStatus With { _ .ID = status.Element("id").Value, _ .ScreenName = status.Element("user"). _ Descendants("screen_name").Value, _ .Text = status.Element("text").Value, _ .Published = DateTime.ParseExact( _ status.Element("created_at").Value, _ "ddd MMM dd HH:mm:ss +0000 yyyy", _ culture.DateTimeFormat).AddHours(9), _ .Favorited = (status.Element("favorited").Value = "true")}

DEMO 発言(ステータス更新)

発言(ステータス更新) Dim client As New System.Net.WebClient client.Credentials = _ New NetworkCredential("hogeID","hogePass") Dim byt As Byte() = client.UploadData( _ "http://twitter.com/statuses/update.xml" & _ "?status=" & _ System.Uri.EscapeDataString("やほー"), _ "POST", _ System.Text.Encoding.Default.GetBytes("")) ・どの発言(status-id)に対する発言なのかを指定するパラメタがない。 ・誰に対する返信なのかは、@id指定 ・どの発言(status-id)に対する発言なのかを指定するパラメタ in_reply_to_status_id

index Twitter API Linq to XML WEBアプリ Twitter APIの弱点対策案

Webアプリ ブラウザ Twitter Webアプリ FW

URLパラメタ Session 画面間の情報の受け渡し方法の検討 情報はURLとして記録 ログイン ログイン処理 タイムライン URLパラメタ 情報はURLとして記録 URLの一部なので、refererで記録される危険性 Session 情報はサーバーに記録 Session IDのみCookieに記録 Cookie使えない場合、SessionIDをURLパラメタを利用 セッション情報の有効期間

DEMO htmlエンコード

Visual Studio 2008におけるMobileコントロールの問題 VS2005 携帯用のMobileコントロールがある UAごとにレンダリングするhtmlが変わる VS2008 携帯用のMobileコントロールがない! VS2005のコントロールを使う方法もあるけれど 標準的なhtmlをレンダリングするように注意してaspxファイルを作成

Webサイト Webアプリ WebサイトとWebアプリ VS2005以降で作成可能 [ファイル]-[新しいWebサイト]で新規作成 *.aspx.vbファイルを実行時ビルド可能 *.vbファイルはApp_Codeフォルダに配置 事前ビルドして配置も可能 Webアプリ VS2005以外で作成可能(VS2005SP1は可能) [ファイル]-[新しいプロジェクト]-[Web]-[ASP.NET Webアプリケーション]で新規作成 *.aspx.vbファイルは事前ビルドし、dllをbinフォルダに配置 *.vbファイルは事前ビルドし、dllをbinフォルダに配置

TwitterTimeline クラスライブラリ imoTwitのソリューション構造 imoTwit Webサイト Login.aspx Regist.aspx [MasterPage] Default.aspx Replies.aspx Direct.aspx binフォルダ TwitterTimeline クラスライブラリ App_Codeフォルダ TwitterRegist クラス

TwitterTimelineクラスライブラリ プロパティ SetFav UserAccount SetUpdate メソッド Dispose GetDirectMessageList GetFriendsTimelineList GetLimitStatus GetRepliesTimelineList IsLoginOK SetDeFav SetDirectMessage

TwitterTimelineクラスライブラリ DEMO TwitterTimelineクラスライブラリ

index Twitter API Linq to XML WEBアプリ Twitter APIの弱点対策案

Twitter APIの弱点(主にステータス関連) Repliesは、先頭に指定されたときのみ Friends_Timelineに取得回数制限がある 相手(@hogehoge)Timelineへの表示 No 自分のみの相手側表示 相手のみの 相手側表示 両想い @hogehoge こんにちは Repliesのみ Friends_Timelineのみ ○ @hogehoge @hoge こんにちは @hoge @hogehoge こんにちは × こんにちは、@hogehoge . @hogehoge こんにちは . @hogehoge @hoge こんにちは . @hoge @hogehoge こんにちは 対策は?

Repliesだけではなく、Friendsも必要 対策は? Repliesだけではなく、Friendsも必要 Linq To XMLで取得したIListをConcat message = replies.Concat(friends).ToList Friends_Timelineに取得回数制限がある APIを使わずにhtml解析

対策案:Webサービスの提供 Twitter Webサービス FW WMアプリ FW ブラウザ Webアプリ

http://blogs.wankuma.com/hatsune hatsune@wankuma.com Q&A http://blogs.wankuma.com/hatsune hatsune@wankuma.com