Beispiel #1
0
        public async Task UpdateGlance(InstallationData installationData)
        {
            openCounter++;

            var glanceData = new
            {
                glance = new[]
                {
                    new
                    {
                        key     = "nubot.glance", // see installation descriptor
                        content = BuildGlanceString(openCounter.ToString())
                    }
                }
            };

            using (var client = new HttpClient())
            {
                var accessToken = await _tenantService.GetAccessTokenAsync(installationData.oauthId);

                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var stringContent = new StringContent(JsonConvert.SerializeObject(glanceData));
                stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var roomGlanceUpdateUri = new Uri($"{installationData.apiUrl}addon/ui/room/{installationData.roomId}");
                var httpResponseMessage = await client.PostAsync(roomGlanceUpdateUri, stringContent);

                httpResponseMessage.EnsureSuccessStatusCode();
            }
        }
Beispiel #2
0
        private async Task Send(string oauthId, string content)
        {
            var installationData = await _tenantService.GetInstallationDataAsync(oauthId);

            var accessToken = await _tenantService.GetAccessTokenAsync(oauthId);

            _httpClient.DefaultRequestHeaders.Accept.Clear();
            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token);
            _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var stringContent = new StringContent(content);

            stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var roomGlanceUpdateUri = new Uri($"{installationData.apiUrl}room/{installationData.roomId}/notification");
            var httpResponseMessage = await _httpClient.PostAsync(roomGlanceUpdateUri, stringContent);

            httpResponseMessage.EnsureSuccessStatusCode();
        }