Пишу это для тех, кто не понимает откуда все-таки берется X-Instagram-GIS и так же как и я, плохо читает буржуйские форумы программистов. Покажу на наглядном примере:
1)Открываете любой сниффер
2)Грузите любое фото, например:
https://www.instagram.com/p/BplmK_fj1HB/ - это первый запрос
3)Далее нажимаете кнопку: "Загрузить еще комментарии" и смотрите Get запрос. Там то и появляется X-Instagram-GIS, а сам url будет выглядеть примерно так:
https://www.instagram.com/graphql/query/?query_hash=f0986789a5c5d17c2400faebf16efd0d&variables=%7B%22shortcode%22%3A%22BplmK_fj1HB%22%2C%22first%22%3A34%2C%22after%22%3A%22QVFBbTBVWS04UU9RR1BUTnZfV1FLRzZ2Z1E2NGVZQ2JRalpoRDYxazdCcWYycW9VTVZkN1FuZHhCZEhTVUVDSW93LU5TSVdYbk1NLUlySVlQMHUzcjlObA%3D%3D%22%7D
- это второй запрос
4)Из содержимого ответа на первый запрос парсите rhx_gis, получите примерно это: 4e60f00c4f846e6f8b7d0a4f75c66015
5)Декодируете url второго запроса (urldecode) и парсите все, что идет после variables=, получится примерно такая строка:
{"shortcode":"BplmK_fj1HB","first":34,"after":"QVFBbTBVWS04UU9RR1BUTnZfV1FLRzZ2Z1E2NGVZQ2JRalpoRDYxazdCcWYycW9VTVZkN1FuZHhCZEhTVUVDSW93LU5TSVdYbk1NLUlySVlQMHUzcjlObA=="}
6)Наконец-то получаем хеш сумму MD5 вот такой строки:
4e60f00c4f846e6f8b7d0a4f75c66015:{"shortcode":"BplmK_fj1HB","first":34,"after":"QVFBbTBVWS04UU9RR1BUTnZfV1FLRzZ2Z1E2NGVZQ2JRalpoRDYxazdCcWYycW9VTVZkN1FuZHhCZEhTVUVDSW93LU5TSVdYbk1NLUlySVlQMHUzcjlObA=="}
Сделать это можно
здесь или вот таким сниппетом:
string input = @"4e60f00c4f846e6f8b7d0a4f75c66015:{""shortcode"":""BplmK_fj1HB"",""first"":34,""after"":""QVFBbTBVWS04UU9RR1BUTnZfV1FLRzZ2Z1E2NGVZQ2JRalpoRDYxazdCcWYycW9VTVZkN1FuZHhCZEhTVUVDSW93LU5TSVdYbk1NLUlySVlQMHUzcjlObA==""}"; //заданая строка
// Md5 хеш
System.Security.Cryptography.MD5 md5Hasher = System.Security.Cryptography.MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
StringBuilder md5hash = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
md5hash.Append(data[i].ToString("x2"));
}
//Возвращаем MD5 хеш для строки
return md5hash.ToString();
Сравниваем результат с значением из сниффера и радуемся жизни
Другими словами, X-Instagram-GIS - это md5 хеш строки rhx_gis:queryVariables. Откуда взять все остальные значения вы должны разобраться сами, я и так всегда мечтал, что бы ответ на мой вопрос был настолько разжеван