не найдено приложение поддерживающее ссылки intent мегафон
Некоторые возможности использования Intent’ов
Введение
Объекты типа Intent могут быть использованы для общения между отдельными частями Android приложения, либо между различными приложениями системы. Мощь механизма интентов заключается в том, что с его помощью можно обращаться к любому установленному в системе приложению. Это позволяет повторно использовать некоторые компоненты и значительно сократить время на разработку.
В этой статье я покажу некоторые возможности использования класса Intent для обращения к системным приложениям.
Итак, что можно сделать с помощью Intenta:
1. Позвонить
Необходимо также добавить разрешение совершать звонки:
Либо разрешение для экстренных вызовов:
Звонки можно также совершать, указав интенту первый параметр как ACTION_DIAL. При этом будет открываться телефонная книга с указанным номером, но сам звонок автоматически совершаться не будет. Этому параметру не нужны разрешения в манифесте.
2. Отправить смс
Т.к. этот код не отправляет смс напрямую, а запускает стандартное активити для отправки смс, то никаких разрешений указывать не нужно.
3. Получить контакт из телефонной книги
Этот код откроет стандартное приложение контактов. Метод startActivityForResult позволяет получить uri выбранного контакт из параметра Intent data переопределенного метода onActivityResult.
Приведенный выше код показывает в приложении контактов сразу все контакты пользователя, включая почтовые. Если необходимо выбрать только контакт из телефонной книги, можно воспользоваться следующим кодом:
Для чтения списка контактов необходимо также добавить в манифест разрешение:
4. Открыть ссылку в браузере
Данный код откроет переданную в параметре ссылку в одном из установленных браузеров. При этом пользователь сможет сам выбрать браузер для просмотра. Eсли ссылка ведет на YouTube, то можно сразу открыть видео стандартным YouTube приложением.
С помощью этого интента можно также открыть стандартный клиент Android Market с ссылкой на какое-либо приложение. Для этого необходимо в параметр uri передать ссылку вида market://search?q=search query, где search query необходимо заменить соответствующим поисковым запросом.
Разрешения на интернет указывать не нужно, т.к. сеть используется не напрямую, а через приложение браузер.
5. Расшарить контент/написать письмо
Интенту можно задать тему и текст контента, который необходимо разшарить. Метод Intent.createChooser() создает диалог выбора соответствующего приложения.
Если необходимо разшарить медиа контент (изображение/видео), то нужно указать соответствующий тип контента в методе setType, например mailIntent.setType(«image/png»);, а также добавить сам контент в extra интента:
С помощью этого интента можно также отправить электронную почту по конкретному адресу:
6. Открыть карту по определенным координатам либо запросу
7. Сделать снимок с камеры
Этот код запускает стандартное приложение камеры. Полученное с камеры изображение можно обработать в методе onActivityResult:
Изображение, полученное с камеры при этом можно сохранить в конкретной директории, добавив параметр в интент:
Для использования этого интента не нужно разрешения android.permission.CAMERA, т.к. камера используется не напрямую, а всего лишь вызывается встроенное приложение камеры. Однако рекомендуется добавить в AndroidManifest следующую строку:
Таким образом, люди с девайсами без встроенной камеры (судя по всему, такое тоже бывает) не будут видеть ваше приложение на маркете.
8. Позвонить какому-либо контакту через Skype
Для совершения звонка через скайп интенту необходимо указать конкретное имя активити и пакета, к которым он будет обращаться. Это немного усложняет код, т.к. в двух разных версиях скайпа имена пакетов отличаются. Необходимо выполнять проверку того, какая версия скайп клиента установлена в системе, и установлена ли она вообще. Для проверки можно использовать следующий метод:
Этот метод проверяет в системе наличие приложения, способного ответить на конкретный интент. С использованием этого метода код звонка через скайп будет выглядеть следующим образом:
Более простым методом проверки наличия приложения в системе является перехват ActivityNotFoundException, которое будет вылетать в методе startActivity. Однако это позволит всего лишь среагировать на проблему, но не предотвратить ее. Например, используя вышеприведенный метод isIntentAvailable можно вовремя сделать соответствующий контрол неактивным, либо перенаправить пользователя на Android Market для установки соответствующего приложения.
9. Использовать Speech to Text для распознавания голоса
Этот код запускает приложение распознавания речи. Если произнести что-либо, система обработает голос и вернет результат в метод onActivityResult:
Найти имя пакета для приложений Android, чтобы использовать Intent для запуска приложения Market из Интернета
Я создаю мобильный сайт, на котором будет отображаться страница, с которой люди могут загружать соответствующие приложения, которые мы рекомендуем. Я нашел инструкции для создания ссылок для запуска Market, но это предполагает, что вы являетесь разработчиком данного приложения и знаете точный пакет имя.
Есть ли способ получить имя пакета, кроме как связаться с разработчиками и спросить?
Кроме того, оказывается, что эти инструкции действительно не работают для создания веб-гиперссылок. Они дают вам URI для ссылки в строке кода Java в другом приложении для Android. Наш сайт находится в Drupal, поэтому Java не собирается работать.
Для iPhone я нашел простые инструкции для получения желаемого стиля URL/ссылки из магазина iTunes, поэтому я ищу такая информация.
Это зависит от того, откуда именно вы хотите получить информацию. У вас есть множество вариантов:
После того как вы получили имя пакета, вы просто ссылаетесь на market://search?q=pname:
. Оба будут открывать рынок на устройстве Android; последний, очевидно, имеет потенциал для работы и с другим оборудованием (это не в последнюю очередь).
Используйте aapt из SDK, например
Это будет печатать имя пакета вместе с другой информацией.
инструменты находятся в
/сборки-инструменты/android-
или
/платформенные инструменты
или
/платформы/android- /инструменты
Обновлено в соответствии с комментарием geniusburger. Спасибо!
Для отображения имен пакетов и действий в apk можно использовать следующий bash script и запустить приложение, передав ему файл APK.
apk_start.sh
Затем, чтобы запустить приложение в эмуляторе, просто поставьте имя файла APK так:
Конечно, если вы просто хотите отобразить имя пакета и активности apk, удалите последнюю строку script.
Вы можете остановить приложение таким же образом, используя этот script:
apk_stop.sh
Важное примечание: aapt можно найти здесь:
В следующем коде перечислены:
Не уверен, что вам все еще нужно это, но в http://www.appbrain.com/ вы просматриваете приложение, а имя пакета находится в URL-адресе. Например: http://www.appbrain.com/app/fruit-ninja/ com.halfbrick.fruitninja – ссылка на фруктовый ниндзя. Обратите внимание на жирный
Добавление к приведенным выше ответам:
Чтобы найти имя пакета установленных приложений на любом устройстве Android:
Переход к Хранению /Android/data/
Вот простой способ получить полный пакет приложений.
мы можем использовать приложение astro file manager. Вы можете получить его на рынке Android.
Astro app manager показывает нам полный пакет приложений.
Вы можете выполнить поиск в Интернете в Google Play Store. Если найдено, проверьте URL-адрес, например https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en
Параметр id соответствует имени пакета приложения. В случае URL-адреса в этом примере имя пакета – lutey.FTPServer.
Это довольно сложная ситуация, вы можете получить имя пакета из файла apk, но я предполагаю, что вы хотите сделать это автоматически.
AndroLib имеет имена пакетов для большого количества приложений, но вам придется анализировать их, поскольку API не существует. Theres раздел разработчика, который может иметь некоторые инструменты, которые помогут вам.
Как только вы получите имя пакета, как описано ответ Криса Смита, вы можете/должны использовать URL-адрес намерения для этой ссылки. Это специальный формат URL, который запустит пакет, если пользователь уже установил его, или откройте магазин воспроизведения на странице приложения, если нет…
Приложение должно поддерживать это, с активностью, помеченной как доступная для просмотра, но многие будут.
Теперь вы можете найти имена пакетов всех приложений, установленных на вашем телефоне.
Если вам нужна эта информация в телефоне, лучше всего использовать приложение типа APKit, которое отображает полное имя пакета для каждого приложения в вашем телефоне. Затем эту информацию можно использовать в телефоне.
Давайте будем прямыми в своих intent
В Android 12 появится важное изменение, улучшающее безопасность платформы целиком и всех приложений, предназначенных для работы с этой версией ОС. Активити, сервисы и бродкаст ресиверы (broadcast receivers), в которых указаны интент-фильтры (intent-filters), должны явно обозначать, будут ли они доступны для других приложений или компонентов системы.
Далее перевод статьи про проблемы и решения, которые могут возникнуть при переходе на новую версию.
Ошибки
Если установка вашего приложения завершается одним из сообщений ниже, скорее всего, это связано с новыми изменениями.
Решение
Но не следует бездумно добавлять `android:exported=”true”` ко всем этим элементам. Просмотрите каждый компонент, включающий в себя и спросите себя: «Хочу ли я, чтобы любое приложение, установленное на устройстве, могло запустить этот компонент?».
Ответ на этот вопрос зависит от назначения приложения, взаимодействия с ним другого ПО и иных, более специфических условий. Ниже представлены несколько распространённых примеров интент-фильтров с рекомендуемым значением exported-атрибута и объяснением выбора.
Активити с : android:exported=”true”
Скорее всего, это MainActivity вашего приложения и поскольку лаунчер в Android может быть обычным приложением, атрибут exported необходим, иначе лаунчер не сможет запустить её.
Эта активити отвечает за обработку действия «открыть с помощью» из других приложений.
Позволяет обрабатывать контент, которым могут делиться другие приложения.
Если сервис предоставляет другим приложениям доступ к медиа-библиотеке вашего, то он должен быть экспортированным (exported), чтобы разрешить приложениям использовать эту библиотеку. Скорее всего, такой сервис, напрямую или опосредованно, наследуется от MediaBrowserServiceCompat. Если это не так, то возможно, атрибут exported необязателен.
Это сервис Firebase Cloud Messaging, он должен наследоваться от FirebaseMessagingService и не должен быть экспортированным, поскольку Firebase может запустить компонент вне зависимости от факта его экспортации. Подробности можно узнать по ссылке: Set up a Firebase Cloud Messaging client app on Android
Система может доставлять это событие в бродкаст ресивер вне зависимости от факта экспортации.
Бэкграунд
Вплоть до Android 12, активити, сервисы и бродкаст ресиверы с обозначенным интент-фильтром автоматически становились экспортированными.
Эта активити экспортирована по умолчанию:
И хотя подобное дефолтное поведение выглядит разумным, ошибка может сделать ваше приложение уязвимым. Например, приложение имеет активити для проигрывания видео:
Позже обнаруживается, что мы обращаемся к этой активити из множества разных мест в приложении, и, чтобы уменьшить связность, меняем её, включая интент-фильтр для выбора активити системой:
Внезапно появляется проблема. Наша активити, созданная исключительно для использования внутри приложения, внезапно становится экспортированной!
Но при таргете на Android 12 система предотвратит подобное поведение, требуя от нас явно указать значение атрибута android:exported. И поскольку в данном случае мы не хотим, чтобы активити была экспортирована — ставим атрибут android:exported = false, чтобы обезопасить приложение.
Для улучшения безопасности в Android 12 появится важное изменение. Приложения, у которых эта версия указана в target SDK, должны будут явно объявлять значение атрибута `android:exported` для любых активити, сервисов или ресиверов, которые используют интент-фильтры в AndroidManifest.xml. Без него приложение просто не установится.
Тщательно принимайте решение касательно значения этого атрибута и, если сомневаетесь — предпочитайте android:exported=”false”.
Для получения более подробной информации об интентах и интент-фильтрах смотрите Receiving an implicit intent.
О других изменениях безопасности и приватности читайте на этой странице.
Открытие URL-ссылок с помощью Android-приложения (Deep Links)
Что такое Deep Links и как интегрировать их в своё приложение
Apr 28, 2018 · 3 min read
Как работает открытие ссылок через приложение и зачем оно вообще нужно?
Нередко бывает так, что определённому контенту соответствует и страница на сайте, и экран в приложен и и. В таких случаях пользователю, у которого установлено приложение, удобно будет открывать ссылку на этот контент через приложение. Как пример можно взять интернет-магазин. Пользователь может нажать на ссылку в браузере, после чего ему предложит просмотреть страницу товара через приложение. Также это хорошо используется с шарингом ссылок. Пример: Петя увидел классные кроссовки на сайте и скинул ссылку на них Васе в Telegram. У Васи уже установлено приложение интернет-магазина, поэтому он нажав на ссылку в Telegram попадает на экран приложения, в котором отображается вся информация об этих замечательных кроссовках. Удобно, не правда ли?
Разделение на Deep Links и Android App Links
Перед тем, как мы займемся реализацией, важно понять, что есть два способа обработки ссылок:
1. Deep Links
Глубокие ссылки (Deep Links) — это URL, которые направляют пользователя на определённый контент в вашем приложении. Они реализуются созданием интент-фильтра и извлечением информации из входящих интентов. Если на телефоне установлены приложения, которые могут обрабатывать такие же интенты, то пользователю будет предложено несколько приложений на выбор, и он сможет выбрать через какое открыть ссылку.
2. Android App Links
Android App Links доступны только с Android 6.0 (API 23) и позволяют назначать приложение дефолтным обработчиком ссылок определённого типа. Главное отличие от Deep Links заключается в том, что никакое другое приложение кроме вашего не сможет обработать ссылку.
В этой статье будет рассматриваться первый тип ссылок — Deep Links.
Постановка задачи
Давайте на простом и типичном примере посмотрим как можно добавить обработку глубоких ссылок в приложение.
Допустим, у нас есть сайт с вакансиями, на котором каждой вакансии соответствует ссылка вида https://awesomejobs.com/jobs/
Реализация
category android.intent.category.DEFAULT требуется если вы хотите чтобы приложение обрабатывало ссылку с любого ссылающегося сайта. Интент, который используется при переходе из результатов поиска Google знает, что должен открыть именно ваше приложение, поэтому явно указывает на него как на получателя. Ссылки же с других сайтов не знают ничего о вашем приложении, поэтому категория DEFAULT говорит о том, что приложение способно принять неявный Intent от них.
2. Наше приложение научилось ловить интенты извне, теперь нам нужно написать код для того, чтобы перехватывать их, доставать id вакансии и с ним уже делать всё, что нам захочется (запрашивать с сервера информацию о вакансии с таким id и отображать её, например).
Для этого в метод onCreate активити, которую мы использовали в манифесте, добавим следующий код:
Активити запускается интентом, содержащем в себе ссылку. data — это и есть не что иное, как наша ссылка. Получив её и выполнив необходимые проверки, мы вырезаем из неё id вакансии, подтягиваем её детали с сервера и отображаем на экране. Всё предельно просто.
Intent Android
Материал из AOW
Содержание
Intent (Намерение)
Но это не единственный вариант использования намерения. Также можно использовать для объявления о запуске активности или сервиса, направленных на выполнение каких-либо действий (как правило, речь о работе с определенной частью данных) или для передачи уведомлений о том, что произошло некое событие (или действие).
Намерения могут применяться для трансляции сообщений по системе. Любое приложение способно зарегистрировать широковещательный приёмник и отслеживать эти намерения с возможностью на них реагировать. Это позволяет создавать приложения, использующие событийную модель, в основе которой лежат внутренние, системные или сторонние события, передаваемые внешними программами.
Android транслирует намерения для объявления о системных событиях, например об изменениях в состоянии сетевого подключения или в уровне заряда батареи. Системные приложения в Android, такие как программы дозвона или управления SMS, регистрируют компоненты, отслеживающие заданные намерения, например входящий звонок или получено новое SMS-сообщение, и соответствующим образом реагируют на них.
Неявные намерения и связывание во время выполнения программы
Неявные намерения — это механизм, позволяющий запрашивать анонимные компоненты приложений с помощью действий. Вы можете попросить систему запустить активность, выполняющую заданное действие, не зная ничего ни о самой активности, ни о её приложении.
Создавая новое неявное намерение для передачи в метод startActivity, необходимо назначить действие, которое должно выполниться, а также при желании указать вспомогательный путь URI к тем данным, что нужно обработать. Вы также можете передать дополнительные данные в целевую Активность, используя параметр намерения extras.
При применении этого намерения для запуска активности система во время работы приложения сама найдёт класс компонента, который лучше всего подходит для заданного действия, учитывая указанный тип данных. Это значит, что вы можете создавать проекты, используя возможности других приложений и не зная при этом, как они называются и какую функциональность предоставляют.
Простой пример создания намерения с предопределенным действием ACTION_VIEW для запуска браузера и перехода на нужный адрес:
Uri address = Uri.parse(«http://developer.alexanderklimov.ru»); Intent openlink = new Intent(Intent.ACTION_VIEW, address); startActivity(openlink);
В данном случае действие ACTION_VIEW означает просмотр чего-либо. Мы указали нужные данные (адрес), и происходит запуск новой активности (браузера). При этом исходная активность приостанавливается и переходит в фоновый режим. Когда пользователь нажимает на кнопку Back, то он возвращается к исходной активности.
В каждом случае Android находит соответствующую активность, чтобы ответить на намерение, инициализируя ее в случае необходимости.
Приложения могут также создавать свои собственные типы намерений и позволять другим приложениям вызывать.
Объект Intent содержит информацию, представляющую интерес для компонента, который получает намерение, и данные, которые передаются этому компоненту. Кроме того, объект Intent содержит информацию, представляющую интерес для системы Android, — имя компонента, который должен обработать намерение и набор параметров запуска этого компонента.
Как правило, объект Intent может содержать следующие поля:
Система и приложения, которые идут в комплекте с платформой, также используют объекты Intent для активизации определенных системой компонентов (например, различных приложений и служб при загрузке системы).
Константы действия
Методы
Для работы с категориями в классе Intent определена группа методов:
Группы намерений
Намерения могут быть разделены на две группы:
Фильтры намерений и запуск заданий
Если намерение запрашивает выполнение какого-либо действия с определенным набором данных, то системе нужно уметь выбрать приложение (или компонент) для обслуживания этого запроса. На помощь приходят фильтры намерений, которые используются для регистрации активностей, сервисов и широковещательных приёмников в качестве компонентов, способных выполнять заданные действия с конкретным видом данных. С помощью этих фильтров также регистрируются широковещательные приёмники, настроенные на трансляцию намерением заданного действия или события.
Задействуя Фильтры намерений, приложения объявляют, что они могут отвечать на действия, запрашиваемые любой другой программой, установленной на устройстве. Чтобы зарегистрировать компонент приложения в качестве потенциального обработчика намерений, нужно добавить тег в узел компонента в манифесте.
В фильтре намерений декларируется только три составляющих объекта Intent: действие, данные, категория. Дополнения и флаги не играют никакой роли в принятии решения, какой компонент получает намерение.
Например, в любом приложении есть главная активность, которая устанавливается как точка входа для задания:
Фильтр такого вида в элементе помечает активность, как запускаемую по умолчанию. Элемент заставляет значок и метку для деятельности отображаться на панели Application Launcher, давая пользователям возможность запускать задание и возвращаться к этому заданию в любое время после того, как оно было запущено.
Внутри узла Фильтра намерений можно использовать такие теги (и соответствующие атрибуты).
Принцип работы фильтров намерений
При использовании метода startActivity() передаваемое неявное намерение, как правило, доходит лишь до одной активности. Если для выполнения заданного действия с указанными данными годятся сразу несколько активностей, пользователю предоставляется список выбора. Процесс, когда решается, какую активность лучше запустить, называется Утверждением намерений. Его цель — найти наиболее подходящий фильтр намерений. В целом весь алгоритм работает следующим образом. Android собирает список всех доступных Фильтров намерений из установленных пакетов.
Фильтры, которые не соответствуют действию или категории Намерения, удаляются из списка. Совпадение происходит только в том случае, если Фильтр намерений содержит указанное действие (или если действие для него вовсе не задано). Совпадения не произойдет, только если ни одно из действий Фильтра намерений не будет эквивалентно тому, которое задано в Намерении. Для категорий процесс соответствия более строгий. Фильтр намерений должен включать в себя все категории, заданные в полученном Намерении. Фильтр, для которого категории не указаны, может соответствовать только таким же Намерениям (нет категорий).
Наконец, каждая часть пути URI из Намерения сравнивается с тегом data Фильтра намерений. Если в Фильтре указаны схема (протокол), сервер/принадлежность, путь или тип MIME, все эти значения проверяются на соответствие пути URI из Намерения. При любом несовпадении Фильтр будет удален из списка. Если в Фильтре намерений не указано ни одного параметра data, его действие будет распространяться на любые данные.
После имени сервера идет путь к данным (например, /ig). Путь пройдет проверку только после схемы и имени сервера, содержащихся в теге.
Когда вы неявным образом запускаете Активность и вышеописанный процесс возвращает более одного совпадения, пользователю выводится список со всеми вариантами
Поиск и использование намерения, с помощью которого была запущена активность
Когда программный компонент запускается с помощью неявного намерения, он должен найти действие, которое необходимо осуществить, и данные для него.
Используйте метод getIntent() (как правило, внутри метода onCreate), чтобы извлечь намерение, с помощью которого компонент запущен.
Применяйте методы getAction() и getData(), чтобы найти действие и данные, связанные с намерением. Для извлечения дополнительной информации, хранящейся в параметре extras, используйте типизированные методы get Extra.
Делегирование ответственности
Задействуйте метод startNextMatchingActivity() для делегирования ответственности за обработку действия следующему компоненту, который лучше всего для этого подходит.
Это позволяет добавлять дополнительные условия для компонентов, которые ограничат сферу их применения рамками утверждения Намерений. В некоторых случаях ваш компонент может выполнить некоторые операции или предложить пользователю выбор, прежде чем передать Намерение другому компоненту.
ACTION_PICK
Принцип ACTION_PICK заключается в том, чтобы запустить активность, отображающую список элементов. После этого активность должна предоставлять пользователю возможность выбора элемента из этого списка. Когда пользователь выберет элемент, активность возвратит URI выбранного элемента вызывающей стороне. Таким образом, можно многократно использовать функцию UI для выбора нескольких элементов определенного типа.
Следующий код выведет диалоговое окно со списком всех возможных программ, которые могут запустить активность с данными, так как мы не указываем конкретный тип (setType(«*/*»)):
// Показываем все программы для запуска Intent intent = new Intent(Intent.ACTION_PICK); intent.setType(«*/*»); startActivityForResult(intent, 1);
Если мы укажем конкретный тип данных, которые нас интересует, то список программ существенно сузится. Например, если указать intent.setType(«image/*»);, то можем увидеть только системную программу Галерея для просмотра картинок (у пользователя могут быть установлены программы, которые также предназначены для просмотра картинок, поэтому список может отличаться).
Очень подробно про намерения написано в книге Разработка приложений для Android
На странице http://www.openintents.org/ собрана информация о доступных намерениях в разных программах.
Примеры использования намерений
Позвонить
Запустить стандартную звонилку без набора номера (ACTION_DIAL)
Открыть звонилку и набрать заданный номер. Требуются разрешения android.permission.CALL_PHONE, CALL_PRIVILEGED (для экстренных вызовов)
Получить контакт из телефонной книги
Открывает стандартное приложение контактов. Метод startActivityForResult позволяет получить URI выбранного контакта. Вы увидите сразу все контакты пользователя, включая почтовые. Если необходимо выбрать только контакт из телефонной книги, можно воспользоваться следующим кодом:
Intent pickIntent = new Intent(Intent.ACTION_GET_CONTENT); pickIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); startActivityForResult(pickIntent, PICK_RESULT);
Открыть ссылку в браузере
Данный код запустит браузер с указаной ссылкой. Eсли ссылка ведет на YouTube, то откроется стандатное приложение для YouTube. Также можно открыть стандартный клиент Android Market с ссылкой на какое-либо приложение. Для этого необходимо в параметр URI передать ссылку вида market://search?q=search query, где search query необходимо заменить соответствующим поисковым запросом.
Разрешения: не требуется.
YouTube
Можно запустить конкретно приложение YouTube
Поисковый запрос
Можно отправить поисковый запрос в Гугл:
Отправить письмо
Добавьте на форму текстовые поля для ввода адресата, темы письма и сообщения. Далее сам код:
На устройстве должна быть настроена программа, отвечающая за отправку писем. Если таких программ будет несколько, то пользователь сможет выбрать одну из них при помощи диалогового окна.
Камера
Программное включение приложения Камера
Программно включить приложение Камера, сделать снимок и получить результат
Запустить приложение Камера в режиме видеозаписи и получить результат Распознавание речи
Этот код запускает приложение распознавания речи. Если произнести что-либо, система обработает голос и вернет результат в метод onActivityResult:
Голосовая команда
Запустить Twitter
Twitter можно запустить через намерение. Если на устройстве установлено родное приложение, то запустится оно, иначе запустится веб-версия:
Вместо переменной twitter_user_name необходимо подставить нужный аккаунт. Отсюда.