36
BÀI BÁO CÁO Cách làm việc với Facebook Nhóm 6: Nguyn Văn Uy 11520473 Trn Tiến Đi 11520039 Nguyn Hu Tun 11520458 GVHD: Phm Thi Vương

Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Embed Size (px)

Citation preview

Page 1: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

BAgraveI BAacuteO CAacuteO

Caacutech lagravem việc với

FacebookNhoacutem 6

Nguyễn Văn Uy 11520473Trần Tiến Đại 11520039Nguyễn Hữu Tuấn11520458

GVHD

Phạm Thi Vương

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về facebookdeverlopers

Website httpsdevelopersfacebookcom

Website httpfacebooksdknet

Giới thiệu về facebookdeverlopers

Facebook SDK for NETFeaturesbull NuGet Packages Available (Facebook and Facebook channel)

bull Compatible with all Facebook Graph and REST API methods

bull Supports photovideo uploads

bull Supports batch requests and etags

bull Supports Facebookrsquos most current authentication systems

bull Sample applications and documentation are provided to get you started quickly

Supported Platformsbull NET 35 (Client Profile and Full Profile)

bull NET 40 (Client Profile and Full Profile)

bull NET 45

bull Windows Store Apps

bull Silverlight 5

bull Windows Phone 71

bull Windows Phone 8

Giới thiệu về facebookdeverlopers

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 2: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về facebookdeverlopers

Website httpsdevelopersfacebookcom

Website httpfacebooksdknet

Giới thiệu về facebookdeverlopers

Facebook SDK for NETFeaturesbull NuGet Packages Available (Facebook and Facebook channel)

bull Compatible with all Facebook Graph and REST API methods

bull Supports photovideo uploads

bull Supports batch requests and etags

bull Supports Facebookrsquos most current authentication systems

bull Sample applications and documentation are provided to get you started quickly

Supported Platformsbull NET 35 (Client Profile and Full Profile)

bull NET 40 (Client Profile and Full Profile)

bull NET 45

bull Windows Store Apps

bull Silverlight 5

bull Windows Phone 71

bull Windows Phone 8

Giới thiệu về facebookdeverlopers

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 3: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về facebookdeverlopers

Website httpsdevelopersfacebookcom

Website httpfacebooksdknet

Giới thiệu về facebookdeverlopers

Facebook SDK for NETFeaturesbull NuGet Packages Available (Facebook and Facebook channel)

bull Compatible with all Facebook Graph and REST API methods

bull Supports photovideo uploads

bull Supports batch requests and etags

bull Supports Facebookrsquos most current authentication systems

bull Sample applications and documentation are provided to get you started quickly

Supported Platformsbull NET 35 (Client Profile and Full Profile)

bull NET 40 (Client Profile and Full Profile)

bull NET 45

bull Windows Store Apps

bull Silverlight 5

bull Windows Phone 71

bull Windows Phone 8

Giới thiệu về facebookdeverlopers

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 4: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Website httpfacebooksdknet

Giới thiệu về facebookdeverlopers

Facebook SDK for NETFeaturesbull NuGet Packages Available (Facebook and Facebook channel)

bull Compatible with all Facebook Graph and REST API methods

bull Supports photovideo uploads

bull Supports batch requests and etags

bull Supports Facebookrsquos most current authentication systems

bull Sample applications and documentation are provided to get you started quickly

Supported Platformsbull NET 35 (Client Profile and Full Profile)

bull NET 40 (Client Profile and Full Profile)

bull NET 45

bull Windows Store Apps

bull Silverlight 5

bull Windows Phone 71

bull Windows Phone 8

Giới thiệu về facebookdeverlopers

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 5: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Facebook SDK for NETFeaturesbull NuGet Packages Available (Facebook and Facebook channel)

bull Compatible with all Facebook Graph and REST API methods

bull Supports photovideo uploads

bull Supports batch requests and etags

bull Supports Facebookrsquos most current authentication systems

bull Sample applications and documentation are provided to get you started quickly

Supported Platformsbull NET 35 (Client Profile and Full Profile)

bull NET 40 (Client Profile and Full Profile)

bull NET 45

bull Windows Store Apps

bull Silverlight 5

bull Windows Phone 71

bull Windows Phone 8

Giới thiệu về facebookdeverlopers

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 6: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 7: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về bộ thư viện

facebookdllldquoThe Facebook SDK for NET binaries are only distributed via nugetVigrave vậy để sử dụng bộ thư viecircn nagravey chuacuteng ta cagravei đặt trực tiếp thocircng qua NUGET trong

Visual Studio Phiecircn bản hiện tại lagrave 642

nuget install Facebook

ldquoFor those using older versions of Visual Studio that does not support NuGet Package Manager please download the command line version of NuGetexe and run the following commandldquo

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 8: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về bộ thư viện

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 9: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 10: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Trước tiecircn để coacute thể lagravem việc với facebook thocircng qua bộ thư viện đatilde tải

về chuacuteng ta phải tạo một app trecircn trang chủ dagravenh cho nhagrave phaacutet triển của

facebook

Truy cập httpsdevelopersfacebookcomapps

Lagravem theo caacutec hướng dẫn của facebook để đăng kiacute trở thagravenh nhagrave phaacutet triển

Tương taacutec với facebook qua

facebookdll

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 11: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Tương taacutec với facebook qua

facebookdllSau khi đatilde đăng kiacute xong tiến hagravenh tạo một app theo hướng dẫn

Giữ lại AppID vagrave SecretID để sử dụng sau nagravey

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 12: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Tương taacutec với facebook qua

facebookdll Class FacebookClient

Function Description

object Get() Makes a GET request to the Facebook server

object Post() Makes a POST request to the Facebook server

Uri GetLoginUrl(object parameters) Gets the Facebook OAuth login url

Uri GetLogoutUrl(object parameters)Gets the Facebook OAuth logout url

object ParseDialogCallbackUrl(Uri uri) Parses the dialog callback url to an object of the resulting data

bool TryParseOAuthCallbackUrl(Uri url out

FacebookOAuthResult facebookOAuthResult)Try parsing the url to FacebookFacebookOAuthResult

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 13: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Tương taacutec với facebook qua

facebookdllFunction Description

FacebookOAuthResult ParseOAuthCallbackUrl(Uri uri) Parse the url to FacebookFacebookOAuthResult

object Delete(string path object parameters) Makes a DELETE request to the Facebook server

void CancelAsync() Cancels asynchronous requests

void VerifyGetSubscription(string requestHubMode

string requestVerifyToken string requestHubChallenge)

Verify HTTP_X_HUB_SIGNATURE for HTTP

GET

object VerifyPostSubscription(string

requestHttpXHubSignature string requestBody string

appSecret)

Verify HTTP_X_HUB_SIGNATURE for HTTP

POST

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 14: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Tương taacutec với facebook qua

facebookdll VD Lấy Url login của app

bull Trước tiecircn tạo một đối tượng FacebookClient

FacebookClient _fb=new FacebookClient()

Uri _loginUrl = _fbGetLoginUrl(object parameter)

Client_id App ID

redirect_uri Địa chỉ trang web trả về khi yecircu cầu thagravenh

cocircng

scope Phạm vi truy xuất thocircng tin của ứng dụng

display Caacutech thức trigravenh bagravey trang login

response_type Kiểu đối tượng trả về

parameterVd Uri _loginUrl=_fbGetLoginUrl(new

client_id = _appID

redirect_uri = _redirectUri

scope=ldquouser_about_me publish_streamrdquo

display=ldquopopuprdquo

Response_type=ldquotokenrdquo

)

bull Yecircu cầu url login sử dụng hagravem

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 15: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Tương taacutec với facebook qua

facebookdll VD Đăng nhập facebook bằng loginUrl đatilde coacute

WebBrowser loginBrowser = new WebBrowser()logiBrowserNavigate(_loginUrl)

bull Kiểm tra đăng nhập vagrave nhận AccessToken

bull Tạo một đối tượng WebBrowser

void loginBrower_navigated(object sender NavigationEventArgs e)

