使用 SkyDrive 將“Windows 8”應用程式擴充到雲

來源:互聯網
上載者:User
 

儘管一個人擁有多個裝置已是大勢所趨,但許多人仍將他們的所有重要檔案儲存體在一台 PC 或存放裝置上,並且不能從他們的其他裝置訪問這些檔案。這些檔案與一個“位置”關聯,該位置可以是台式 PC、攜帶型電腦或 USB Key。如果沒有該位置的存取權限,您將無法訪問您的文檔或照片。不僅訪問檔案會非常困難(有時甚至根本不可能),與不同網路上的其他人共用檔案也同樣棘手。

現在,雲的出現使人們可以從幾乎任何位置訪問其內容(並且非常方便!)。檔案存放在單個位置,可從世界上任意位置中任何串連到 Internet 的裝置進行訪問。通過將檔案的單個副本放置在雲中,共用照片和即時就文檔開展 協作也變得更加輕鬆。但是,雲尚未成為訪問內容的主流用法。

在 Build 大會的開幕致辭中,Chris Jones 談到了每個 Windows 8 客戶如何獲得 SkyDrive:每個人都擁有一個雲端,可以在那裡集中儲存個人的重要檔案,並且可即時訪問和隨時共用這些檔案。大會中有些發言介 紹了 Windows 8 開發人員如何通過 Live Connect 和 Live SDK 為其應用程式提供雲支援。當應用程式與雲結合使用時,Metro 風格應用程式就可以使用 Live 雲通過
Windows Live ID 啟用單一登入,並在使用者允許的情況下訪問 SkyDrive 上的文檔、 照片和視頻等個人資料。

如果您正考慮為 Windows 8 開發 Metro 風格的應用程式,本博文將向您示範如何啟用單一登入並訪問 SkyDrive 上的使用者資料,從而使您的 Metro 風格應用程式更加個人化 – 當然是在使用者同意的情況下。

將應用程式串連到 Live 雲

作為一名開發人員,當您準備構建世界上的下一個優秀應用程式時,無論在哪個平台上,都會重複遇到兩類問題:

  • 為使用者啟用註冊和登入功能。使用者不喜歡被迫登入到網站和應用程式,而開發人員知道使用者登入後,對其應用程式的參與度和忠誠度會增加。登入功能使您能夠對使用者的體驗進行個人化,並讓您的應用程式記住 使用者的資料和自訂項。
  • 輕鬆地將使用者的內容納入您的應用程式以增強您的體驗。當您考慮到使用者將其照片分散在各種不同的裝置和雲中時,要求使用者佈建個人資料圖片這類看起來簡單的任務也會瞬間變得複雜起來。

在 Windows 8 中,我們為我們自己的應用程式(如“照片”和“郵件”)解決了這兩個問題,而且您的 Metro 風格應用程式也能夠使用該同一平台和技術。具體而言,我們是通過如下方式解決上述問題的:

  1. 使用者雲端式的標識現在是作業系統的一項基本要素,獲得使用者的單一登入許可的應用程式和網站普遍可以訪問該標識。這意味著,您的應用程式可以繼承使用者及其標識的已登入狀態,因此您不必擔心會出現單獨的身分識別驗證過 程。這對於方法 2 的實現尤其重要。
  2. 我們允許使用行業標準協議的應用程式訪問 Live 雲中的使用者內容,這些協議包括:用於身分識別驗證和授權的 OAuth,作為在訪問 SkyDrive 和 Hotmail 時所返回資料的承載的 JSON,以及用於實現與 Windows Live Messenger 的互通性的 XMPP。此外,我們還提供了 Windows 8 開發人員預覽版的 Live SDK(通過與 Visual Studio 11 Express 整合),以使 WinRT 的開發更輕鬆。

使用者首次將您的應用程式串連到其 Windows Live ID 後,在使用 Windows Live ID 登入的任何 Windows 8 PC 上,該使用者都將始終擁有無縫的單一登入體驗。這同樣適用於您的網站,如果他們使用 Windows Live ID 登入到其 PC 或者登入到支援 Windows Live ID 的任何網站(如 Hotmail 或 SkyDrive),他們也將獲得單一登入體驗。

通過 Windows Live ID 使用單一登入和將 SkyDrive 內容整合到 Metro 風格應用程式的最簡單方法是利用 Live SDK。

這並不意味著您的應用程式需要使用其中任一服務—是否使用它們完全由開發人員決定。不要求 Windows 8 應用程式使用 Live ID 登入或使用任何雲端式的特定儲存。這些只是提供給應用程式開發人員的服務,供其選擇 使用。

在應用程式中使用 Live SDK

首先,如果您尚未在 PC 上安裝
Windows 8 開發人員預覽版和
Live SDK 開發人員預覽版,則需要先安裝它們。這還 將安裝 Microsoft Visual Studio 11 Express for Windows 開發人員預覽版。其次,您需要訪問
Windows Push Notifications and Live Connect 應用程式管理網站以配置您的 Metro 風格應用程式訪問 Live 雲。按照網站上的步驟操作,註冊您的應用程式以使用 Live Connect。

