Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
31
Terentyeff
Terentyeff
3 года назад
Исследователи космоса

Ответ на пост «А вы знали что у NASA есть API?»⁠⁠2

Прочтя этот пост, решил реализовать нечто подобное для ВК.

Приложение раз в час/два и т.д. (настраивается) постит в Вашу группу в ВК рандомную картинку и описание к ней, используя NASA API.


Дисклеймер: Я не супер программист(но очень хотелось бы), поэтому будет полно говнокода, поэтому, прошу сильно не пинать =).


Для начала, необходимо создать standalone-приложение в VK.

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Оно нам понадобится для авторизации в соц.сети и получения Access Token, который позволит работать с VK API.


Мы же с вами программисты, а не (вставить любое слово), поэтому, будем писать всё вручную, а не эти ваши десигнеры использовать.


Данные(VKToken, NASAToken, ID Группы, данные об авторизации, ID группы, пользователя и настройки таймера) будем хранить в ini файле.

Для отображения таймера будем использовать QLCDNumber.


Наш хеадер главного окна получился таким:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

И наш cpp файл. Если файл с настройками не найден, то программа создаст новый и поставит таймер стандартно на час.

В QLCDNumber ставим отображение до 8ми цифр.

И все наши виджеты загоняем в QGridLayout и выводим её.

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Получилась вот такая штука:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Ничего сложного, правда?)


Интерфейс для настроек делаем по подобию, но, если что, ссылку на git оставлю в конц статьи.

Теперь, перейдём к самому интересному. API NASA и VK API.

У NASA есть много разного API, но мы будем работать с APOD(Astronomy Picture of the Day).

Для получения данных, необходимо отправить GET запрос на https://api.nasa.gov/planetary/apod?api_key=NASA_TOKEN


Пример: https://api.nasa.gov/planetary/apod?api_key=NASAToken&co...

В ответ мы получим json файл с таким содержимым:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Нам интересны значения: date, explanation, hdurl и copyright(Если фотография не в свободном доступе, то нужно ставить копирайт и NASA нас об этом предупреждает.)

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

А вот и полный список всех параметров, но нам будет интересен только "count"

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Наша ссылка будет выглядеть так:

https://api.nasa.gov/planetary/apod?api_key=NASAToken&co...

NASAToken - Токен, который мы получили от NASA.


Авторизация в ВК и получение токена.

Пример авторизации в официальной документации:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Где client_id - id нашего приложения, scope - необходимые параметры доступа. В нашем случае нужно будет использовать offline, wall, groups. offline нужен для бессрочного token.


Так как ответ приходит немного кривой, требуется сделать немного косметических правок:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Затем, вытаскиваем из ссылки access_token и айди пользователя, сохраняем и переключаем авторизацию в True, затем, закрываем окно.

Пришла пора обработки JSON от NASA и загрузки данных на стену группы.


Сперва, давайте обработаем данные от НАСА.

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Теперь, перейдем к загрузке полученных данных в группу. Нам понадобится метод wall.post и параметры owner_id, message, attachments, access_token.

Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1)


Итоговая ссылка у нас получается:

https://api.vk.com/method/wall.post?owner_id=-" + GroupID + "&message=" + strk + "&attachments=" + attach + "&access_token=" + VKToken + "&v=5.131

Где GroupID - ай ди группы, который мы сохранили в настройках, strk - строка с копирайтом, датой, описанием, attach - ссылка на фото/видео, VKToken - наш access_token, который мы получили после авторизации.


В общем-то, всё. Мы написали программу, которая будет раз в n-часов постить в нашу группу ВК данные от NASA =).


Ссылка на Github с полным кодом: https://github.com/ac973k/NASAImageVKPost

Ссылка на VK API: https://vk.com/dev/methods

Ссылка на группу: https://vk.com/public200170365


ВК как-то очень криво вставляет изображения, поэтому, в некоторых постах изображение вставляется, а в некоторых ссылка на картинку.

Показать полностью 9
[моё] IT NASA API Разработка Программирование Космос Наука Бот Научпоп ВКонтакте C++ Qt Vkapi Ответ на пост Длиннопост
3
338
Psyoniz
Psyoniz
4 года назад
Исследователи космоса

Старина Юпитер⁠⁠

by NASA

Старина Юпитер Астрономия, Юпитер, NASA, Копипаста, ВКонтакте
Показать полностью 1
Астрономия Юпитер NASA Копипаста ВКонтакте
17
81
Psyoniz
Psyoniz
4 года назад
Исследователи космоса

Новости астрономии прошедшей недели (кратко):⁠⁠

❗️Обнаруженный в ноябре прошлого года околоземный астероид 2020 XL5 (размер 200 - 500 м), по-видимому, является вторым известным (после 2010 TK7) троянским астероидом Земли. Как и наш первый открытый троянец, он движется в области точки Лагранжа L4.

❗️Учёные миссии OSIRIS-REx объявили, что аппарат покинет окрестности астероида Бенну и начнёт путь к Земле с веществом астероида 10 мая 2021 г., когда взаимное расположение аппарата и планеты будет наиболее благоприятным.

❗️Космический телескоп NASA TESS обнаружил систему из шести звёзд в созвездии Эридана (TYC 7037-89-1), состоящую из трёх пар затменных переменных звёзд.

❗️Оснащение радиотелескопа «Green Bank Telescope» новым передатчиком позволило ему в совокупности с массивом VLA получить радиолокационное изображение места посадки лунной миссии «Аполлон-15». Технология расширяет возможности астрономов в том числе в изучении малых тел Солнечной системы.

Источник: vk.com

Новости астрономии прошедшей недели (кратко): Астрономия, Новости, Астероид, Osiris-rex, NASA, Tess, Vla, Копипаста, ВКонтакте
Показать полностью 1
Астрономия Новости Астероид Osiris-rex NASA Tess Vla Копипаста ВКонтакте
5
10
GeneralUn1t
GeneralUn1t
6 лет назад

Тайна раскрыта⁠⁠

Тайна раскрыта
NASA ВКонтакте Командировка
2
7
Airovik
Airovik
8 лет назад

Пельмень, ты просто космос⁠⁠

Пельмень, ты просто космос
Новости NASA ВКонтакте
3
722
Palpat1ne
Palpat1ne
8 лет назад

Коротко о главных новостях дня⁠⁠

Коротко о главных новостях дня
ВКонтакте Брэд Питт Развод NASA Анджелина Джоли Знаки зодиака
21
64
latto
latto
8 лет назад
Наука | Научпоп

Поменял знак зодиака;или "из грязи в князи"⁠⁠

Поменял знак зодиака;или "из грязи в князи" NASA, Астрономия, Знаки зодиака, ВКонтакте, Астрология, Скорпион, Характер, Упрямство
Показать полностью 1
[моё] NASA Астрономия Знаки зодиака ВКонтакте Астрология Скорпион Характер Упрямство
12
Draco
Draco
9 лет назад

Nasa собирается раскрыть тайну Марса⁠⁠

Nasa собирается раскрыть тайну Марса
NASA Марс Спойлер ВКонтакте Комментарии
10
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии