- Instagram api on android
- Как работать с Instagram API в Android
- Аутентификация или пустите нас в Instagram
- Как получить фотографии из Instagram
- Instagram API. Android. Вход и получение данных пользователя.
- Регистрация
- Создание Android-приложения
- Аутентификация
- Сохранение данных
- Получение данных пользователя
- Отображение информации пользователя
- Instagram Integration in Android Application Tutorial
- Objective
- Step 1 Register your Application
- Step 2 Register new Client ID
- Step 3 Manage Clients
- Step 4 Creating InstagramDialog Class
- Step 5 Create InstagramApp Class
- Step 6 Create InstagramSession Class
- Step 7 Fetching User Data
- Shraddha Gadesha
Instagram api on android
The remaining Instagram Legacy API permission («Basic Permission») was disabled on June 29, 2020. As of June 29, third-party apps no longer have access to the Legacy API. To avoid disruption of service to your app and business, developers previously using the Legacy API should instead rely on Instagram Basic Display API and Instagram Graph API . Please request approval for required permissions through the App Review process.
Legacy API user identifier available on Basic Display API until September 30, 2020
To assist with migration, we have temporarily made the unique user identifier from the Legacy API — ig_id — available on Basic Display API. However, the ig_id field will be deprecated on Basic Display API on September 30, 2020, so please ensure you are using other fields (e.g. the Facebook «id» field) or your own unique identifier for your users. See our developer documentation here to learn more.
User Token Generator
If you’re only using the Legacy API to generate tokens in order to display your Instagram Feed on a personal website, you can use the Instagram Basic Display API’s User Token Generator to continue generating tokens. The User Token Generator does not require App Review, but it will only work for your owned Instagram accounts (i.e. accounts for which you know the login credentials). Refer to the developer documentation here to learn more. If you’re using the Legacy API to display multiple accounts on your website, then you must apply for permissions to Instagram Basic Display API via App Review. If you’re using the Legacy API for any other use case, you must apply for permissions on the Instagram Graph API platform via App Review.
More Tips
For more guidance on getting through our App Review process, please see this blog post . For more tips and tools, check out our App Review Rejection Results Guide , Common App Review Rejection Reasons and Developer Tools page . We also encourage you to leverage the Facebook Developer Community Forum — it’s a tremendously helpful resource for communicating and connecting with developers across the world.
Источник
Как работать с Instagram API в Android
Instagram — программа, позволяющая пользователям мобильного телефона делится своими фотографиями со всем миром. Долгое время Inspagram был доступен только обладателям iPhone. Они гордились этим фактом и всячески подчеркивали свою элитарность. Однако в 2012 году ситуация изменилась, был выпущен официальный клиент для Android. Этот шаг значительно увеличил пользовательскую базу и популярность инстаграмма. В сети появились различные фан-группы и сообщества, напримерinstagrama.ru. Одной из сильных сторон Instagram-а, как сервиса, является наличие открытого API позволяющего использовать его возможности в своих приложениях.
Процесс интеграции функциональности инстаграмма в свое Android приложение чем-то напоминает работу с Twitter-ом. Однако в случае с последним, в нашем распоряжении есть огромное количество библиотек от сторонних разработчиков. При работе с Instagram мы лишены всей этой роскоши, однако API инстаграмма очень прост, и если вы представляете, как работать с сетью в Android, то у Вас не будет никаких проблем с его использованием.
Прежде чем приступать к кодингу, нам нужно зарегистрировать свое будущее приложение вInstagram Developer Website. Процесс регистрации не вызывает трудностей. В конце вам сообщат Client ID, Client Secret, Redirect URI и другую техническую информацию, которую нужно будет сохранить, чтобы потом использовать в своем приложении.
Аутентификация или пустите нас в Instagram
После аутентификации ваше приложение получает маркер доступа, который затем используется для отправки запросов к Instagram. Для начала давайте сохраним значения client id и client secret, которые вы поучили после регистрации, в файле strings.xml.
Зададим несколько констант, которые потом будем использовать при генерации URL адресов
Первый адрес используется для аутентификации, второй — для получения маркера доступа и информации о пользователе, третий — версия API, которую мы будем использовать при отправке запросов к Instagram, четвертый адрес — ссылка для редиректа. Эту ссылку вы должны были получить в процессе регистрации. Если Вы укажете ее неверно, то Instagram не будет работать с вашим приложением.
Используя эти константы, сгенерируем два URL
В authURLString входят client id, callback url, response_type и scope. Первые два параметра понятны, «response_type=code» означает, что после успешной аутентификации вы хотите получить маркер запроса, а не маркер доступа. Параметр «scope» задает права доступа которые запрашивает ваша программа. Более подробно о возможных значениях этого параметра можно прочитать в документации по Instagram API.
После того, как наши адреса готовы, покажем ссылку в WebView, чтобы пользователь мог зайти в свой Instagram аккаунт.
В четвертой строке мы ссылаемся на класс AuthWebViewClient, который будет обрабатывать ответ сервера. Давайте напишем его.
Переопределим в этом классе метод shouldOverrideUrlLoading
Если вы все сделали правильно, то в переменной request_token окажется маркер запроса, который мы будем использовать для получения маркера доступа.
Создадим класс-потомок AsyncTask и поместим следующий метод в doInBackground().
Этот код открывает HTTPS соединение и заполняет его данными, которые требуются Instagram-у для генерации для нас маркера доступа. Полученный маркер доступа нужно надежно сохранить и использовать каждый раз при обращении к Instagram.
Исходный код проекта можно скачатьздесь.
Как получить фотографии из Instagram
Загрузка изображений является самой базовой функцией и не требует каких-либо специальных прав (см параметр scope выше). Для запроса изображений нам нужно сформировать специальный URL
Здесь нам потребуются User’s Instagram Id и маркер доступа, которые мы получили в процессе аутентификации.
Откроем соединение для получения входящего потока данных. Перед тем как использовать данные, поток нужно преобразовать в строку. Используемый для этого метод streamToString() описан ниже.
Instagram отправляет ответы в формате Json, поэтому нам нужно преобразовать полученную строку в Json.
Все что нам осталось, вытащить URL картинки из JSon объекта.
Instagram сохраняет изображения в трех разрешениях, соответственно Вы можете запросить одно из них: standard_resolution, low_resolution и thumbnail. Как видите, мы использовали low_resolution.
Нам осталось загнать весь этот код в отдельный AsyncTask поток и можно использовать.
Источник
Instagram API. Android. Вход и получение данных пользователя.
Oct 9, 2018 · 5 min read
Эта статья будет полезна тем, кто хочет начать использовать Instagram API в своем Android-приложении.
Разберем следующие моменты:
- Регистрация и получение client_id.
- Отправка запросов к Instagram API.
- Вход пользователя в Инстаграм через ваше приложение.
- Получение данных пользователя (имя пользователя, главное фото).
Для написания приложения было использовано Instagram API v1, Android Studio 3.1.4.
Регистрация
Для того, чтобы иметь возможность отправлять запросы к API, необходимо зарегистрировать свое приложение на https://www.instagram.com/developer/.
Нужно войти в свой аккаунт Инстаграм и зарегистрировать нового клиента. Заполните все поля вашими данными. В поле “Valid redirect URIs” на данном этапе можно ввести любой адрес. Например, https://www.instagram.com/. На этот адрес Инстаграм отправит пользователя после успешной аутентификации. Нам он нужен для проверки этого факта.
После регист р ации вы получите свой CLIENT ID. Он используется во всех запросах к API и является обязательным параметром.
Создание Android-приложения
Создайте новый проект в Android Studio. Выберете шаблон Empty Activity.
Взаимодействие с API происходит с помощью HTTP-запросов, поэтому нужно добавить разрешение на использование интернета в AndroidManifest.
Также добавьте строки в res/values/strings. Их мы будем использовать для построения HTTP-запросов.
В activity_main.xml добавьте кнопку для входа в Инстаграм.
Определите метод onClick() в MainActivity. После нажатия кнопки будет открываться диалог аутентификации. Его реализация будет описана далее.
Аутентификация
Вход пользователя в Инстаграм происходит в два шага:
- Вы отправляете пользователя на страницу входа в Инстаграм.
- После успешной аутентификации вы получаете access token. Он будет впоследствии использоваться для всех запросов, связанных с получением данных пользователя. С помощью него вы будете иметь к ним доступ.
Таким образом, задача сводится к получению токена доступа.
Создайте класс AuthenticationDialog.
Добавьте в него следующие поля и конструктор:
- redirect_url — адрес, на который Инстаграм перенаправляет пользователя после успешной аутентификации. Его получаем из res/values/strings.
- request_url —это запрос, который направит пользователя на страницу входа в Инстаграм.
- listener — слушатель, которым будет MainActivity. Когда токен доступа будет получен, он будет передан слушателю, а диалог, исполнив свою функцию, закроется.
Создайте интерфейс слушателя AuthenticationListener. Он имеет единственный метод onTokenReceived().
Реализуете интерфейс в MainActivity:
Вернемся к диалогу аутентификации. Создайте auth_dialog.xml.
Диалог будет представлять собой WebView. В нем мы откроем страницу входа в Инстаграм. HorizontalScrollView позволит удобно просматривать эту страницу.
В методе onCreate() класса AuthenticationDialog инициализируете WebView:
Здесь мы переопределяем два метода:
- В методе shouldOverrideUrlLoading задается правило: при открытии страницы с адресом redirect_url диалог закрывается (что вызывает метод onPageFinished). Как было сказано ранее, на этот адрес Инстаграм отправляет после успешной аутентификации. А это значит, что пользователь вошел, и теперь можно получить токен доступа.
- В методе onPageFinished происходит получение токена доступа и вызывается метод слушателя ( MainActivity) onTokenReceived. Слушателю передается токен.
Теперь можно работать с данными пользователя, используя токен доступа.
Сохранение данных
Прежде чем приступить к получению данных, создадим класс для их сохранения. Для этого используем SharedPreferences. Это позволит хранить основную информацию пользователя в памяти телефона.
Создадим класс AppPreferences, который позволяет сохранить, получить и удалить данные.
Получение данных пользователя
Добавьте в MainActivity поле token:
Определите метод onTokenReceived
Здесь мы сохраняем токен в памяти телефона и вызываем метод получения информации пользователя.
Создайте класс для выполнения запроса на получение данных RequestInstagramAPI:
Запрос будет выполняться в отдельном потоке (doInBackground)
Добавьте строку get_user_info_url в res/values/strings.
Сохранение данных происходит после получения ответа на запрос ( onPostExecute)
Отображение информации пользователя
Чтобы наглядно продемонстрировать работу программы, выведем информацию пользователя на экран. Для этого измените activity_main.xml следующим образом:
Здесь добавлен LinearLayout, который содержит поле для фото профиля ( ImageView), а также поля для id и имени пользователя( TextView ).
Создайте методы login() и logout() в MainActivity. Метод login() отображает информацию пользователя, а метод logout() скрывает ее, а также удаляет данные из памяти телефона.
Внесите небольшие изменения в метод onClick():
Приложение должно выглядеть следующим образом:
Источник
Instagram Integration in Android Application Tutorial
To download the code, login with one of the following social providers.
Login Login
Be patient. we are fetching your source code.
Objective
You will get Final Output:
Instagram has captured lot of eyeballs after it got acquire by Facebook, and Instagram is also growing its user base and getting more popular day by day. So, integrating Instagram sharing in your app can give you lot of leverage. For easy integration, Instagram provides quite rich API.
The API can help you in following kind of operations:
- To get all Media files uploaded by user on Instagram.
- To view like and comments for the media file.
- To get followers and following information.
- To get user information etc.
Instagram does not provide:
- API to upload image.
- To add follower.
- To follow someone etc.
It provides read only API, using which we can view all information.
I am creating an app in which I am fetching all the Instagram photos of a user and also getting the followers and followings list.
Following are the steps to Integrate Instagram in your Android application
Step 1 Register your Application
To Register the app follow the below link. After open the page click on Register your Application
Step 2 Register new Client ID
Fill in the app information After clicking on Register your Application you will be redirected to Client ID page. Enter all the information of your app and then click on register.
Step 3 Manage Clients
Manage Clients page will be displayed after registration done successfully.
To Integrate Instagram in our app, we will need 3 things
- Client id
- Client secret
- Redirect Uri
Copy client id, client secret and redirect Uri and paste it in ApplicationData class as following:
Step 4 Creating InstagramDialog Class
Create InstagramDialog class to display webview for login into Instagram as following:
Step 5 Create InstagramApp Class
Create InstagramApp class which is used to store Instagram user session information by calling API as following:
In the above code getAccessToken() method uses.
https://api.instagram.com/oauth/access_token API with post method to get user id, username etc. and stores it to session using InstagramSession class object.
Step 6 Create InstagramSession Class
InstagramSession class is used to store user info as following:
Step 7 Fetching User Data
After creating above classes in MainActivity , create object of InstagramApp and add set
OAuthAuthenticationListener() to that object as following in onCreate() method :
In onSuccess() method, I have called another method fetchUserName() of InstagramApp class which calls https://api.instagram.com/v1/users/1574083/?access_token=ACCESS-TOKEN API which is used to get all information such as
- User full name
- User name
- Profile photo path
- Number of photos uploaded by user
- No of following and followers etc.
I have stored this information in Hashmap. On view info button click, all the information will be displayed as alert dialog.
Code for the MainActivity is as following:
I hope you find this Instagram Integration in android tutorial blog helpful. If you are facing any issues or have any questions regarding instagram integration please feel free to comment over here, I would be glad to help you ASAP.
Also check out following Android Integration:
Learning Android sounds fun, right? Why not check out our other Android Tutorials?
Got an Idea of Android App Development? What are you still waiting for? Contact us now and see the Idea live soon. Our company has been named as one of the Best Android App Development Company in India.
Shraddha Gadesha
I am android developer, and do development not because to get paid or get adulation by the public, but because it is fun to program. I have been working in this field since one and half year.
Источник