我想在我的Windows Phone 7應用程序上使用Hotmail API。因此,我必須授予我的移動應用程序訪問權限。我使用Microsoft Live Connect API這樣做,這真的很適合開始。我使用以下代碼進行身份驗證:在WP7中存儲LiveConnectSession
string[] requiredScope = { "wl.signin", "wl.calendars_update", "wl.offline_access" };
LiveAuthClient auth = new LiveAuthClient(Configuration.ClientID);
auth.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(authInitializeCompletedHandler);
auth.LoginAsync(requiredScope);
ClientID是我從MS獲得的用於註冊我的應用程序的ID。我的長相回調(簡單)是這樣的:
private void authInitializeCompletedHandler(object sender, LoginCompletedEventArgs e)
{
if (e.Status == LiveConnectSessionStatus.Connected)
{
this._session = e.Session; // Session hat AccessToken und RefreshToken
this._isAuthorized = true;
callDelegates();
}
}
如果調用成功(和它目前的確,使作品),我保存獲取的會議。該會話可以在LiveConnectClient構造函數中使用,以啓用與MS API的通信,在我的應用程序中使用Hotmail API。
LiveConnectClient client = new LiveConnectClient(_session);
我的問題是,我想以某種方式保存會話,因此,當應用程序被墓碑和獲得它的焦點回來,我不希望用戶許可再問 - 他已經給了我, 。我自己發現返回的會話包含一個AccessToken,RefreshToken和Expires屬性(我知道那是什麼,這不是問題)。我如何在將來的通話中使用這些信息?微軟有關這方面的文檔到此爲止,我找不到任何有用的信息。
2解決方法,我發現:
- Live Connect Button:不應該走的路,因爲我不希望顯示實時按鈕只是讓我的會話變量回來。
- RESTful API:這需要我完全重寫我迄今爲止所做的工作,因爲一切都依賴於LiveConnectClient(這使得通信非常簡單)。
但我真的不想使用該解決方法。我相信/希望有更好的解決方案。
我知道你的意思,男人。微軟對他們API的一些奇怪/任意的限制令人沮喪。 :( – pettys