Форум программистов, компьютерный форум, киберфорум
REST API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3

Получение списка аудио записей из vk.com средствами Rest

25.03.2015, 03:06. Показов 2335. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Ребята подскажите может кто делал собственно как в названии темы - получить список аудиозаписей из контакта через API. Перешел на вкладку разработчика, внес параметры и получил JSON что надо. Но вот как это реализовать в Delphi не понимаю. Авторизация в контакте все успешно проходит, а вот список не могу получить.


Делаю так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const
  cAppID = '*********';
  cAppKey = '**********************';
  cEndPoint = 'https://oauth.vk.com/authorize';
  cScope = 'wall';
  cAPIVersion = '5.24';
  owner_id = '*********';
 
procedure TForm1.Button4Click(Sender: TObject);
var
Result : pointer;
begin
 Result:=nil;
  RestRequest1.Resource:='audio.get';
  RestRequest1.Method:=TRESTRequestMethod.rmPOST;
  RestRequest1.Params.Clear;
  with RestRequest1.Params.AddItem do
    begin
      name:='owner_id';
      Value:=owner_id;
      Options:=[poDoNotEncode];
    end;
  with RestRequest1.Params.AddItem do
    begin
      name:='API_VERSION';
      Value:=cAPIVersion;
      Options:=[poDoNotEncode];
    end;
  with RestRequest1.Params.AddItem do
    begin
      name:='album_id';
      Value:= '0';
      Options:=[poDoNotEncode];
    end;
  with RestRequest1.Params.AddItem do
    begin
      name:='audio_ids';
      Value:= '0';
      Options:=[poDoNotEncode];
    end;
  with RestRequest1.Params.AddItem do
    begin
      name:='need_user';
      Value:= '1';
      Options:=[poDoNotEncode];
    end;
  with RestRequest1.Params.AddItem do
    begin
      name:='offset';
      Value:= '0';
      Options:=[poDoNotEncode];
    end;
   with RestRequest1.Params.AddItem do
    begin
      name:='count';
      Value:= '6000';
      Options:=[poDoNotEncode];
    end;
  RestRequest1.Execute;
  if RestRequest1.Response.StatusCode=200 then
  showmessage('Получилось!!!');
    //Result:=RESTResponse1.JSONValue as TJSONObject;
end;

Спасибо заранее.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2015, 03:06
Ответы с готовыми решениями:

Получение списка категорий и записей по этим категориям
Господа знатоки, подскажите, пожалуйста, каким образом правильно выполнять подобные запросы? Есть таблица A, которая хранит список...

