рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрдкреНрд▓реАрдХреЗрд╢рди рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди

рд╣рд╛рдп% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо%!

рд╕рдЪ рдХрд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА рдХрд┐ рдЗрддрдиреЗ рд▓реЛрдЧ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдХреЛ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЖрдирдиреНрджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдЬ рдореИрдВ рдЖрд╡реЗрджрди рд╕реЗ рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреА рддрд░рд╣ рд▓реЗрдЦ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдорд▓реЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛: рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред


SkyDrive


рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХрд╛ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдПрдирд╛рд▓реЙрдЧ рд╣реИ: 25 рдЬреАрдмреА рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬред рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реИ: рдХрдИ рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ, рдпрд╣ рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ "рдХреНрд▓рд╛рдЙрдб рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡"ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдПрдХ рдлреЛрдЯреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдлреЛрдЯреЛ рдХреЛ рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рд▓рд╛рдЗрд╡ рдПрд╕рдбреАрдХреЗ


рд╣рдорд╛рд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд▓рд╛рдЗрд╡ рдПрд╕рдбреАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ SDK рдХреЗ рд╕рд╛рде рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдбреА рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдкреАрдЖрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдм рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ рдХрд┐ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ ред рдпрд╣реА рд╣реИ, рдЕрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд╛рдзрд┐рдХрд░рдг


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓рд╛рдЗрд╡ рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдирдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ: рд╕рд╛рдЗрдирдЗрдирдмрдЯрдиред



<my:SignInButton Name="signInButton" Height="72" Margin="143,511,153,0" VerticalAlignment="Top" Branding="Skydrive" ClientId="_id" Content="Button" RedirectUri="http://oauth.live.com/desktop" Scopes="wl.basic wl.photos wl.skydrive wl.offline_access wl.signin wl.skydrive_update" SessionChanged="signInButton1_SessionChanged" TextType="SignIn" /> 


рдЖрдЗрдП рдореБрдЦреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:

рдмреНрд░рд╛рдВрдбрд┐рдВрдЧ - рдмрдЯрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЖрдЗрдХрди (рдпрд╣ "рд╡рд┐рдВрдбреЛрдЬ", "рд╣реЙрдЯрдореЗрд▓", "рдореИрд╕реЗрдВрдЬрд░") рдорд╛рди рднреА рд▓реЗ рд╕рдХрддрд╛ рд╣реИ;
ClientId - рдКрдкрд░ рдкреНрд░рд╛рдкреНрдд рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреА рдЖрдИрдбреА;
рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд - рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдкрддрд╛;
рд╕реНрдХреЛрдк - рдЖрд╡реЗрджрди рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдБред рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рд╣рдо рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВрдЧреЗ, рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рджреАрд░реНрдШрд╛рдУрдВ рдФрд░ рдХреБрдЫ рдФрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЖрдк рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдХреЛрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ;
рд╕реЗрд╢рдирдЪреИрдиреНрдб - рд╣рдорд╛рд░реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реИрдВрдбрд▓рд░;
TextType - рдмрдЯрди рдкрд░ рдкрд╛рдаред рдпрд╣ рднреА рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рд╛рдЗрдирдЗрди, рд▓реЙрдЧрд┐рди, рдХрдиреЗрдХреНрдЯ рдФрд░ рдХрд╕реНрдЯрдоред

рдЕрдм рд╣реИрдВрдбрд▓рд░ рдкрд░ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ:
 private void signInButton1_SessionChanged(object sender, Microsoft.Live.Controls.LiveConnectSessionChangedEventArgs e) { if (e.Session != null && e.Status == LiveConnectSessionStatus.Connected) { App.Session = e.Session; } } 


рдореИрдВ рд╕рддреНрд░ рдХреЛ App.xaml.cs рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ: рдЗрд╕ рддрд░рд╣ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд┐рд╕реА рднреА рднрд╛рдЧ рд╕реЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 private static LiveConnectSession session = null; public static LiveConnectSession Session { get { return session; } set { session = value; } } 


рдирд╛рдо рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:
 using Microsoft.Live; 


рдЕрдм, рдЬрдм рдЖрдк рд╕рд╛рдЗрди рдЗрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рд▓рд╛рдЗрд╡ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрд╡реЗрджрди рдХреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рд╣рдордиреЗ рд╕реНрдХреЛрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдереЗред



рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдБ / рдЬрд╛рдБрдЪ рдХрд░реЗрдВ


рдХрд┐рд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдпрд╛ рдПрд▓реНрдмрдо рдореЗрдВ рдПрдХ рдлреЛрдЯреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрдИрдбреА рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЬрдм рдЖрдк рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕рдХреА рдЖрдИрдбреА рд╕рд╣рд┐рдд рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдПрдХ рдПрд▓реНрдмрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, IsolatedStorageSettings рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ , рдФрд░ рдлрд┐рд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝реЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рджрд┐рдП рдЧрдП рдирд╛рдо рд╡рд╛рд▓рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдлреЛрдЯреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╛рдВрдЫрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВред рдФрд░, рдЕрдЧрд░ рдпрд╣ рдореМрдЬреВрдж рд╣реИ - рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ, рдпрджрд┐ рдирд╣реАрдВ - рдкрд╣рд▓реЗ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред

рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЬрд╛рдБрдЪ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
 public class SkyDriveContent { public string Name { get; set; } public string ID { get; set; } } List<SkyDriveContent> ContentList = new List<SkyDriveContent>(); private void CheckAlbum() { if (App.Session == null) { MessageBox.Show("You must sign in first."); Waiting.Visibility = Visibility.Collapsed; } else { txtStatus.Text = "Checking album"; LiveConnectClient client = new LiveConnectClient(App.Session); client.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(clientDataFetch_GetCompleted); client.GetAsync("/me/skydrive/files"); } } void clientDataFetch_GetCompleted(object sender, LiveOperationCompletedEventArgs e) { if (e.Error == null) { List<object> data = (List<object>)e.Result["data"]; foreach (IDictionary<string, object> content in data) { SkyDriveContent skyContent = new SkyDriveContent(); skyContent.Name = (string)content["name"]; if (skyContent.Name == "SkyDriveTest") { albumID = (string)content["id"]; } ContentList.Add(skyContent); } if (albumID == "") CreateAlbum(); else UploadPhoto(); } else { MessageBox.Show("Error calling API: " + e.Error.ToString()); Waiting.Visibility = Visibility.Collapsed; } } 


рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдордзреНрдпрд╡рд░реНрддреА рд╡рд░реНрдЧ SkyDriveContent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдЙрдирдХреЗ рдЖрдИрдбреА рдХреЗ рдирд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЙрди рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реИрдВред рдпрджрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡рдЯреЗрд╕реНрдЯ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреА рдЖрдИрдбреА рд▓реЗрддреЗ рд╣реИрдВ; рдпрджрд┐ рд╣рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ POST рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рддреЗ рд╣реИрдВ:
 private void CreateAlbum() { txtStatus.Text = "Creating album"; Dictionary<string, object> fileData = new Dictionary<string, object>(); fileData.Add("name", "SkyDriveTest"); LiveConnectClient client = new LiveConnectClient(App.Session); client.PostCompleted += new EventHandler<LiveOperationCompletedEventArgs>(CreateAlbum_Completed); client.PostAsync("me/albums", fileData); } void CreateAlbum_Completed(object sender, LiveOperationCompletedEventArgs e) { if (e.Error == null) { JObject jObject = JObject.Parse(e.RawResult); albumID = (string)jObject["id"]; UploadPhoto(); } else { MessageBox.Show("Error calling API: " + e.Error.ToString()); Waiting.Visibility = Visibility.Collapsed; } } 


рдЬрдм рд╣рдо рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╣рдореЗрдВ ID рд╕рд╣рд┐рдд JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдЧреБрдг рднреЗрдЬрддрд╛ рд╣реИред рдбрд┐рд╕реЗрд░рд┐рдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВ Json.NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ NuGet рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдлрд╝реЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ


рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝реЛрд▓реНрдбрд░ рдЖрдИрдбреА рд╣реИ, рд╣рдо рдлреЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреИрдорд░реЗ рд╕реЗ рд╣рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдлреЛрдЯреЛ:
 void cameraCapture_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK) { bitImage.SetSource(e.ChosenPhoto); image1.Source = bitImage; stream = new IsolatedStorageFileStream("/image.jpg", System.IO.FileMode.OpenOrCreate, iso); WriteableBitmap wb = new WriteableBitmap(bitImage); System.Windows.Media.Imaging.Extensions.SaveJpeg(wb, stream, wb.PixelWidth, wb.PixelHeight, 0, 80); stream.Close(); } } 


рдкреНрд░рддреНрдпрдХреНрд╖ рд▓реЛрдбрд┐рдВрдЧ:
 public void UploadPhoto() { txtStatus.Text = "Uploading photo"; LiveConnectClient uploadClient = new LiveConnectClient(App.Session); uploadClient.UploadCompleted += new EventHandler<LiveOperationCompletedEventArgs>(uploadClient_UploadCompleted); stream = iso.OpenFile("/image.jpg", System.IO.FileMode.Open, System.IO.FileAccess.Read); uploadClient.UploadAsync(albumID, "Image " + DateTime.Now.Millisecond + ".jpg", stream); } void uploadClient_UploadCompleted(object sender, LiveOperationCompletedEventArgs e) { stream.Close(); if (e.Error == null) { txtStatus.Text = "Sharing photo"; JObject jObject = JObject.Parse(e.RawResult); string name = (string)jObject["id"]; Share(name); } else { MessageBox.Show("Error calling API: " + e.Error.ToString()); Waiting.Visibility = Visibility.Collapsed; } } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлреЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреА рдЖрдИрдбреА рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдЕрдирдХрд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рдирд┐рдЬреА рдПрдХреНрд╕реЗрд╕ рд╕рдВрд╢реЛрдзрдХ рд╣реЛрддрд╛ рд╣реИред рдЕрдм рд╣рдо рдЕрдкрдиреА рдЫрд╡рд┐ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдорд╛рд░реА рдЫрд╡рд┐ рдХреА рдЖрдИрдбреА рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ / share_read_link рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
 private void Share(string filename) { LiveConnectClient client = new LiveConnectClient(App.Session); client.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(GetSharedLink_Completed); client.GetAsync(filename + "/shared_read_link"); } void GetSharedLink_Completed(object sender, LiveOperationCompletedEventArgs e) { if (e.Error == null) { ShareLinkTask shareLinkTask = new ShareLinkTask(); shareLinkTask.Title = "Holiday Photo"; shareLinkTask.LinkUri = new Uri(e.Result["link"].ToString(), UriKind.Absolute); shareLinkTask.Message = "My super holiday photo via #HolidayPhoto!"; shareLinkTask.Show(); txtStatus.Text = "Done!"; Waiting.Visibility = Visibility.Collapsed; } else { MessageBox.Show("Error calling API: " + e.Error.ToString()); Waiting.Visibility = Visibility.Collapsed; } } 




рдпрд╣рд╛рдВ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рдорд╛рд░реА рдлрд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ ShareLinkTask рдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╛рдд рд╣реИ! рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ

рдирд┐рд╖реНрдХрд░реНрд╖


рдмреЗрд╢рдХ, рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдФрд░ рд▓рд╛рдЗрд╡ рдПрд╕рдбреАрдХреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдерд╛ред рдЖрдк рдирд┐рдореНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рд▓реЗрдЦ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреИрдорд░рд╛ рдЪрд┐рддреНрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рд╕реНрдерд┐рддрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред MainPage.xaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреЗ ClientID рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ! рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛!

рд╕рднреА рд░рдЪрдирд╛рддреНрдордХ рдХрд╛рд░рдирд╛рдореЗ рдФрд░ рд╕рдлрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг! рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рджрд┐рди рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрдиреЛрдВ рдХреА рдПрдХ рдирдИ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИред

UPD: рд╣рдмрд╕реНрдЯреНрд░реЗрдЬ рд╕реЗ рдереЛрдбрд╝реА рдкрд░реЗрд╢рд╛рдиреА рд╣реИ, рдЬрд▓реНрдж рд╣реА рддрд╕реНрд╡реАрд░реЗрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреАред

Source: https://habr.com/ru/post/In136459/


All Articles