Скажу сразу - в абсолютном большинстве случаев обычному пользователю Твиттера это совершенно не нужно; здесь, скорее, сфера интересов разработчиков, профессионально работающих с Twitter API. Коротко и точно об этом рассказывает страничка TweeterID, удобного сервиса, позволяющего конвертацию в обе стороны: получение идентификатора по имени учетной записи и получение имени учетки (@handle) по ID.
Что такое TwitterID?
Идентификатор Twitter - уникальное значение, которое имеет каждая учетная запись в Твиттере. У двух людей нет одинакового идентификатора. Хотя учетная запись может изменить свой @handle (имя учетной записи), она никогда не сможет изменить свой Twitter-идентификатор.Как вы можете использовать TweeterID?
TweeterID позволяет вам легко найти любое имя пользователя (@handle) в Твиттере, и узнать, что именно оно соответствует данному идентификатору. Кроме того, вы также можете использовать его для преобразования идентификатора в имя пользователя.Как использовать API Twitter с идентификаторами?
Использование конвертера позволяет разработчикам, работающим с API Twitter, легко переключаться между использованием первичного ключа идентификатора Twitter и общедоступным именем пользователя (или @handle) учетной записи.
Впрочем, TweeterID, при ближайшем рассмотрении, оказывается не столь уж и удобен: на момент подготовки к публикации этого материала он далеко не лучшим образом обрабатывает конвертацию в ID имен твиттер-аккаунтов, содержащих только цифры. Например, сервис откровенно лагает при попытке получить ID по 777 или @777, это касается и иных случаев, когда имя учетки содержит только цифры (это совершенно не запрещено правилами Твиттера). Что, в частности, и послужило поводом (если не причиной) написать аналог, свободный от этого недостатка. Вы можете попробовать; @777 вернет теперь совершенно иной ответ, нежели аналогичный запрос в TweeterID:
Итак, сконфигурируем client обычным для gem 'twitter' способом:
client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV['TWI_KEY']
config.consumer_secret = ENV['TWI_SECRET']
config.access_token = ENV['TWI_TOKEN']
config.access_token_secret = ENV['TWI_TOKEN_SECRET']
end
, что сразу же позволит без малейших проблем получить идентификатор по имени пользователя учетной записи Twitter:
client.user("cmirnow").id => 312301389
или, наоборот, получим имя пользователя по ID:
client.user(312301389).screen_name => cmirnow
, для проверки же ввода - были ли введены только цифры, что однозначно определяет ID, или ввод был иной - воспользуемся Active Model Validations, provides a full validation framework to your objects, т.е. родным для Rails механизмом, работающим буквально "из коробки". Например, что-нибудь вроде этого:
class Twitterid
include ActiveModel::Model
attr_accessor :key
validates :key, presence: true, numericality: { only_integer: true }
end
Впрочем, здесь уже полный простор для творческой фантазии.