動作の確認
ここまでで,
- サインインボタンからサインインします。
- 新しいプレゼンテーションに,
スライドを1枚追加します。 - 2枚目のスライドにマーカーを追加します
(図3)。
ここまでの動作は,
もちろん,
図でもわかるように,
サインアウト処理
少し残っている処理を書いていきましょう。サインアウトボタンをクリックしたときの処理は,
Sub SignOut()
Me.LiveConnectClient = Nothing
Globals.Ribbons.MainRibbon.SignInButton.Visible = True
Globals.Ribbons.MainRibbon.SignInButton.Enabled = True
Globals.Ribbons.MainRibbon.SignOutMenu.Visible = False
End Sub
アクセストークンの更新
先ほどの動作の確認では,
アクセストークンの更新には,
新しいアクセストークンの取得は,
- https://
oauth. live. com/ token?client_ id=CLIENT_ ID&grant_ type=refresh_ token&refresh_ token=REFRESH_ TOKEN&redirect_ uri=https:// oauth. live. com/ desktop
LiveAuthClientクラスに,
LiveAuthClient.
Function RefleshSession(session As LiveConnectSession) As LiveConnectSession
Dim uri = New Uri(String.Format("https://oauth.live.com/token?client_id={0}&grant_type=refresh_token&refresh_token={1}&redirect_uri={2}",
Me.ClientId, session.RefreshToken, Me.RedirectUri))
Dim client = New WebClient
Dim json = client.DownloadString(uri)
Dim o = JObject.Parse(json)
If o("error") IsNot Nothing Then
Return Nothing
End If
Dim newSession As New LiveConnectSession(
o("access_token").ToString(),
o("refresh_token").ToString(),
New DateTimeOffset(Now.ToUniversalTime).AddSeconds(o("expires_in").ToObject(Of Integer)),
o("scope").ToString.Split(" "c))
Return newSession
End Function
AddPictureメソッド内の,
' LiveConnectClient の更新
Dim authClient = New LiveAuthClient(ThisAddIn.ClientId)
Dim newSession = authClient.RefleshSession(Me.LiveConnectClient.Session)
Me.LiveConnectClient = New LiveConnectClient(newSession)
ここでは単純に必ずアクセストークンを更新するようにしています。LiveConnectSessionオブジェクトは,
おわりに
SkyDriveと連携したPowerPointアドインの開発は以上です。いかがでしたか。これまでの連載内容の一区切りということで,