Центр уведомлений о регистрации устройства с установкой - PullRequest
0 голосов
/ 23 мая 2019

После прочтения этого Я пытался создать установку в своем приложении xamarin.android, но у меня продолжает появляться «Несанкционированная ошибка», я чувствую, что что-то упустил. Любая помощь приветствуется.

Ранее я мог зарегистрироваться в хабе, используя var regID = hub.Register(token, tags.ToArray()).RegistrationId; поэтому я уверен, что мой концентратор настроен правильно и что я использую правильную строку подключения.

Мой объект установки

install.installationId = installationId; //guid
install.tags = Tags;
install.platform = "gcm";
install.pushChannel = token; //refresh token from fcm

Позвоните, чтобы создать установку

private async Task<HttpStatusCode> CreateOrUpdateInstallationAsync(DeviceInstallation deviceInstallation,
        string hubName, string listenConnectionString)
        {
            if (deviceInstallation.installationId == null)
                return HttpStatusCode.BadRequest;

            // Parse connection string (https://msdn.microsoft.com/library/azure/dn495627.aspx)
            ConnectionStringUtility connectionSaSUtil = new ConnectionStringUtility(listenConnectionString);
            string hubResource = "installations/" + deviceInstallation.installationId + "?";
            string apiVersion = "api-version=2015-04";

            // Determine the targetUri that we will sign
            string uri = connectionSaSUtil.Endpoint + hubName + "/" + hubResource + apiVersion;

            //=== Generate SaS Security Token for Authorization header ===
            // See, https://msdn.microsoft.com/library/azure/dn495627.aspx
            string SasToken = connectionSaSUtil.getSaSToken(uri, 60);

            using (var httpClient = new HttpClient())
            {
                string json = JsonConvert.SerializeObject(deviceInstallation);

                httpClient.DefaultRequestHeaders.Add("Authorization", SasToken);

                var response = await httpClient.PutAsync(uri, new StringContent(json, System.Text.Encoding.UTF8, "application/json"));
                return response.StatusCode;
            }
        }
...