34
Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick http://www.nickharris.net Nick Harri s

Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick Nick Harris

Embed Size (px)

Citation preview

Page 1: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure

@cloudnickhttp://www.nickharris.net

Nick Harris

Page 2: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Session Contents

Review of Live Tiles

A deep dive on using the Windows Push Notification Service

Introduction to the Windows Azure Toolkit for Windows 8

You’ll leave with examples of how toEnable push notifications in your applicationsBuild a push service using Windows Azure

Page 3: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Demo

Page 4: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Live Tiles with Push Notifications

Page 5: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris
Page 6: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Windows Push Notification Service

(WNS)

Page 7: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Push Notification Overview1. Request Channel URI

2. Register with your Cloud Service

3. Authenticate & Push Notification

Windows 8

(1)

(2)

(3)

(3)

Page 8: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

1. Request a Channel URIEach tile has a unique Channel URI

Requested by App on each run. URI can change

Generated by WNS

Opaque to the app

Windows 8

(1)

(2)

(3)

(3)

Page 9: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

var push = Windows.Networking.PushNotifications;

var promise = push.PushNotificationChannelManager

.createPushNotificationChannelForApplicationAsync();

promise.then(function (ch) {

var uri = ch.uri;

var expiry = ch.expirationTime;

updateChannelUri(uri, expiry);

});

Page 10: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

2. Register with Your Cloud Service Register your app with

your own Cloud ServiceShould be authenticated and secure

Store Channel URI and associate it with any app specific context

Create your business logic for sending notifications

Windows 8

(1)

(2)

Page 11: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

function updateChannelUri(channel, channelExpiration) {

if (channel) {

var serverUrl = "https://mysampleapp.cloudapp.net/register";

var payload = { Expiry: channelExpiration.toString(),

URI: channel };

var xhr = new WinJS.xhr({

type: "POST",

url: serverUrl,

headers: { "Content-Type": "application/json; charset=utf-8" },

data: JSON.stringify(payload)

}).then(function (req) { … });

}

}

Page 12: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

3. Authenticate & Send Notification

OAuth 2 Authentication

HTTP POST to Channel URI

XML notification payload

Windows 8

(2)

(3)

(3)

Page 13: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

3. Register Your App

Page 14: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

POST https://login.live.com/accesstoken.srf HTTP/1.1Content-Type: application/x-www-form-urlencodedHost: login.live.comContent-Length: 221

grant_type=client_credentials&client_id=ms-app%3A%2F%2FS-1-15-2-1633617344-1232597856-4562071667-7893084900-2692585271-282905334-531217761&client_secret=XEvTg3USjIpvdWLBFcv44sJHRKcid43QXWfNx3YiJ4g&scope=notify.windows.com

Page 15: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

HTTP/1.1 200 OKCache-Control: no-storeContent-Length: 422Content-Type: application/jsonConnection: close{

"access_token":"EgAcAQMAAAAg/RBw++jdA1MzM0LTUzMTIxNzc2MQA=", "token_type":"bearer“

}

Page 16: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

3. Push Notification HTTP Request

POST https://db3.notify.windows.com/?token=AQI8iP%2OtQE%3d HTTP/1.1Content-Type: text/xmlHost: db3.notify.windows.comX-WNS-Type: wns/badgeAuthorization: Bearer EgAcAQMAAAAg/RBw++jdA1MzM0LTUzMTIxNzc2MQA=Content-Length: 58

<?xml version="1.0" encoding="utf-8"?><badge value="34"/>

Page 17: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

3. Push Notification HTTP Response

HTTP/1.1 200 OKContent-Length: 0X-WNS-NOTIFICATIONSTATUS: receivedX-WNS-MSG-ID: 1ACD59E4683FE4BFX-WNS-DEBUG-TRACE: DB3WNS4011434

Important NotesDevice can be offline or disconnected. Success indicates that the request was successfully received by WNS; not necessarily that the user saw it.Additional headers in the response for notification and device status.

Page 18: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Announcing

Page 19: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

3. Authentication Code

using Windows.Recipes.Push.Notifications.Security;…// Constructor takes your Package SID and secret keyIAccessTokenProvider _tokenProvider = new WNSAccessTokenProvider(

