Подписка Instagram 408 Тайм-аут запроса через 2 секунды

В настоящее время я пытаюсь создать механизм синхронизации с Instagram для пользователей моего веб-сайта MVC, используя функцию подписки Instagram. Теперь у меня все настроено правильно, как они описывают на своей странице api:

  • Я направляю пользователя на страницу авторизации, успешно получая авторизацию.
  • Я создал методы GET и POST для метода обратного вызова. GET для проверки, работает ли он с описанными параметрами (hub.mode = subscribe & hub.challenge = test & hub.verify_token = mytoken), который возвращает запрос в случае успеха, и я выставил его в Интернете с помощью ngrok (который тоже работает)
  • Затем я пытаюсь подписаться на пользователя, который дает сбой сразу через 2 секунды с таймаутом запроса 408. Запрос GET на URL-адрес обратного вызова никогда не выполняется.

Я также попытался немного изменить то, что я отправляю Instagram в этом почтовом запросе, если я изменю одну вещь, я получаю неверный запрос вместо тайм-аута. Я также попытался создать свой собственный веб-клиент, чтобы увеличить время ожидания веб-запросов, но безуспешно.

Есть ли у кого-нибудь представление о том, что я делаю неправильно или где получить дополнительную информацию о том, что действительно не удалось? Документация по инстаграмм практически отсутствует.

Вот код, который вылетает с 408:

        NameValueCollection parameters = new NameValueCollection();
        parameters.Add("client_id", "SECRET"); 
        parameters.Add("client_secret", "SECRET");
        parameters.Add("object", "user");
        parameters.Add("aspect", "media");
        parameters.Add("verify_token", VerifyToken);
        parameters.Add("callback_url", new Uri(baseUri, "api/manage/instagramSubscription").AbsoluteUri);

        var client = new WebClient();
        var result = client.UploadValues("https://api.instagram.com/v1/subscriptions/", "POST", parameters);

РЕДАКТИРОВАТЬ: РЕШЕНИЕ ДЛЯ РЕШЕНИЯ ПРОБЛЕМЫ

Теперь проблема была как в решении tompec, чтобы избежать ngrok. Я попытался связаться с Instagram, чтобы узнать, почему ngrok не работает, но, как всегда, нет ответа. Я переключился на функцию Azure, чтобы иметь возможность быстро протестировать обратный вызов, выполняемый instagram. по пути было несколько проблем, но теперь это работает. Мне пришлось переписать код для вызова, потому что instagram принимает только данные формы для этого вызова.

var encoding = new ASCIIEncoding();
        var postData = "client_id=YOURCLIENTID";  
        postData += "&client_secret=YOURSECRET"; 
        postData += ("&object=user");
        postData += ("&aspect=media");
        postData += ("&verify_token=" + VerifyToken);
        postData += ("&callback_url=" + baseUri.AbsoluteUri);
        byte[] data = encoding.GetBytes(postData);

        var myRequest =
            (HttpWebRequest)WebRequest.Create("https://api.instagram.com/v1/subscriptions/");
        myRequest.Method = "POST";
        myRequest.ContentType = "application/x-www-form-urlencoded";
        myRequest.ContentLength = data.Length;
        using (var newStream = myRequest.GetRequestStream())
        {
            newStream.Write(data, 0, data.Length);
        }

        InstagramSubscriptionResponseViewModel instaResponse = null;
        using (var response = myRequest.GetResponse())
        {
            var responseStream = response.GetResponseStream();
            if (responseStream != null)
            {
                using (var responseReader = new StreamReader(responseStream))
                {
                    var result = responseReader.ReadToEnd();

                    // do whatever you want

                }

            }
        }

person Hypi    schedule 04.08.2017    source источник


Ответы (1)


Это из-за ngrok. Не знаю почему, но у меня была та же проблема, и после загрузки файлов на веб-сервер все заработало.

person tompec    schedule 05.08.2017
comment
спасибо дружище, это было из-за ngrok. Это указывало мне в правильном направлении :) Я обновил свой вопрос своим окончательным кодом решения - person Hypi; 09.08.2017