// Funcao para pegar a foto do usuario // Retorna foto como Texture public IEnumerator GetPicture(string _facebookId, FacebookAPI.Picture type, FacebookAPI.GetPictureCallback callback, int tries = 0) { // Se ja estiver cacheada as informacoes, somente enviar para o callback if (users.ContainsKey(_facebookId) && users[_facebookId].picture != null) { // Cacheia todos os tamanhos de fotos possiveis (square, small, etc) e retorna pro callback somente // se tiver cacheado o tamanho de foto correto solicitado if (type == FacebookAPI.Picture.Square && users[_facebookId].picture.square != null) { if (callback != null) { callback(null, _facebookId, users[_facebookId].picture.square); } yield break; } else if (type == FacebookAPI.Picture.Large && users[_facebookId].picture.large != null) { if (callback != null) { callback(null, _facebookId, users[_facebookId].picture.large); } yield break; } else if (type == FacebookAPI.Picture.Small && users[_facebookId].picture.small != null) { if (callback != null) { callback(null, _facebookId, users[_facebookId].picture.small); } yield break; } else if (type == FacebookAPI.Picture.Medium && users[_facebookId].picture.medium != null) { if (callback != null) { callback(null, _facebookId, users[_facebookId].picture.medium); } yield break; } } // Caso contrario, fazer uma conexão ao facebook para pegar as informacoes // Cria URL do request string url = GRAPH_URL + _facebookId + "/picture/?"; if (_facebookId == "me") { url += "access_token=" + WWW.EscapeURL(facebookToken) + "&"; } url += "type=" + type.ToString().ToLower(); WWW getPicture = new WWW(url); yield return(getPicture); // Se houver algum erro, enviar erro para o callback if (getPicture.error != null) { if (callback != null) { callback(getPicture.error, _facebookId, null); } } // Caso contrario, validar foto recebida else { // Checa se a foto não esta no formato de GIF (formato não suportado pela Unity3D) if (getPicture.text.StartsWith("GIF")) { if (callback != null) { callback("User images are GIF format!", _facebookId, null); } yield break; } // Cacheia as informacoes recebidas Texture picture = getPicture.texture; FacebookAPI.User user = (users.ContainsKey(_facebookId)) ? users[_facebookId] : new FacebookAPI.User(); if (user.picture == null) { user.picture = new FacebookAPI.User.Picture(); } if (type == FacebookAPI.Picture.Square) { user.picture.square = picture; } else if (type == FacebookAPI.Picture.Large) { user.picture.large = picture; } else if (type == FacebookAPI.Picture.Small) { user.picture.small = picture; } else { user.picture.medium = picture; } // Envia pro callback if (callback != null) { callback(null, _facebookId, picture); } } yield break; }
public GenerateState(string facebookId, FacebookAPI.Picture type, FacebookAPI.GetPictureCallback callback, int tries = 0) { stateType = StateType.GetPicture; globalFacebookId = facebookId; getPictureType = type; getPictureCallback = callback; this.tries = tries; }
public GenerateState(string facebookId, FacebookAPI.Picture type, FacebookAPI.GetPictureCallback callback, int tries = 0) { stateType = StateType.GetPicture; globalFacebookId = facebookId; getPictureType = type; getPictureCallback = callback; this.tries = tries; }