Инстаграм: скоро 5 лет

Несколько замечаний о работе Инстаграма. Скоро этой платформе будет 5 лет (от October 6, 2010). И что касается русскоязычной аудитории, то по моим наблюдениям она уже не растет. Когда-то давно появился Твиттер и казалось, что вот оно дно для блогинга. Но потом появился Инстаграм и мы увидели истинное дно, превращенное в бесконечные картинки.

И вот работая с API instagram на днях я заметил, что идентификаторы пользователей перевалили за размер int (2 в 31 степени). То есть количество заюзанных идентификаторов перевалило за 2 млрд. Это конечно, не говорит о том, что в инстаграме есть 2 млрд пользователей, большинство из них скорее всего просто боты. Но из-за этого пришлось обновить код в старой библиотеке BlogsAPI.

И еще. Ранее инстаграм закрыл доступ к лайкам для роботов. Но по не понятным причинам, если обратиться к API, то Instagram перестал возвращать ошибку. Ранее он честно сообщал, что сервис вам не доступен, а теперь говорит, что все ОК. Но лайки так и не добавляются. Много сервисов автоматического лайканья в Инстаграм используют прямую эмуляцию действия пользователя для проставления лайков. Я попользовался Instagress и, в целом, глючит часто. Постоянно блокирует аккаунт, требуя реального присутствия человека для разгадывания captcha.


Метки:   Категории:BlogsAPI | Instagram


json for .net

Всегда не любил выдачу JSON за то, что она подразумевает обработку в JS на стороне клиента, а значит много гемора для программиста. Но оказывается существует уже и полноценное решение делающее JSON не сложнее обычной XML сериализации. Речь про newtonjson.dll, написанную на .Net и неплохо документированную. Отдельно порадовала возможность конвертации конечного листа дерева в произвольный тип путем простого вызова типа cursor["leafname"].Value<long>();. Вот бы все значения ячеек для датагридов тоже имели такой шаблонизатор, чтобы не прописывать каждый раз приведение типа.

Пример JSON сериализатора в .Net для результатов выдаваемых гуглом при поисковых запросах через AJAX API - можно найти в последних изменениях blogsapi

PS: отдельно отмечу, что готов взять программиста на частичную занятость для поддержания моих хобби проектов и развития некоторых идей.

Метки:   Категории:BlogsAPI | Csharp | Code


Twitter OAuth 2.0 by login-password

Сегодня расскажу как реализовывается работа приложения через OAuth, если пользователь передает просто логин и пароль. Прежде всего потребуется класс OAuthUtility, код которого есть в blogsapi. На первом этапе мы проверяем производили ли мы аутентификацию пользователя ранее. Если нет, то обращаемся к твиттеру с логином и паролем, соответствующему нашему приложению (tokens.ConsumerKey,tokens.ConsumerSecret). Получаем назад ключ(response.Token), по которому мы можем построить запрос (OAuthUtility.BuildAuthorizationUri(response.Token)) на получение уникальных логина и пароля для пользователя нашего приложения. Назад возвращается страница, на которой пользователю предлагается ввести логин и пароль, но так как мы не хотим тревожить пользователя, то вводим их за него, незабывая извлечь со страницы authenticity_token. Если логин и пароль правильны, то нам возвращается уникальный PIN, который пользователь должен потом передать нашему приложению, в качестве единоразового пароля для получения постоянного пароля. Опять же парсим страницу вручную, чтобы не тревожить пользователя. И в завершение делаем запрос OAuthUtility.GetAccessToken, чтобы по разовому паролю наше приложение получило постоянный пароль. И сохраняем результат, чтобы больше не повторять этих действий. В итоге наше приложение, чтобы сделать запрос от лица пользователя передает не логин и пароль, а аж 4 строчки, соответствующие 2м логинам и паролям от них. Основная выгода - безопастность, и то, что эти строчки намного сложнее чем первоначальные логин и пароль пользователя, что гарантирует сложность их подбора. Но с другой стороны, они не имеют срока давности, поэтому зная их с легкостью можно выполнить действия от лица пользователя-приложения, в отличии от куков или сессий для авторизованных клиентов сайтов. И общая схема, демонстрирующая весь ужас того, во что превращается простая ранее операция по выполнению действий при помощи логина и пароля: Код самой функции "залогинивания" в твиттер. Далее...

Метки:   Категории:Twitter | BlogsAPI | Code


про пиздецы

Как показывает практика - пиздецы приходят незаметно. Кто с этим несогласен может почитать про вчерашнюю недоступность сервисов Google для России. Благодаря этому на второй план отошел второй пиздец, который наступил сегодня - наступил oauthapocolypse, заблокировавший все функции твиттера через Basic аутентификацию. Ранее это было планировалось сделать в середине лета, потом перенесли на 31 августа. В ближайшее время обновлю библиотеку BlogsAPI так, чтобы функции твиттера в ней опять заработали.

И последнее, чего никто не ожидал - наступление последнего дня лета и заметного похолодания.

Метки:   Категории:Twitter | BlogsAPI | Google


Tr.im RIP

Скончался один из первопроходцев сокращения ссылок в интернете - Tr.im. О его скорой смерти было известно давно, еще когда твиттер переключился по умолчанию с него на Bit.ly, но только на днях сервис окончательно перестал функционировать и опубликовал список некоторых других популярных сокращателей. По этому случаю обновил библиотеку BlogsAPI, добавив следующие классы сокращения:

Copy Source | Copy HTML
  1. [TestFixture]
  2. public class Shorteners
  3. {
  4.     private void RunTest(Shortener oServer)
  5.     {
  6.         String sRet = oServer.ConvertDataTo("http://s-c.me", ItemType.FullUrl, ItemType.ShortUrl);
  7.         Assert.AreEqual(false,String.IsNullOrEmpty(sRet));
  8.         Debug.WriteLine("Returns: " + sRet);
  9.         sRet = oServer.ConvertDataTo(sRet, ItemType.ShortUrl, ItemType.FullUrl);
  10.         if(!String.IsNullOrEmpty(sRet))
  11.         {
  12.             Debug.WriteLine("BackTrace: "+sRet);
  13.         }
  14.     }
  15.  
  16.     [Test]
  17.     public void Bitly()
  18.     {
  19.         RunTest(new BitLy());
  20.     }
  21.  
  22.     [Test]
  23.     public void Cligs()
  24.     {
  25.         RunTest(new Cligs());
  26.     }
  27.  
  28.  
  29.     [Test]
  30.     public void Isgd()
  31.     {
  32.         RunTest(new Isgd());
  33.     }
  34. }

Метки:   Категории:BlogsAPI | Code


Кто я?

Программист. Я слежу за блогосферой и знаю, как будет развиваться интернет. Когда у меня есть время я даже прилагаю для этого усилия. Подробнее

Последние комментарии

Не отображать

Topbot at FeedsBurner

Облако тэгов

Мои Твиты

Twitter сентября 13, 01:55
.Net - Контексный поиск с учетом русской и английской морфологии http://dlvr.it/Qk1GLz

Twitter сентября 13, 01:32
коломенский кремль: альтернативная история 2 http://dlvr.it/Qk1BxG https://twitter.com/f1ashr/status/1040050452677701632/photo/1

Twitter сентября 13, 01:32
Найдено применение для дополненной реальности http://dlvr.it/Qk1BsW https://twitter.com/f1ashr/status/1040050446155436032/photo/1

Twitter сентября 13, 00:59
Россия будет воевать http://dlvr.it/Qk15Rh

Twitter сентября 13, 00:59
Диджеи будущего http://dlvr.it/Qk15Lx

Twitter сентября 13, 00:26
Теория общего знания - (Заповеди информационного общества, часть 12) http://dlvr.it/Qk0zsZ

Twitter сентября 12, 23:21
Обновлен робот instagram для лайков http://dlvr.it/Qk0mK6

Twitter сентября 12, 20:02
Пользователи умудрились поломать гео-локацию в Инстаграм http://dlvr.it/QjzzRL

Twitter сентября 12, 20:02
Про самолет Ту-154 и убийство посла http://dlvr.it/QjzzDG https://twitter.com/f1ashr/status/1039967405378658304/photo/1

Twitter сентября 12, 18:56
Разбор 2 сезона Мир Дикого Запада (WestWorld2) http://dlvr.it/Qjzgnv https://twitter.com/f1ashr/status/1039950797130199040/photo/1

Twitter сентября 8, 20:46
Британцы запилили рекламный ролик, который стал вирусным на весь мир http://dlvr.it/QjZ0bK https://twitter.com/f1ashr/status/1038528905970208768/photo/1

Twitter сентября 1, 07:42
Яндекс заменил ТИц на ИКс http://dlvr.it/Qhm5Ms

Twitter августа 24, 07:51
Почему на рассвете резко холодает и выпадает роса? http://dlvr.it/QgwSff https://twitter.com/f1ashr/status/1032898080767541251/photo/1

Twitter августа 23, 01:09
Самоуправляемые ездящие картошки http://dlvr.it/QgnhXc

Twitter августа 22, 19:11
Что такое любовь? Песнь льда и пламени http://dlvr.it/QgmPPH https://twitter.com/f1ashr/status/1032344431158951936/photo/1

Twitter августа 22, 13:47
Мир Дикого Запада 2-й сезон http://dlvr.it/QgkpBm

Twitter августа 22, 12:42
Игра Престолов детальный разбор 7 сезонов http://dlvr.it/QgkSpD https://twitter.com/f1ashr/status/1032246535336022016/photo/1

Twitter августа 22, 10:29
Танец китайских военных http://dlvr.it/QgjrK3 https://twitter.com/f1ashr/status/1032213200412979200/photo/1

Twitter августа 22, 10:29
Где россияне праздновали новый 2017 год http://dlvr.it/QgjrJL https://twitter.com/f1ashr/status/1032213193291051008/photo/1

Twitter августа 21, 13:21
Все что я хотел сказать про толкование буквы Ц http://dlvr.it/QgcYY9 https://twitter.com/f1ashr/status/1031893950213156866/photo/1

Мой твиттер

Копирайт

Все мысли, высказанные в блоге, являются моим мнением и за это мнение меня никто не забанит! Кроме того, никто не имеет право копировать материалы блога без использования ctrl+C/V!

© Copyright 2008