FacebookOAuthResult _resultif(_fbTryParseOAuthCallbackUri(euri _result)

_accessToken=_resultAccessToken

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 16: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Tương taacutec với facebook qua

facebookdll Hagravem Get

Function Description

virtual object Get(string path) Makes a GET request to the Facebook server

virtual object Get(string path object parameters) Makes a GET request to the Facebook server

virtual object Get(string path object parameters

Type resultType)Makes a GET request to the Facebook server

virtual void GetAsync(string path object parameters

object userState)

Makes an asynchronous GET request to the Facebook

server

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 17: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

VD Lấy thocircng tin người dugraveng

bull Để lấy thocircng tin người dugraveng ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomerdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 18: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

VD Lấy danh saacutech bạn begrave

bull Để lấy danh saacutech bạn begrave ta sử dụng hagravem Get

_fbGet(string path)

VD var info=_fbGet(ldquomefriendsrdquo)

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 19: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

VD Lấy danh saacutech bạn begrave online

bull Để lấy danh saacutech bạn begrave online ta sử dụng hagravem Get

_fbGet(string path object parameters)

VD

Tương taacutec với facebook qua

facebookdll

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 20: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

VD Lấy danh saacutech Albums của người dugraveng

bull Để lấy danh saacutech album ta dugraveng hagravem

_fbGet(string path)

VD var info=_fbGet(ldquomealbumsrdquo)

Tương taacutec với facebook qua

facebookdll

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 21: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Hagravem Post

Function Description

virtual object Post(object parameters) Makes a POST request to the Facebook server

virtual object Post(string path object parameters) Makes a POST request to the Facebook server

virtual void PostAsync(object parameters)Makes an asynchronous POST request to the

Facebook server

virtual Taskltobjectgt PostTaskAsync(string path

object parameters)

Makes an asynchronous POST request to the

Facebook server

Tương taacutec với facebook qua

facebookdll

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 22: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

VD Post 1 status lecircn tường

bull Để post status lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 23: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

VD Post 1 higravenh lecircn tường

bull Để post higravenh lecircn trang chủ ta sử dụng hagravem Post

_fbPost(string Path object parameter)

VD

Tương taacutec với facebook qua

facebookdll

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 24: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Giới thiệu về facebook deverlopers

Giới thiệu về bộ thư viện facebookdll

Tương taacutec với facebook qua facebookdll

Xacircy dựng tiacutenh năng chat qua facebook server

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 25: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

Chuacuteng ta sử dụng bộ thư viện agsxmppdll do cocircng ty AG-Software cung cấp

Đacircy lagrave một bộ thư viện được cung cấp miễn phiacute vagrave dựa trecircn phương thức

xmpp

VẤN ĐỀ

Bộ thư viecircn facebookdll khocircng hỗ trợ việc xacircy dựng tiacutenh năng chat

Phiacutea Facebook khocircng hỗ trợ caacutec hagravem API để xacircy dựng tiacutenh năng

chat magrave chỉ hỗ trợ xacircy dựng tiacutenh năng chat thocircng qua giao thức

xmpp (Extensible Messaging and Presence Protocol)

GIẢI PHAacuteP

Link download bộ thư viện agsxmppdll

httpwwwag-softwarenetagsxmpp-sdk

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 26: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

Extensible Messaging and Presence Protocol (XMPP) trước đacircy lagrave Jabber lagrave

giao thức mở vagrave dựa trecircn nền tảng XML dugraveng trong nhắn tin nhanh (instant

messaging) vagrave thocircng tin hiện diện trực tuyến (presence information) Theo Hội

Tiecircu chuẩn XMPP (XMPP Standards Foundation trước đacircy lagrave Jabber Software

Foundation JSF) phần mềm dựa trecircn Jabber được triển khai tại hagraveng ngagraven maacutey

phục vụ trecircn Internet vagrave được hơn 10 triệu người trecircn khắp thế giới sử dụng

Jeremie Miller khởi đầu dự aacuten vagraveo năm 1998 phiecircn bản đầu tiecircn được cocircng bố

vagraveo thaacuteng năm 2000 Sản phẩm chiacutenh của dự aacuten lagrave jabberd một trigravenh phục vụ

(server) để từ đoacute caacutec trigravenh khaacutech (client) kết nối đến vagrave trao đổi tin nhắn Trigravenh

phục vụ nagravey coacute thể tạo mạng Jabber riecircng tư (như sau tường lửa) hoặc coacute thể tham

gia vagraveo mạng Jabber cocircng cộng toagraven cầu Đặc tiacutenh cốt lotildei của Jabber lagrave bản chất

của hệ thống tin nhắn nhanh phacircn taacuten vagrave việc sử dụng streaming XML

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 27: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

Điểm đặc trưng của hệ thống Jabber lagrave noacute coacute caacutec transport cograven được gọi lagrave

gateway (cổng) cho pheacutep người dugraveng truy cập mạng với caacutec giao thức khaacutec - như

AIM vagrave ICQ (dugraveng OSCAR) MSN Messenger vagrave Windows Messenger (dugraveng Dịch

vụ nhắn tin NET - NET Messenger Service) Yahoo Messenger SMS hay E-mail

Khocircng như caacutec trigravenh khaacutech đa giao thức như Trillian hay Gaim việc truy cập đến

caacutec giao thức khaacutec được Jabber cung cấp ở cấp độ trigravenh phục vụ bằng caacutech truyền

thocircng tin qua caacutec dịch vụ cổng đặc biệt chạy trecircn một maacutey tiacutenh ở xa Bất cứ người

dugraveng nagraveo cũng coacute thể đăng kiacute với một trong caacutec cổng nagravey bằng caacutech cung cấp

thocircng tin cần thiết để đăng nhập vagraveo mạng đoacute vagrave từ đoacute coacute thể liecircn lạc với người

dugraveng của mạng khaacutec như thể họ lagrave người dugraveng Jabber Điều nagravey coacute nghĩa lagrave bất cứ

trigravenh khaacutech nagraveo hỗ trợ đầy đủ giao thức Jabber đều coacute thể được dugraveng để truy cập bất

cứ mạng nagraveo coacute cổng kết nối magrave khocircng cần thecircm dograveng matilde lệnh nagraveo từ trigravenh khaacutech

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 28: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

Nền tảng của giao thức Jabber hiện được Tổ chức Phần mềm Jabber quản liacute

đatilde được IETF chấp nhận lagravem giao thức standards-track dưới tecircn XMPP với

RFC 3920 Noacute thường được xem lagrave đối thủ cạnh tranh với SIMPLE dựa trecircn

giao thức SIP để lagravem giao thức chuẩn cho nhắn tin nhanh vagrave thocircng baacuteo hiện

diện tuy nhiecircn thiết kế của XMPP được nhắm đến việc cung cấp caacutec tiện iacutech

trigravenh trung gian (middleware) liecircn ứng dụng vagrave mục điacutech tổng quaacutet

Người dugraveng Jabber được xaacutec định bằng tecircn người dugraveng vagrave tecircn maacutey phục vụ

caacutech nhau bằng dấu Căn cước nagravey được gọi lagrave Jabber ID hay JID

GIỚI THIỆU VỀ GIAO THỨC XMPP

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 29: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

JID coacute dạng thức tecircn_người_dugravengtecircn_miềntagravei_nguyecircn tương tự như một địa

chỉ email

Người dugraveng Jabber coacute thể truy cập vagraveo tagravei khoản của migravenh cugraveng luacutec tại nhiều điểm

truy cập khaacutec nhau được xaacutec định qua phần tagravei_nguyecircn viacute dụ

tecircn_người_dugravengtecircn_miềncomcơ_quan vagrave tecircn_người_dugravengtecircn_miềncomnhagrave

Khocircng cần thiết chỉ định phần tagravei nguyecircn khi liecircn lạc với người dugraveng khaacutec

Tương tự như Sendmail người dugraveng Jabber coacute thể truy cập vagraveo caacutec giao thức

khaacutec qua cổng giao tiếp Jabber (Jabber Transport) viacute dụ JID của một địa chỉ lagrave

tecircn_người_dugravengmsncommsnjabberservercom

Tecircn người dugraveng trong JID dagravei tối đa 1023 kyacute tự vagrave khocircng được chứa

lt gt amp khoảng trắng vagrave kyacute tự điều khiển

JID

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 30: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add thư viện agsXMPP vagraveo project Khai baacuteo để sử dụng

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 31: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

Để coacute thể đăng nhập vagraveo dịch vụ chat ta cần phải coacute username của người dugraveng vagrave

password Username của người dugraveng coacute thể tigravem thấy dưới dạng

Sau khi đatilde coacute username vagrave pass của người dugraveng chuacuteng ta tiến hagravenh đăng nhập

XmppClientConnection xmpp

xmpp = new XmppClientConnection(ldquochatfacebookcomrdquo)

xmppOpen(username password)

if (xmppAuthenticated == true)

Presence p = new Presence(ShowTypechat Online)pType = PresenceTypeavailable

xmppSend(p)

ThreadSleep(6000)

httpswwwfacebookcom[username]

Khai baacuteo

XAcircY DỰNG CHỨC NĂNG CHAT

Tecircn server chat

của facebookDừng lại để chờ

server xaacutec thực

Username

chỗ nagravey

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 32: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Add bạn begrave vagraveo danh saacutech chat

xmppMessageGrabberAdd(new Jid(- + friendId + chatfacebookcom)

new BareJidComparer()

new MessageCB(MessageCallBack)

null)

ID của bạn begrave

Hagravem nhận sự kiện

khi coacute tin nhắn tới

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 33: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook serverXAcircY DỰNG CHỨC NĂNG CHAT

Hagravem nhận sự kiện tin nhắn đến

void MessageCallBack(object sender Message msg object data)

if (msgBody = null)displayMessage()

Đacircy lagrave hagravem chịu traacutech

nhiệm xử liacute vagrave hiển thị tin

nhắn

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 34: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server

Gửi tin nhắn đi

xmppSend(new Message(new Jid(ldquo-rdquo + friendID + chatfacebookcom)

MessageTypechat

messageBody))

Nội dung tin

nhắn gửi đi

ID của bạn begrave sẽ

nhận tin nhắn

XAcircY DỰNG CHỨC NĂNG CHAT

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 35: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Xacircy dựng tiacutenh năng chat qua

facebook server Như vậy chuacuteng ta đatilde coacute thể hoagraven thagravenh được tiacutenh năng

chat facebook sử dụng thư viecircn agsxmppdll

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei

Page 36: Slide báo cáo cuối kì lớp winp1.d21 facebook notification

Cảm ơn thầy vagrave caacutec

bạn đatilde quan tacircm

theo dotildei