Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Diagnostics;
- using System.Threading.Tasks;
- using Windows.Foundation.Collections;
- using Windows.Security.Authentication.Web;
- using winsdkfb;
- using winsdkfb.Graph;
- namespace MultithreadingFinalTask.Models
- {
- public class FacebookSocialNetwork : ISocialNetwork
- {
- private FBResult _loginResult;
- private const string _facebookAppID = "399131104308804";
- private readonly string[] _facebookPermissions = new[]
- {
- "public_profile",
- "email",
- "user_friends"
- };
- public async Task<string> LogIn()
- {
- var session = FBSession.ActiveSession;
- session.FBAppId = _facebookAppID;
- session.WinAppId =
- WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString();
- var permissions = new FBPermissions(_facebookPermissions);
- _loginResult = await session.LoginAsync(permissions);
- await GetFriends();
- return FBSession.ActiveSession.User.Id;
- }
- public async void LogOut()
- {
- var session = FBSession.ActiveSession;
- await session.LogoutAsync();
- }
- public async Task<IUser[]> GetFriends()
- {
- string path = "/" + FBSession.ActiveSession.User.Id + "/friends";
- var factory = new FBJsonClassFactory(
- s => JsonConvert.DeserializeObject<FacebookUser[]>(JObject.Parse(s)["data"].ToString())
- );
- var singleValue = new FBSingleValue(path, null, factory);
- var result = await singleValue.GetAsync();
- var users = (FacebookUser[])result.Object;
- foreach(var user in users)
- {
- GetAvatar(user);
- }
- return users;
- }
- private async void GetAvatar(IUser user)
- {
- string path = "/" + FBSession.ActiveSession.User.Id + "/picture";
- var factory = new FBJsonClassFactory(
- s => JObject.Parse(s)["data"]["url"].ToString()
- );
- var props = new PropertySet();
- props.Add("redirect", "false");
- props.Add("width", "128");
- props.Add("height", "128");
- var singleValue = new FBSingleValue(path, props, factory);
- var result = await singleValue.GetAsync();
- user.AvatarUrl = (string)result.Object;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement