Example #1
0
        protected HttpResponce Get(string url, string[] headers)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "GET";
            request.Accept = "application/json";
            if (headers != null)
            {
                foreach (string head in headers)
                {
                    request.Headers.Add(head);
                }
            }
            request.ContentType = "application/json";

            HttpResponce bodybject = new HttpResponce();

            try
            {
                var httpResponse = (HttpWebResponse)request.GetResponse();
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    bodybject.data = JsonConvert.DeserializeObject(result);
                }
                bodybject.Headers = httpResponse.Headers;
            }
            catch
            {
                bodybject = null;
            }

            return(bodybject);
        }
Example #2
0
    public override IEnumerable NextFrame()
    {
        OnStart();
        byte[] bytes = Encoding.UTF8.GetBytes(PostData);

        //Debug.Log(RequestName);
        //Debug.Log(PostData);

        _request = new WWW(RequestName, bytes, HttpNetworkController.Instance.HttpHeaders);

        while (!_request.isDone)
        {
            yield return null;
        }

        if (String.IsNullOrEmpty(_request.error))
        {
            Debug.Log(_request.text);
            _responce = new HttpResponce(_request.text);
            OnResponceReceived();
        }
        else
        {
            Debug.LogError("Error on request:  " + RequestName + " => " + _request.error);
        }
        OnFinish();
    }
Example #3
0
        //APIキーとトークンの取得
        protected bool InitHarvest()
        {
            string       authData = @"{""email"":""*****@*****.**"",""password"":""TML-ezawa2018""}";
            HttpResponce data     = Post("https://api.soracom.io/v1/auth", null, authData);

            if (data == null)
            {
                return(false);
            }

            apiKey   = data.data.apiKey;
            apiToken = data.data.token;
            return(apiKey != null && apiToken != null);
        }
Example #4
0
        // Subscriber の取得。 複数回に分かれての受信には対応していない。
        protected void InitSubscribers(IList <Subscriber> subscribers)
        {
            string[]     headers = { $"X-Soracom-API-Key:{apiKey}", $"X-Soracom-Token:{apiToken}" };
            HttpResponce data    = Get("https://api.soracom.io/v1/subscribers", headers);

            if (data == null)
            {
                return;
            }

            foreach (var item in data.data)
            {
                subscribers.Add(new Subscriber()
                {
                    imsi         = item.imsi,
                    modifiedTime = item.lastModifiedAt,
                    url          = $"https://api.soracom.io/v1/subscribers/{item.imsi}/data?sort=asc"
                });
            }
        }
Example #5
0
        public bool SaveData(Dictionary <string, List <StringDictionary> > data)
        {
            var parsing = new Parsing()
            {
                Date = DateTime.UtcNow
            };                                                      // номер считать с лог файла
            var httpResponce = new HttpResponce();

            T _tag;
            A _attr;

            List <StringDictionary> attrs;

            foreach (var tags in data)
            {
                _tag = new Tag {
                    Name = tags.Key, Parsing = parsing
                } as T;

                _tags.Create(_tag);

                attrs = tags.Value;

                foreach (var attribute in attrs)
                {
                    foreach (var attr in attribute.Keys)
                    {
                        _attr = new TagAttribute()
                        {
                            Name = attr.ToString(), Value = attribute[attr.ToString()], Tag = _tag
                        } as A;
                        _attrs.Create(_attr);
                    }
                }
            }
            return(true);
        }
    public static async Task <object> Run([HttpTrigger(WebHookType = "genericJson")] HttpRequestMessage req, TraceWriter log)
    {
        log.Info($"Webhook was triggered!");

        string jsonContent = await req.Content.ReadAsStringAsync();

        dynamic data = JsonConvert.DeserializeObject <InputTrigger>(jsonContent);

        //log.Info(data.Groups.Values);
        if (!data.Groups.ContainsKey("key0"))
        {
            return(req.CreateResponse(HttpStatusCode.BadRequest, new
            {
                error = "Please pass groups properties in the input object"
            }));
        }

        string tenant             = ConfigurationManager.AppSettings["B2C_TENANT_DEV"];
        string clientId           = ConfigurationManager.AppSettings["B2C_CLIENTID_DEV"];
        string clientSecret       = ConfigurationManager.AppSettings["B2C_CLIENTSECRET_DEV"];
        string url                = ConfigurationManager.AppSettings["B2C_GRAPHURL_DEV"];
        string apiversion         = ConfigurationManager.AppSettings["API_VERSION"];
        string aadInstance        = "https://login.microsoftonline.com/";
        string aadGraphResourceId = "https://graph.windows.net/";
        string aadGraphEndpoint   = "https://graph.windows.net/";

        string token;
        var    responseString    = String.Empty;
        string query             = "$filter=";
        string AD_extention_role = "";


        foreach (var group in data.Groups)
        {
            query             = query + "startswith(displayName,\'" + group.Value + "\') or ";
            AD_extention_role = group.Value + ";";
        }

        if (data.token == "")
        {
            // seting azure AD graph API
            string authString            = aadInstance + tenant;
            var    authenticationContext = new AuthenticationContext(authString);

            //get access token;
            ClientCredential     clientCred           = new ClientCredential(clientId, clientSecret);
            AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(aadGraphResourceId, clientCred);

            token = authenticationResult.AccessToken;
        }
        else
        {
            token = data.token;
        }

        query = query.Substring(0, query.Length - 4);
        //string requestUrl = url + "groups?$filter=" + query_filter + apiversion;
        string requestUrl = "https://graph.windows.net/" + tenant + "/groups/" + "?" + apiversion;

        if (!string.IsNullOrEmpty(query))
        {
            requestUrl += "&" + query;
        }

        Dictionary <string, string> groups_ids = new Dictionary <string, string>();

        string[] GroupsSub = new string[0];


        // ŠY“–groups ID ‚̎擾;
        using (var client = new HttpClient())
        {
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUrl);

            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
            HttpResponseMessage response = await client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                string error = await response.Content.ReadAsStringAsync();

                object formatted = JsonConvert.DeserializeObject(error);
                throw new WebException("Error Calling the Graph API: \n" + JsonConvert.SerializeObject(formatted, Formatting.Indented));
            }


            await response.Content.ReadAsStringAsync().ContinueWith(stringTask =>
            {
                var groups_json = stringTask.Result;
                var resgroups   = JsonConvert.DeserializeObject <GroupsObject>(groups_json);

                IEnumerable <GroupContents> collection = resgroups.value;

                foreach (var element in collection.Select((Value, Index) => new { Value, Index }))

                {
                    //groups_ids.Add(group_data.id);
                    groups_ids.Add("key" + element.Index.ToString(), element.Value.objectId);
                    Array.Resize(ref GroupsSub, element.Index + 1);
                    GroupsSub[element.Index] = element.Value.objectId;
                }
            });
        }

        HttpResponce res = new HttpResponce();

        res.token     = token;
        res.GroupsSub = GroupsSub;

        return(req.CreateResponse(HttpStatusCode.OK, new
        {
            Content = res
        }));
    }
Example #7
0
 public static void WriteResponce(Stream stream, HttpResponce responce)
 {
     byte[] responceHeader = Encoding.UTF8.GetBytes(responce.Header.ToString());
     stream.Write(responceHeader, 0, responceHeader.Length);
     stream.Write(responce.Content, 0, responce.Content.Length);
 }
Example #8
0
        public bool GetSubScriverData(Subscriber subscriber)
        {
            JsonSerializerSettings serializerSettings = new JsonSerializerSettings()
            {
                DateParseHandling = DateParseHandling.DateTimeOffset
            };

            string[] headers = { $"X-Soracom-API-Key:{apiKey}", $"X-Soracom-Token:{apiToken}" };

            HttpResponce data = Get(subscriber.url, headers);

            if (data == null)
            {
                return(false);
            }

            subscriber.url = "";
            if (data.Headers.Get("link") != null)
            {
                string[] l = data.Headers.Get("link").Split(",");
                foreach (var s in l)
                {
                    if (s.IndexOf("next") > -1)
                    {
                        Match m = Regex.Match(s, @"(\<)(?<url>.+?)(\>)");
                        if (m.Success)
                        {
                            subscriber.url = "https://api.soracom.io" + m.Groups["url"].Value;
                        }
                        break;
                    }
                }
            }

            foreach (var item in data.data)
            {
                var bodybject = JsonConvert.DeserializeObject(item.content.Value, serializerSettings);

                try
                {
                    if (bodybject.payload != null)
                    {
                        List <dynamic> dataobjects = directData.ConvertData(bodybject.payload.Value);

                        if (dataobjects.Count > 0)
                        {
                            subscriber.data.AddRange(dataobjects);
                        }
                    }
                    else
                    {
                        if (bodybject.date == null)
                        {
                            var baseDt = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
                            bodybject.date = new DateTimeOffset(item.time.Value * 10000 + baseDt.Ticks, TimeSpan.Zero);
                        }
                        subscriber.data.Add(bodybject);
                    }
                }
                catch (Exception e)
                {
                    TdsObject.SetErrerMessage(e.Data["org"].ToString(), e.Message);
                }
            }

            return(true);
        }