Получение данных с REST 1C
Добрый день. Стал разбираться с получением данных из 1С через REST сервис и возникла такая проблема. При запросе к одинаковым базам(одна...

Получение данных с веб-сервиса (REST)
Здравствуйте. Есть веб-сервис (REST): http://analisys.ezmp.su/ Необходимо на него отправлять запросы и получать ответы. Пример...

6
9 / 9 / 2
Регистрация: 16.03.2015
Сообщений: 83
26.03.2015, 07:36
Delphi
1
2
http.HTTPMethod('Get','https://api.vk.com/method/audio.get?count=100&offset='+form1.sEdit4.Text+'&access_token='+tk);
music.loadfromstream(http.document);
Я так делал и парсил потом с помощью regexpr
0
 Аватар для Sigin
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
26.03.2015, 17:02

Не по теме:

F1n4, на сколько мне не изменяет память - Synapse будет работать только в Win32/Win64, на мобильных платформах только Indy, ну или REST.


First, сбрось проект, посмотрю, может что-то наколдую, а лучше добавь меня в Skype. Я сейчас тоже зависаю над VK API, может что-то общее сделаем...
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
26.03.2015, 20:29  [ТС]
Я разобрался. Получаю список но вот тормозит ка кто не по детски очень долго идет ответ. Записей всего 300 а тормозит аж до 2 минут.


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 RESTRequest1.Resource := 'audio.get';
        RESTRequest1.Method := TRESTRequestMethod.rmPOST;
        RESTRequest1.Params.Clear;
        with RESTRequest1.Params.AddItem do
        begin
          name := 'v';
          Value := API_VERSION;
          Kind := TRESTRequestParameterKind.pkGETorPOST;
          Options := [poDoNotEncode];
        end;
        with RESTRequest1.Params.AddItem do
        begin
          name := 'owner_id';
          Value := UserId;
          Kind := TRESTRequestParameterKind.pkGETorPOST;
          Options := [poDoNotEncode];
        end;
        //with RESTRequest1.Params.AddItem do
        //begin
        //  name := 'need_user';
        //  Value := '1';
        //  Kind := TRESTRequestParameterKind.pkGETorPOST;
        //  Options := [poDoNotEncode];
        //end;
        RESTRequest1.Execute;

а не мог получить так как не указал разрешении на audio

Delphi
1
cScope = 'wall, audio';
вот так дает возможность получать список

Добавлено через 2 часа 30 минут
А поподробнее с

Delphi
1
2
http.HTTPMethod('Get','https://api.vk.com/method/audio.get?count=100&offset='+form1.sEdit4.Text+'&access_token='+tk);
music.loadfromstream(http.document);

можно?
0
9 / 9 / 2
Регистрация: 16.03.2015
Сообщений: 83
26.03.2015, 21:54
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//t.httpmethod('Get','https://api.vk.com/method/audio.get?'{owner_id='+idowner}+'count=100&offset='+form1.sedit3.text+'&access_token='+tk);
form1.Memo1.text:=idhttp1.get('https://api.vk.com/method/audio.get?'{owner_id='+idowner}+'count=100&offset='+form1.sedit3.text+'&access_token='+tk);
// form1.Memo1.Lines.LoadFromStream(t.Document);
 //form1.Memo1.Text:=Utf8decode(form1.Memo1.Text);
// FreeAndNil(t);
 regexp:=tregexpr.Create;
regexp.InputString:=form1.memo1.Text;
regexp.Expression:='"aid":(.*?),"owner_id":(.*?),"artist":"(.*?)","title":"(.*?)","duration":(.*?),"url":"(.*?)mp3';
if regexp.Exec then
repeat
form1.music.Lines.Add(regexp.Match[3]+'-'+regexp.Match[4]);
form1.url.Lines.Add(regexp.Match[6]+'mp3');//url музыки
 form1.mmomusicaid.Lines.Add(regexp.Match[1]);
 Form1.mmodurationmusic.Lines.Add(regexp.Match[5]);
until (not regexp.ExecNext);
regexp.Free;
Form1.url.text:=Stringreplace(form1.url.text,'\',''[rfreplaceall,rfignorecase]);//чистим от лишних символов
0
 Аватар для Sigin
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
26.03.2015, 22:02
F1n4, еще раз повторю - в FireMonkey Synopse не работает!
0
9 / 9 / 2
Регистрация: 16.03.2015
Сообщений: 83
27.03.2015, 19:26
так я ведь indy использовал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2015, 19:26
Помогаю со студенческими работами здесь

Получение информации с вебсервиса используя REST API
Мне нужно получить информацию с API http://countryapi.gear.host/v1/Country/getCountries?pName=Australia , конвертировать JSON на String и...

Получение и обработка JSON DataSnap Rest Server
Здравствуйте, подскажите пожалуйста, как я могу получить JSON строку, которую я передаю с клиента следующим образом: e_content.Text...

Неполадки с дополнительными средствами аудио
Здравствуйте, господа, помогите решить проблему. Сам не могу с ней разобраться. К моим наушниками прилагается ПО и драйвера....

Получение изображения аудио файла
Здравствуйте, каким образом можно получить изображение, находящееся в аудио файле? Под изображением я имею ввиду не иконку, а картинку...

Получение атрибутов с аудио файла
Здравствуйте! Подскажите, пожалуйста, как получить картинку с песни. Я использую пространство имен Interop.WMPLib. Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru