Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using System;
  4. using System.Diagnostics;
  5. using System.Threading.Tasks;
  6. using Windows.Foundation.Collections;
  7. using Windows.Security.Authentication.Web;
  8. using winsdkfb;
  9. using winsdkfb.Graph;
  10.  
  11. namespace MultithreadingFinalTask.Models
  12. {
  13. public class FacebookSocialNetwork : ISocialNetwork
  14. {
  15. private FBResult _loginResult;
  16.  
  17. private const string _facebookAppID = "399131104308804";
  18. private readonly string[] _facebookPermissions = new[]
  19. {
  20. "public_profile",
  21. "email",
  22. "user_friends"
  23. };
  24.  
  25. public async Task<string> LogIn()
  26. {
  27. var session = FBSession.ActiveSession;
  28. session.FBAppId = _facebookAppID;
  29. session.WinAppId =
  30. WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString();
  31.  
  32. var permissions = new FBPermissions(_facebookPermissions);
  33. _loginResult = await session.LoginAsync(permissions);
  34.  
  35. await GetFriends();
  36.  
  37. return FBSession.ActiveSession.User.Id;
  38. }
  39.  
  40. public async void LogOut()
  41. {
  42. var session = FBSession.ActiveSession;
  43. await session.LogoutAsync();
  44. }
  45.  
  46. public async Task<IUser[]> GetFriends()
  47. {
  48. string path = "/" + FBSession.ActiveSession.User.Id + "/friends";
  49. var factory = new FBJsonClassFactory(
  50. s => JsonConvert.DeserializeObject<FacebookUser[]>(JObject.Parse(s)["data"].ToString())
  51. );
  52.  
  53. var singleValue = new FBSingleValue(path, null, factory);
  54. var result = await singleValue.GetAsync();
  55. var users = (FacebookUser[])result.Object;
  56.  
  57. foreach(var user in users)
  58. {
  59. GetAvatar(user);
  60. }
  61. return users;
  62. }
  63.  
  64. private async void GetAvatar(IUser user)
  65. {
  66. string path = "/" + FBSession.ActiveSession.User.Id + "/picture";
  67. var factory = new FBJsonClassFactory(
  68. s => JObject.Parse(s)["data"]["url"].ToString()
  69. );
  70.  
  71. var props = new PropertySet();
  72. props.Add("redirect", "false");
  73. props.Add("width", "128");
  74. props.Add("height", "128");
  75.  
  76. var singleValue = new FBSingleValue(path, props, factory);
  77. var result = await singleValue.GetAsync();
  78.  
  79. user.AvatarUrl = (string)result.Object;
  80. }
  81.  
  82.  
  83.  
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement