Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прочитать содержимое странички вконтакте? 
:(
    Опции темы
Vampire2012
Дата 25.2.2012, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 23.2.2012

Репутация: нет
Всего: нет



Как прочитать список аудиозаписей из контактов?

Когда ввел логин и пароль контактов, зашел на страницу и получило возможность просмотра вкладок других пользователь - например список аудиозаписей какого-нибудь человека.
"http://vk.com/audio"
"http://vk.com/audio?id=87654321"

Как програмно на java это сделать?
PM MAIL   Вверх
Townsmen
Дата 2.6.2012, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.7.2011

Репутация: нет
Всего: 1



тема немного прострочена, но могу сказать что вконтакте есть набор API команд по роботе с аудио, можно написать приложение которое сможет работать с аудио записями.
PM MAIL   Вверх
Atum
Дата 6.7.2012, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 3.10.2008

Репутация: нет
Всего: нет



Цитата(Vampire2012 @ 25.2.2012,  23:50)
Как прочитать список аудиозаписей из контактов?

Когда ввел логин и пароль контактов, зашел на страницу и получило возможность просмотра вкладок других пользователь - например список аудиозаписей какого-нибудь человека.
"http://vk.com/audio"
"http://vk.com/audio?id=87654321"

Как програмно на java это сделать?

Я решал подобную задачу с фотографиями .

тебе надо прочитать основное по Апи тут 

http://vk.com/developers.php?oid=-1&p=audio.get

я выкачивал все фотографии (аналогично музыку ) групп или со страницы пользователя 

Для Десктоп клиента 

смотри мой код тут 

http://forum.vingrad.ru/forum/topic-315777...ml#st_15_view_0

Использовал сторонние либы :  HttpClient  и org.scribe

тебе так же надо будет создать добавить свое приложение , и права доступа к audio

в итоге через API контакта ты получаешь json объект типа 

Код

[{"aid":"id","owner_id":"oid","artist":"Papa Roach","title":"Broken Home","duration":"219","url":"http:\/\/cs4707.vkontakte.ru\/u14410938\/audio\/2846f4e085eb.mp3","lyrics_id":"iidd","album":"aiidd"},

{"aid":"id","owner_id":"oid","artist":"Papa Roach","title":"Blood Brothers","duration":"213","url":"http:\/\/cs4876.vkontakte.ru\/u33406545\/audio\/3f0fd127003e.mp3","album":"aiidd"}



получаешь прямые ссылки url  и скачиваешь файлы к себе 


В коде замени 

Код

String PROTECTED_RESOURCE_URL = "https://api.vkontakte.ru/method/wall.post"; //wall.post //notes.add


на 

Код

String PROTECTED_RESOURCE_URL = "https://api.vkontakte.ru/method/audio.get"


и

Код

 request.addBodyParameter("owner_id", "-clubID");
    request.addBodyParameter("from_group", "1");


на твои параметры - пользователя или группы  , альбома который тебе нужен  
Код


   request.addBodyParameter("uid", uid);
//    request.addBodyParameter("gid", gid);
    request.addBodyParameter("album_id", album_id);
    request.addBodyParameter("count", count);
    request.addBodyParameter("offset", count);





Как парсить json   мои классы : 
Код

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vkaudio;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.JSONException;
import org.json.JSONObject;

/**
 *
 * @author User
 */
public class Item {
    
      public   String aid ;
      public  String owner_id ;
      public  String artist ;
      public  String title ;
      public  String url ;
      public  String album ;

    public String getAid() {
        return aid;
    }

    public void setAid(String aid) {
        this.aid = aid;
    }

    public String getAlbum() {
        return album;
    }

    public void setAlbum(String album) {
        this.album = album;
    }

    public String getArtist() {
        return artist;
    }

    public void setArtist(String artist) {
        this.artist = artist;
    }

    public String getOwner_id() {
        return owner_id;
    }

    public void setOwner_id(String owner_id) {
        this.owner_id = owner_id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Item(String aid, String owner_id, String artist, String title, String url, String album) {
        this.aid = aid;
        this.owner_id = owner_id;
        this.artist = artist;
        this.title = title;
        this.url = url;
        this.album = album;
    }

    public Item(JSONObject audio) {
        try {
            aid = (String) audio.get("aid");
            owner_id = (String) audio.get("owner_id");
            artist = (String) audio.get("artist");
            title = (String) audio.get("title");
            url = (String) audio.get("url");
            album = (String) audio.get("album");
        } catch (JSONException ex) {
            String error = ex.toString();
            if (error.contains("album")) {
                album = "";
            }

            if (error.contains("url")) {
                url = "";
            }

            if (error.contains("title")) {
                title = "";
            }
            if (error.contains("artist")) {
                artist = "";
            }
            if (error.contains("owner_id")) {
                owner_id = "";
            }
                                                        
            
        }


    }
        
  
    public void printString() {
        
        System.out.println("aid : " + aid + " ; artist : " +artist + " ; title : " + title + " ; album : " + album);
        System.out.println("url : " + url );
        
         
        
    }
    
    
    
    
}






функция для  скачивания файла  

Код

 public static  void saveFile(String url) throws Exception{
      
    URL u = new URL(url);
    String filename = u.getFile();
    System.out.println("**** filename " +filename + "****");  
    URLConnection uc = u.openConnection();
    String contentType = uc.getContentType();
    int contentLength = uc.getContentLength();
    if ( contentLength == -1) {
      throw new IOException("This is not a binary file.");
    }
    InputStream raw = uc.getInputStream();
    InputStream in = new BufferedInputStream(raw);
    byte[] data = new byte[contentLength];
    int bytesRead = 0;
    int offset = 0;
    double max = 100/contentLength;
    while (offset < contentLength) {
      bytesRead = in.read(data, offset, data.length - offset);
      if (bytesRead == -1)
        break;
      offset += bytesRead;
      
       int i =  offset*100/contentLength;
           if (i % 10 == 0)
            System.out.println(i + "%");
      
    }
    in.close();

    if (offset != contentLength) {
      throw new IOException("Only read " + offset + " bytes; Expected " + contentLength + " bytes");
    }
    
    
    filename = u.getFile().substring(filename.lastIndexOf('/') + 1);
    FileOutputStream out = new FileOutputStream(path+filename);
    out.write(data);
    out.flush();
    out.close();
   System.out.println("**** done ****");  
   
   
      
  }



функция для парсинга  json   и сохранения 

sb.toString()  - тут твой ответ в формате json  

Код

{"response":[{"aid":"id","owner_id":"oid","artist":"Papa Roach","title":"Broken Home","duration":"219","url":"http:\/\/cs4707.vkontakte.ru\/u14410938\/audio\/2846f4e085eb.mp3","lyrics_id":"iidd","album":"aiidd"},

{"aid":"id","owner_id":"oid","artist":"Papa Roach","title":"Blood Brothers","duration":"213","url":"http:\/\/cs4876.vkontakte.ru\/u33406545\/audio\/3f0fd127003e.mp3","album":"aiidd"}]}



Код


        JSONArray response = new JSONArray(sb.toString());
        int size = response.length();
 
        for (int i = 7; i < 20; i++) {
            System.out.print("[" + i +"]");
            JSONObject audio = response.getJSONObject(i);
            Item item = new Item(audio);
            item.printString();
            try{
            saveFile(item.url);
            } catch(Exception ex){
                System.out.println("error " + ex.getMessage() );
            }
        }



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.