將應用程式配置為使用 Live Connect 後,需要添加對 Live SDK 的引用。Live SDK 可採用 C#、JavaScript 和 VB 語言開發。您可以通過以下方法將其添加到您的項目中:按右鍵相關項目並依次選擇“添加 引用”和 [Extension SDKs](擴充 SDK),然後從列表中選擇 Live SDK 對應的條目,如下所示:

在 JavaScript 應用程式,您只需要添加對 Default.html 的以下指令碼引用:

    <script src="ms-wwa:///LiveSDKHTML.5.0/js/wl.js" ></script>

在 C# 中,您應該添加以下引用才能在代碼中利用 Live SDK:

 using Microsoft.Live;

在 VB 中,只需使用以下匯入語句:

 Imports Microsoft.Live

這隻是在為 Windows 8 構建 Metro 風格應用程式時我們如何支援您採用所選語言進行編程的一個很好的樣本。

在 Metro 風格應用程式中使用 Windows Live ID

為了在應用程式中利用單一登入 (SSO) 功能,您需要在應用程式中的某個位置放置一個登入按鈕。如果使用者已使用 Windows Live ID 登入到 PC 中,當使用者單擊該登入按鈕時,他們會自動登入;否則系統會要求他們登 錄。之後,會要求使用者同意您的應用程式訪問他們的資料,例如他們的 SkyDrive 照片。您只需添加登入按鈕,系統會自動為您處理此工作流程。請注意,您的客戶仍需要確認是否登入您的應用程式,而不是自動登入,這是一個重要 的設計考慮事項。

下面是登入按鈕的樣本 HTML 程式碼(注意,這隻是一個 DIV,需要進一步配置)。

 <div id="signinbutton" style="width: 251px; margin-left: auto; margin-top: 40%; height: 64px; top: 0px;"></div>

向頁面中添加登入按鈕後,必須掛接該按鈕,因為樣本 HTML 所做的只是在該頁面上為其分配空間。我們需要使用您的應用程式所需的範圍配置該登入按鈕。範圍定義應用程式有權訪問的內容以及使用者必須同意 提供的內容。為了訪問 SkyDrive 資料,您的應用程式需要使用下面兩個範圍:

  • wl.signin - 該範圍允許自動登入到您的應用程式。
  • wl.skydrive - 該範圍授予對使用者的 SkyDrive 的專輯和照片的存取權限(注意:如果您計劃向 SkyDrive 中上傳內容,您的應用程式應使用
    wl.skydrive_update)。

下面是用於初始化的樣本 JavaScript 代碼,假設您已經在頁面上建立了 ID 為“signinbutton”的登入按鈕:

function init() {        WL.init();        WL.ui({            name: "signin",            element: "signinbutton",            scope: ["wl.signin", "wl.skydrive"],        });    }

下面是用於處理登入的樣本 JavaScript 代碼:

WL.Event.subscribe("auth.login", onLoginComplete);    function onLoginComplete() {        var session = WL.getSession();        if (!session.error) {            signedInUser();        }    }

當使用者單擊登入按鈕時,系統會徵詢他們的同意以允許您的應用程式訪問他們的資料。如上所述,如果使用者使用 Windows Live ID 登入到 PC,則單一登入將會生效,使用者無需再次登入。而是會直接轉到此徵詢同意螢幕:

從您的應用程式訪問 SkyDrive 內容

使用者為您的應用程式授予對其資料的存取權限後,系統會向您的應用程式返回 OAuth 2.0 存取權杖,然後應用程式可使用這些令牌對 Live 雲進行 RESTful API 呼叫。下面是 JavaScript 中用於訪問照片的代碼 的內容:

function downloadPicture(folderId) {        var path = folderId + "/files"        // Submit request        WL.api({ path: path, method: "GET" }, onEnumerateFolderComplete)    };

通過上述大量調用,應用程式可以將 SkyDrive 內容嵌入到其體驗中,例如 PowerPoint 投影片、視頻、Excel 試算表或者只是一些簡單的照片,如下面的應用程式範例所示。

如您所見,將單一登入和 SkyDrive 中的使用者Data Integration到應用程式中只需要使用 Live SDK 編寫幾行代碼即可。您的應用程式會更加個人化,並且可以充分利用雲中的使用者照片或文檔。可從此處下載本博文中顯示的應用程式範例的完整原始碼。

有關使用 Live SDK 在應用程式中啟用單一登入並利用 SkyDrive API 的詳細資料,請觀看 BUILD 大會上 Dare Obasanjo 的發言使用 Live 服務增強應用程式功能和 Steve Gordon 的發言

SkyDrive API 的完整開發人員指南。還可以通過訪問
http://dev.live.com 並下載
Live SDK 開發人員預 覽版來瞭解更多資訊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.