"ms-app%3A%2F%2FS-1-15-2-1633617344-1232597856-4562071667-7893084900-2692585271-282905334-531217761",

"XEvTg3USjIpvdWLBFcv44sJHRKcid43QXWfNx3YiJ4g");

Page 20: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

3. Push Notification Code

using Windows.Recipes.Push.Notifications;

var toast = new ToastNotification(_tokenProvider);toast.ChannelUrl = "https://db3.notify.windows.com/?token=AQI8iP%2OtQE%3d";

toast.ToastType = ToastType.ToastImageAndText02;

toast.Image = "https://demosa.blob.core.windows.net/toastImg1.png";

toast.Text = new List<string> {"Miguel Saenz comment on your status", "I love that quote! How have you …"};

NotificationSendResult result = toast.Send();

Page 21: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Push Notification Summary1. Request Channel URI

2. Register with your Cloud Service

3. Authenticate & Push Notification

Windows 8

(1)

(2)

(3)

(3)

Page 22: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

What a service needs to support

How do I do that with Windows Azure?

Page 23: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Demo

Page 24: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris
Page 25: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

src: http://blogs.msdn.com/b/b8/archive/2011/11/02/updating-live-tiles-without-draining-your-battery.aspx

Figure 4: Live tiles registered to the Developer Preview Stocks app

Page 26: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Core Services Services to Help Scale

Page 27: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Summary

Page 28: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

SummaryThere are 3 easy steps to implement push notifications:

The Windows Push Notification Recipe helps you easily add push notifications to your service

The Windows Azure Toolkit for Windows 8is the best way to start building a service

Windows Azure provides the resources to scale your services as your app grows

Page 29: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Get Started

http://WindowsAzure.com

Page 30: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Android

Windows Phone

http://bit.ly/watandroidhttp://bit.ly/watios

http://bit.ly/watwp7

3 Month Free Trial Benefits (Monthly)Subscription Level 3 Month Free Trial

Compute 750 hours of a Small Compute Instance*

Storage 20GB with 50k Storage transactions

SQL Azure 1GB Web Edition SQL Azure database

Access Control Transactions** 100k transactions

Service Bus Free through March 31, 2012

Caching 128 MB cache

Data Transfers (WW) 20GB outbound / Unlimited inbound data transfer

Page 31: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Android

Windows Phone

http://bit.ly/watandroidhttp://bit.ly/watios

http://bit.ly/watwp7

MSDN Subscriber Benefits (Monthly)Subscription Level Visual Studio Professional

with MSDNVisual Studio Premium with MSDN

BizSpark & Visual Studio Ultimate with MSDN

Compute 375 hours of the Small Instance

750 hours of the Small Instance

1,500 hours of the Small Instance

Storage 20 GB 25 GB 30 GB

Storage Transactions 250,000 1,000,000 2,000,000

SQL Azure 1GB 1GB 5GB

Access Control Transactions*

100k 200k 500k

Service BusFree through March 31, 2012

Free through March 31, 2012

Free through March 31, 2012

Caching 128 MB cache 128 MB cache 128 MB cache

Data Transfers (WW) 25GB OutFree In

30GB OutFree In

35GB OutFree In

Annual Savings** $1,300.00 $2,100.00 $3,700.00

* The Windows Azure Access Control service is provided at no charge for billing periods prior to Dec 1, 2012.** Projected annual savings at Pay-As-You-Go rates in US dollars.http://aka.ms/mbl-azure/benefits

Page 32: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Resources

Register your apphttp://manage.dev.live.com/build

Download the Windows Azure Toolkit for Windows 8 http://WATWindows8.codeplex.com

Download the Windows Azure Toolkit for Windows Phone http://WATwp.codeplex.com

Windows 8 Developer Documentationhttp://dev.windows.com

Page 33: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

Your Feedback is Important

Please fill out a session evaluation form drop it off at the conference registration

desk.

Thank you!

Page 34: Bring Your Windows 8 Apps to Life with Push Notifications using Windows Azure @cloudnick  Nick Harris

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.