Esempio n. 1
0
 public MessengerController(IQueue queue)
 {
     this._queue = queue;
     // quiz = Quiz.FromJson(Startup.Questions);
     this.graph = new GraphApi();
     Console.WriteLine("Initiated");
 }
Esempio n. 2
0
        public static FacebookPost GetFacebookPost(string postId      = "146505212039213_2464275336928844",
                                                   string accesstoken =
                                                   "EAACEdEose0cBACdtZB9WceN0NZAXJy6ZAERvZAIFWYEL2cZCFPdZBAS7OaZAEF2lx6lp4cNZB987c9rNhrSyZAdFZAj7eTamfSPROPZBy0XWnhJaZBoUKZBVUwgFAkd3wOIK7myy3hjEyGg0ZBuobdnobsiGfpJZBxm5ztRwqSXonyFtoxxTQZDZD")
        {
            try
            {
                var facebookpost          = new FacebookPost();
                var facebookCommentserror = new FacebookError();

                var graphapi    = new GraphApi(accesstoken);
                var graphapiurl = graphapi.PostsUrl(postId);

                var res      = new GraphApiResponse();
                var response = res.GetResponse(graphapiurl);

                var serializer = new JavaScriptSerializer();
                facebookpost = serializer.Deserialize <FacebookPost>(response);

                if (facebookpost == null)
                {
                    facebookCommentserror = serializer.Deserialize <FacebookError>(response);

                    if (facebookCommentserror.error != null)
                    {
                        // Login status or access token has expired, been revoked, or is otherwise invalid. Handle expired access tokens.
                        // Access token has expired
                        if (facebookCommentserror.error.code == "190" &&
                            facebookCommentserror.error.error_subcode == "463")
                        {
                            //Get new Access Token
                        }
                    }
                }
                return(facebookpost);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 3
0
        private async void AccessToken(FacebookOAuthResult obj)
        {
            GraphApi api = new GraphApi(obj.AccessToken);
            //Declaro los parametros que me traigo desde facebook id , name , birthday , email , picture
            FacebookUser user = await api.Explorer <FacebookUser>("/me?fields=id,name,birthday,email,picture{url}");

            UsuarioJson User = await con.ConsultaExistenciaUsuario(user.id, user.id);

            if (User.Usuario == null)
            {
                // Si usuario es null entonces me registro
                JsonResponseInsert Result = await con.RegistraNuevoUsuario(user.id, user.id, user.name, user.email);

                //si el registro retorna null es porque no hay conexion
                if (Result.Transaccion != null)
                {
                    if (Result.Transaccion.Operacion.Respuesta != "NO")
                    {
                        // si es distinto a NO se registro bien asi que lo envio a la pagina principal
                        Aplicacion.App.Current.MainPage = new PaginaNavegadora();
                    }
                    else
                    {
                        // si retorna NO es por bd (error o condicionales no cumplidas )
                        // popup error de registro
                    }
                }
                else
                {
                    //Pupup Error de Registro atravez de facebook
                }
            }
            else
            {
                //el usuario ya existe en BD y facebook ya valido password asi que le doy acceso
                Aplicacion.App.Current.MainPage = new PaginaNavegadora();
            }
        }
        private void DisplayFields(GraphApi graph, List <GraphApi.Query> queryList, string type)
        {
            if (queryList != null)
            {
                if (queryList.Count > 0)
                {
                    EditorGUILayout.LabelField(type);
                }
                for (int i = 0; i < queryList.Count; i++)
                {
                    EditorGUILayout.Space();
                    EditorGUILayout.Space();
                    EditorGUILayout.Space();
                    GraphApi.Query query = queryList[i];
                    query.name = EditorGUILayout.TextField($"{type} Name", query.name);
                    string[] options = query.queryOptions.ToArray();
                    if (String.IsNullOrEmpty(query.returnType))
                    {
                        index             = EditorGUILayout.Popup(type, index, options);
                        query.queryString = options[index];
                        EditorGUILayout.LabelField(options[index]);
                        if (GUILayout.Button($"Confirm {type}"))
                        {
                            graph.GetQueryReturnType(query, options[index]);
                        }
                        if (GUILayout.Button("Delete"))
                        {
                            graph.DeleteQuery(queryList, i);
                        }

                        continue;
                    }

                    if (query.isComplete)
                    {
                        GUILayout.Label(query.query);
                        if (query.fields.Count > 0)
                        {
                            if (GUILayout.Button($"Edit {type}"))
                            {
                                graph.EditQuery(query);
                            }
                        }

                        if (GUILayout.Button("Delete"))
                        {
                            graph.DeleteQuery(queryList, i);
                        }

                        continue;
                    }


                    EditorGUILayout.LabelField(query.queryString,
                                               $"Return Type: {query.returnType}");
                    if (graph.CheckSubFields(query.returnType))
                    {
                        if (GUILayout.Button("Create Field"))
                        {
                            graph.GetQueryReturnType(query, options[index]);
                            graph.AddField(query, query.returnType);
                        }
                    }


                    foreach (GraphApi.Field field in query.fields)
                    {
                        GUI.color = new Color(0.8f, 0.8f, 0.8f);
                        string[] fieldOptions = field.possibleFields.Select((aField => aField.name)).ToArray();
                        EditorGUILayout.BeginHorizontal();
                        GUIStyle fieldStyle = EditorStyles.popup;
                        fieldStyle.contentOffset = new Vector2(field.parentIndexes.Count * 20, 0);
                        field.Index = EditorGUILayout.Popup(field.Index, fieldOptions, fieldStyle);
                        GUI.color   = Color.white;
                        field.CheckSubFields(graph.schemaClass);
                        if (field.hasSubField)
                        {
                            if (GUILayout.Button("Create Sub Field"))
                            {
                                graph.AddField(query, field.possibleFields[field.Index].type, field);
                                break;
                            }
                        }

                        if (GUILayout.Button("x", GUILayout.MaxWidth(20)))
                        {
                            int parentIndex = query.fields.FindIndex(aField => aField == field);
                            query.fields.RemoveAll(afield => afield.parentIndexes.Contains(parentIndex));
                            query.fields.Remove(field);
                            field.hasChanged = false;
                            break;
                        }

                        EditorGUILayout.EndHorizontal();

                        if (field.hasChanged)
                        {
                            int parentIndex = query.fields.FindIndex(aField => aField == field);
                            query.fields.RemoveAll(afield => afield.parentIndexes.Contains(parentIndex));
                            field.hasChanged = false;
                            break;
                        }
                    }
                    EditorGUILayout.Space();
                    EditorGUILayout.Space();

                    if (query.fields.Count > 0)
                    {
                        if (GUILayout.Button($"Preview {type}"))
                        {
                            query.CompleteQuery();
                        }
                    }

                    if (GUILayout.Button("Delete"))
                    {
                        graph.DeleteQuery(queryList, i);
                    }
                }

                EditorGUILayout.Space();
            }
        }
        public override void OnInspectorGUI()
        {
            GraphApi graph = (GraphApi)target;
            GUIStyle style = new GUIStyle {
                fontSize = 15, alignment = TextAnchor.MiddleCenter
            };

            EditorGUILayout.LabelField(graph.name, style);
            EditorGUILayout.Space();
            graph.GetSchema();
            if (GUILayout.Button("Reset"))
            {
                graph.DeleteAllQueries();
            }

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            graph.url = EditorGUILayout.TextField("Url", graph.url);
            if (GUILayout.Button("Introspect"))
            {
                graph.Introspect();
            }

            if (graph.loading)
            {
                EditorGUILayout.LabelField("API is being introspected. Please wait...");
            }

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            if (graph.schemaClass == null)
            {
                return;
            }
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Create New Query"))
            {
                graph.CreateNewQuery();
            }

            if (GUILayout.Button("Create New Mutation"))
            {
                graph.CreateNewMutation();
            }

            if (GUILayout.Button("Create New Subscription"))
            {
                graph.CreateNewSubscription();
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            DisplayFields(graph, graph.queries, "Query");
            DisplayFields(graph, graph.mutations, "Mutation");
            DisplayFields(graph, graph.subscriptions, "Subscription");

            EditorUtility.SetDirty(graph);
        }
Esempio n. 6
0
        public static List <FacebookComment> GetAllFacebookPostComments(
            string postId = "146505212039213_2464275336928844", string accesstoken =
            "EAACEdEose0cBACdtZB9WceN0NZAXJy6ZAERvZAIFWYEL2cZCFPdZBAS7OaZAEF2lx6lp4cNZB987c9rNhrSyZAdFZAj7eTamfSPROPZBy0XWnhJaZBoUKZBVUwgFAkd3wOIK7myy3hjEyGg0ZBuobdnobsiGfpJZBxm5ztRwqSXonyFtoxxTQZDZD")
        {
            var lstFacebookComments   = new List <FacebookComment>();
            var facebookCommentserror = new FacebookError();

            var graphapi    = new GraphApi(accesstoken);
            var graphapiurl = graphapi.PostComments(postId);

            var res      = new GraphApiResponse();
            var response = res.GetResponse(graphapiurl);

            var serializer = new JavaScriptSerializer();

            try
            {
                var facebookCommentsDataset = serializer.Deserialize <FacebookComments>(response);

                if (facebookCommentsDataset.data == null)
                {
                    facebookCommentserror = serializer.Deserialize <FacebookError>(response);

                    if (facebookCommentserror.error != null)
                    {
                        // Login status or access token has expired, been revoked, or is otherwise invalid. Handle expired access tokens.
                        // Access token has expired
                        if (facebookCommentserror.error.code == "190" &&
                            facebookCommentserror.error.error_subcode == "463")
                        {
                            //Get new Access Token
                        }
                    }
                }
                else
                {
                    string next = null;
                    do
                    {
                        if (facebookCommentsDataset.data != null)
                        {
                            lstFacebookComments.AddRange(facebookCommentsDataset.data);
                        }

                        if (facebookCommentsDataset.paging != null)
                        {
                            if (!string.IsNullOrEmpty(facebookCommentsDataset.paging.next))
                            {
                                next     = facebookCommentsDataset.paging.next;
                                response = res.GetResponse(next);
                                facebookCommentsDataset = serializer.Deserialize <FacebookComments>(response);
                                if (facebookCommentsDataset.data == null)
                                {
                                    facebookCommentserror = serializer.Deserialize <FacebookError>(response);

                                    if (facebookCommentserror.error != null)
                                    {
                                        // Login status or access token has expired, been revoked, or is otherwise invalid. Handle expired access tokens.
                                        // Access token has expired
                                        if (facebookCommentserror.error.code == "190" &&
                                            facebookCommentserror.error.error_subcode == "463")
                                        {
                                            //Get new Access Token
                                            //than start from where left off
                                        }
                                    }
                                    break;
                                }
                            }
                            else
                            {
                                next = null;
                            }
                        }
                    } while (next != null);
                }
                return(lstFacebookComments);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 7
0
        public override void OnInspectorGUI()
        {
            GraphApi graph = (GraphApi)target;

            serializedObject.Update();
            GUIStyle style = new GUIStyle {
                fontSize = 15, alignment = TextAnchor.MiddleCenter
            };

            EditorGUILayout.LabelField(graph.name, style);
            EditorGUILayout.Space();
            try
            {
                graph.GetSchema();
            }
            catch (Exception e)
            {
                EditorGUILayout.HelpBox(string.Format("Failed to load Schema: {0}", e), MessageType.Error);
            }
            if (GUILayout.Button("Reset"))
            {
                graph.DeleteAllQueries();
            }

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            graph.authMiddlewareResourcePath = EditorGUILayout.TextField("Auth Middleware Resource", graph.authMiddlewareResourcePath);
            graph.url = EditorGUILayout.TextField("Url", graph.url);
            if (GUILayout.Button("Introspect"))
            {
                graph.Introspect();
            }

            if (graph.loading)
            {
                EditorGUILayout.LabelField("API is being introspected. Please wait...");
            }
            else if (graph.FailedIntrospecting)
            {
                EditorGUILayout.HelpBox("Failed Introspection", MessageType.Error);
                EditorGUILayout.HelpBox(graph.introspection, MessageType.None, true);
            }
            else
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                if (graph.schemaClass == null)
                {
                    return;
                }
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("Create New Query"))
                {
                    graph.CreateNewQuery();
                }

                if (GUILayout.Button("Create New Mutation"))
                {
                    graph.CreateNewMutation();
                }

                if (GUILayout.Button("Create New Subscription"))
                {
                    graph.CreateNewSubscription();
                }

                EditorGUILayout.EndHorizontal();

                EditorGUILayout.Space();
                EditorGUILayout.Space();

                DisplayFields(graph, graph.queries, "Query");
                DisplayFields(graph, graph.mutations, "Mutation");
                DisplayFields(graph, graph.subscriptions, "Subscription");
            }
            EditorUtility.SetDirty(graph);
        }