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

Slides:



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

情報の交換・共有・蓄積を目的とした 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アプリケーションの検査と生成
Curlの特徴.
IIS 4.0で開発をするコツ Webアプリケーション構築.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
JPAを利用した RESTful Webサービスの開発
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Visual Studio 2005による XML Web サービス入門
Visual Studio 2005による Web アプリケーション入門
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
Servlet J2EE I 第8回 /
Outlook で送信したメールの 添付ファイルが消える
タグライブラリとJSP J2EE I 第10回 /
チュートリアル EBSCOhost での記事の閲覧 support.ebsco.com.
セッション管理 J2EE I 第9回 /
チュートリアル EBSCOhostの概要
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
タグライブラリとJSP J2EE II 第2回 2004年10月7日 (木).
JSFによるWebアプリケーション開発 第6回
HTTPプロトコル J2EE I 第7回 /
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
Cisco Meeting Server - API概要
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
GoNET 5.0 新機能 のご紹介 2016年04月 アイビーソリューション株式会社.
データベース設計 第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回.リレーショナルデータベースを使ってみよう
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 湘南工科大学情報工学科 准教授 小林 学.
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
Oracle XEを使ってみよう 初音玲.
Javaによる Webアプリケーション入門 第11回
Servlet ソフトウェア特論 第7回.
Twitterクライアントに学ぶASP.NETアプリ
Servlet J2EE I (データベース論) 第12回 /
Servlet データベース論 第6回.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
Jakarta Struts (1) ソフトウェア特論 第10回.
Androidアプリの作成 07A1069 松永大樹.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
Microsoft Office Project Server 2007
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」

direct_messages sent new ダイレクトメッセージ(DM)関連 direct_messages http://twitter.com/direct_messages.xml ?since=日時?page=ページ sent http://twitter.com/direct_messages/sent.xml ?since=日時?page=ページ new http://twitter.com/direct_messages/new.xml ?user=宛先?text=本文

フレンド関連 create destroy exists

update_delivery_device rate_limit_status アカウント関連 verify_credentials end_session archive update_location update_delivery_device rate_limit_status

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

IM関連 ブロック関連 補助関連 follow leave create destroy test downtime_schedule その他 IM関連 follow leave ブロック関連 create destroy 補助関連 test downtime_schedule

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

ダイレクトメッセージ関連(受信DMと送信DMを合成) http://twitter.com/direct_messages.xml 送信したDMの取得 http://twitter.com/direct_messages/sent.xml 合成 Dim res = From status In ・・・・ Dim req = From status In ・・・・ message = res.Concat(req).ToList

API制限状況を取得 Dim url As String = _ "http://twitter.com/account/rate_limit_status.xml" Dim client As New System.Net.WebClient Dim xml As System.Xml.Linq.XElement client.Credentials = _ New NetworkCredential("hogeID","hogePass") client.Encoding = System.Text.Encoding.UTF8 xml = XElement.Parse(client.DownloadString(url)) remainigHits = _ xml.Descendants("remaining-hits").Value

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エンコード

htmlエンコード/htmlデコードの徹底 TextBoxコントロール Labelコントロール

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

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