void GetShareData(string error, IJSonObject data) { tries++; Debug.Log(tries); if (error != null) { Debug.Log(error); tries = 0; if (tempCallback != null) { tempCallback("Connection Error. Please try again later.", tempFace, tempParams, null); } tempFace = ""; tempCallback = null; tempParams = new Dictionary <string, string>(); } else { if (data["result"].ToString() == "shared") { Debug.Log("deu shared..." + data); tries = 0; if (tempCallback != null) { tempCallback(null, tempFace, tempParams, data["post_id"].StringValue); } tempFace = ""; tempCallback = null; tempParams = new Dictionary <string, string>(); } else { Debug.Log("deu not shared..."); if (tries > 5) { Debug.Log("ja tentou mais de 5 vezes"); tries = 0; if (tempCallback != null) { tempCallback("Connection Error. Please try again later.", tempFace, tempParams, null); } tempFace = ""; tempCallback = null; tempParams = new Dictionary <string, string>(); } else { Debug.Log("tentou menos, tentar de novo!"); Invoke("promptAgain", 1f); } } } }
public GenerateState(string facebookId, Dictionary <string, string> parameters, FacebookAPI.WallPostCallback callback, int tries = 0) { stateType = StateType.WallPost; globalFacebookId = facebookId; wallParameters = parameters; wallPostCallback = callback; this.tries = tries; }
// Funcao para fazer uma postagem no mural do usuario/amigo // Retorna ID do post se nao for feito por dialogo public IEnumerator WallPost(string _facebookId, Dictionary <string, string> parameters, FacebookAPI.WallPostCallback callback, int tries = 0) { // Cria URL do request bool isDialog = (parameters != null && parameters.ContainsKey("dialog")) ? true : false; string url = (isDialog) ? DIALOG_URL : GRAPH_URL; if (!isDialog) { url += _facebookId + "/"; } url += "feed/?"; // Se for dialogo, adiciona redirecionamento para php aonde fecha o browser nativo do Prime31 // e informacoes extras para fazer o post if (isDialog) { url += "app_id=" + facebookId + "&"; url += "redirect_uri=" + WWW.EscapeURL(Flow.URL_BASE + "login/tables/input_share.php?" + //"app_id=" + Info.appId + "&token=" + WWW.EscapeURL(Save.GetString(PlayerPrefsKeys.TOKEN.ToString())) +"&device=" + GameInfo.device()) + "&"; "app_id=" + Info.appId + "&token=" + WWW.EscapeURL(Save.GetString(PlayerPrefsKeys.TOKEN.ToString())) + "&device=" + SystemInfo.deviceUniqueIdentifier.Replace("-", "")) + "&"; if (_facebookId != "me") { url += "to=" + WWW.EscapeURL(_facebookId) + "&"; } } else { url += "method=post&"; } // Checa se os parametros enviados nao sao nulos e adiciona no form if (parameters != null) { if (parameters.ContainsKey("message")) { url += "message=" + WWW.EscapeURL(parameters["message"]) + "&"; } if (parameters.ContainsKey("name")) { url += "name=" + WWW.EscapeURL(parameters["name"]) + "&"; } if (parameters.ContainsKey("link")) { url += "link=" + WWW.EscapeURL(parameters["link"]) + "&"; } if (parameters.ContainsKey("description")) { url += "description=" + WWW.EscapeURL(parameters["description"]) + "&"; } if (parameters.ContainsKey("picture")) { url += "picture=" + WWW.EscapeURL(parameters["picture"]) + "&"; } } // Se for nulo, enviar erro para o callback else { if (callback != null) { callback(NULL_PARAMETERS, facebookId, parameters, null); } Debug.LogWarning(NULL_PARAMETERS); yield break; } // Access token do usuario url += "access_token=" + WWW.EscapeURL(facebookToken); // Se nao for dialogo, fazer o post if (!isDialog) { WWW wallPost = new WWW(url); yield return(wallPost); // Se houver algum erro, enviar erro para o callback if (wallPost.error != null) { // Envia para o callback if (callback != null) { callback(wallPost.error, _facebookId, parameters, null); } // Cacheia a conexão atual para tentar novamente apos o "giro" Login( new GenerateState(_facebookId, parameters, callback) , HandleState ); yield break; } // Caso contrario, decodar JSON recebido else { IJSonObject data = wallPost.text.ToJSon(); // Se o JSON recebido for invalido, retornar e enviar para o callback if (data.IsEmpty() || data.IsError()) { if (callback != null) { callback("Invalid JSon: " + wallPost.text, _facebookId, parameters, null); } yield break; } // Envia ID do post para o callback if (callback != null) { callback(null, _facebookId, parameters, data.GetString("id")); } } } // Se for dialogo, abrir a url no navegador do Prime31 else { Flow.game_native.openUrlInline(url); tempFace = _facebookId; tempParams = parameters; tempCallback = callback; if (_facebookId == "me") { new GameJsonAuthConnection(Flow.URL_BASE + "login/tables/check_share.php", GetShareData).connect(); } else { if (callback != null) { callback(null, _facebookId, parameters, null); } } // Como nao tem como receber o callback do navegador do Prime31 // enviar callback de sucesso (mesmo se o usuario nao estiver postado) } yield break; }
public GenerateState(string facebookId, Dictionary<string, string> parameters, FacebookAPI.WallPostCallback callback, int tries = 0) { stateType = StateType.WallPost; globalFacebookId = facebookId; wallParameters = parameters; wallPostCallback = callback; this.tries = tries; }
void GetShareData(string error, IJSonObject data) { tries++; if(error != null) { Debug.Log(error); tries = 0; if (tempCallback != null) tempCallback("Connection Error. Please try again later.", tempFace, tempParams, null); tempFace = ""; tempCallback = null; tempParams = new Dictionary<string, string>(); } else { if(data["result"].ToString() == "shared") { tries = 0; if (tempCallback != null) tempCallback(null, tempFace, tempParams, data["post_id"].StringValue); tempFace = ""; tempCallback = null; tempParams = new Dictionary<string, string>(); } else { if(tries > 5) { tries = 0; if (tempCallback != null) tempCallback("Connection Error. Please try again later.", tempFace, tempParams, null); tempFace = ""; tempCallback = null; tempParams = new Dictionary<string, string>(); } else { Invoke("promptAgain",1f); } } } }
// Funcao para fazer uma postagem no mural do usuario/amigo // Retorna ID do post se nao for feito por dialogo public IEnumerator WallPost(string _facebookId, Dictionary<string, string> parameters, FacebookAPI.WallPostCallback callback, int tries = 0) { // Cria URL do request bool isDialog = (parameters != null && parameters.ContainsKey("dialog")) ? true : false; string url = (isDialog) ? DIALOG_URL : GRAPH_URL; if (!isDialog) url += _facebookId + "/"; url += "feed/?"; // Se for dialogo, adiciona redirecionamento para php aonde fecha o browser nativo do Prime31 // e informacoes extras para fazer o post if (isDialog) { url += "app_id=" + facebookId + "&"; url += "redirect_uri=" + WWW.EscapeURL(Flow.URL_BASE + "login/tables/input_share.php?" + //"app_id=" + Info.appId + "&token=" + WWW.EscapeURL(Save.GetString(PlayerPrefsKeys.TOKEN.ToString())) +"&device=" + GameInfo.device()) + "&"; "app_id=" + Info.appId + "&token=" + WWW.EscapeURL(Save.GetString(PlayerPrefsKeys.TOKEN.ToString())) +"&device=" + SystemInfo.deviceUniqueIdentifier.Replace("-", "")) + "&"; if (_facebookId != "me") url += "to=" + WWW.EscapeURL(_facebookId) + "&"; } else url += "method=post&"; // Checa se os parametros enviados nao sao nulos e adiciona no form if (parameters != null) { if (parameters.ContainsKey("message")) url += "message=" + WWW.EscapeURL(parameters["message"]) + "&"; if (parameters.ContainsKey("name")) url += "name=" + WWW.EscapeURL(parameters["name"]) + "&"; if (parameters.ContainsKey("link")) url += "link=" + WWW.EscapeURL(parameters["link"]) + "&"; if (parameters.ContainsKey("description")) url += "description=" + WWW.EscapeURL(parameters["description"]) + "&"; if (parameters.ContainsKey("picture")) url += "picture=" + WWW.EscapeURL(parameters["picture"]) + "&"; } // Se for nulo, enviar erro para o callback else { if (callback != null) callback(NULL_PARAMETERS, facebookId, parameters, null); Debug.LogWarning(NULL_PARAMETERS); yield break; } // Access token do usuario url += "access_token=" + WWW.EscapeURL(facebookToken); // Se nao for dialogo, fazer o post if (!isDialog) { WWW wallPost = new WWW(url); yield return wallPost; // Se houver algum erro, enviar erro para o callback if (wallPost.error != null) { // Envia para o callback if (callback != null) callback(wallPost.error, _facebookId, parameters, null); // Cacheia a conexão atual para tentar novamente apos o "giro" Login( new GenerateState(_facebookId, parameters, callback) , HandleState ); yield break; } // Caso contrario, decodar JSON recebido else { IJSonObject data = wallPost.text.ToJSon(); // Se o JSON recebido for invalido, retornar e enviar para o callback if (data.IsEmpty() || data.IsError()) { if (callback != null) callback("Invalid JSon: " + wallPost.text, _facebookId, parameters, null); yield break; } // Envia ID do post para o callback if (callback != null) callback(null, _facebookId, parameters, data.GetString("id")); } } // Se for dialogo, abrir a url no navegador do Prime31 else { // Up Top Fix me (dialog) //GameGUI.game_native.openUrlInline(url); Flow.game_native.openUrlInline(url); tempFace = _facebookId; tempParams = parameters; tempCallback = callback; if(_facebookId == "me") { new GameJsonAuthConnection(Flow.URL_BASE+"login/tables/check_share.php",GetShareData).connect(); } else { if (callback != null) callback(null, _facebookId, parameters, null); } // Como nao tem como receber o callback do navegador do Prime31 // enviar callback de sucesso (mesmo se o usuario nao estiver postado) } yield break; }
void GetShareData(string error, IJSonObject data) { tries++; Debug.Log(tries); if(error != null) { Debug.Log(error); tries = 0; if (tempCallback != null) tempCallback("Connection Error. Please try again later.", tempFace, tempParams, null); tempFace = ""; tempCallback = null; tempParams = new Dictionary<string, string>(); } else { if(data["result"].ToString() == "shared") { Debug.Log("deu shared..."+data); tries = 0; if (tempCallback != null) tempCallback(null, tempFace, tempParams, data["post_id"].StringValue); tempFace = ""; tempCallback = null; tempParams = new Dictionary<string, string>(); } else { Debug.Log("deu not shared..."); if(tries > 5) { Debug.Log("ja tentou mais de 5 vezes"); tries = 0; if (tempCallback != null) tempCallback("Connection Error. Please try again later.", tempFace, tempParams, null); tempFace = ""; tempCallback = null; tempParams = new Dictionary<string, string>(); } else { Debug.Log("tentou menos, tentar de novo!"); Invoke("promptAgain",1f); } } } }