1C

Отправка сообщения на стену друга (wall.post)

В этом уроке показано:
- как получить и отсортировать список друзей
- как разместить список друзей в элементе select
- как отправить сообщение на стену друга



code.js

$(document).ready(function(){
var friends_data; // отсортированный список друзей
 
    VK.init(function() {
    // выполняем запрос получения списка друзей
    VK.api("friends.get", {fields:"first_name,photo"}, function(data) {
        // узнаем количество друзей
        var fr = data.response.length;
        // сортируем друзей по имени (функция sFirstName описана ниже)
        friends_data = data.response.sort(sFirstName);
        // в value элемента будем записывать номер пользователя в массиве friends_data
        for(var i=0;i<fr;i++){
            $(&apos;#friends_list&apos;).append(&apos;<option value="&apos;+ i +&apos;">&apos;+ friends_data[i].first_name + &apos; &apos; + friends_data[i].last_name +&apos;</option>&apos;);            
        }
        $("#friends_list").change(function () {
            // узнаем какой элемент выбран в select
            selectVal = $(&apos;#friends_list option:selected&apos;).val();
            if (selectVal!=&apos;&apos;) { // если выбран друг
                // вытаскиваем из массива фотографию выбранного пользователя по номеру в массиве
                $(&apos;#user_info&apos;).html(&apos;<img src="&apos;+ friends_data[selectVal].photo +&apos;"/>&apos;);
            } else { // если выбрано "выберите друга"
                // очищаем блок с аватаркой
                $(&apos;#user_info&apos;).html(&apos;&apos;);
            }
        })
    });
    });
 
$(&apos;#send_btn&apos;).click(function() {
    if ($(&apos;#friends_list option:selected&apos;).val()!=&apos;&apos;) { // если выбран пользователь
        if ($(&apos;#message_tf&apos;).val()!=&apos;&apos;) { // если введено сообщение
            uid_to = friends_data[$(&apos;#friends_list option:selected&apos;).val()].uid; // id выбранного пользователя
            message_to = $(&apos;#message_tf&apos;).val();
            // отправляем запись на стену
            VK.api(&apos;wall.post&apos;,{owner_id:uid_to, message:message_to},function(data) {
                if (data.response) { // если получен ответ
                    alert(&apos;Сообщение отправлено! ID сообщения: &apos; + data.response.post_id);
                } else { // ошибка при отправке сообщения
                    alert(&apos;Ошибка! &apos; + data.error.error_code + &apos; &apos; + data.error.error_msg);
                }
            });
        } else {
            alert(&apos;Введите сообщение!&apos;);
        }
    } else {
        alert(&apos;Выберите пользователя!&apos;);
    }
    return false;
}); 
});
// функции сортировки
function sFirstName(a,b) {
    if (a.first_name > b.first_name)
        return 1;
    else if  (a.first_name < b.first_name)
        return -1;
    else
        return 0;
}

index.html
<html>
<head>
<script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
<script src="js/code.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script>
</head>
<body>
<table>
    <tr>
        <td>
            <select id="friends_list">
                <option value="">Выберите друга</option>
            </select>
        </td>
        <td rowspan="3">
            <div id="user_info"></div>
        </td>
    </tr>
    <tr>
        <td>
            Сообщение:<br />
            <textarea id="message_tf">Текст сообщения</textarea>
        </td>
    </tr>
    <tr>
        <td>
            <a href="#" id="send_btn">Отправить</a>
        </td>
    </tr>
</table>
</body>
</html>

style.css
body {
    padding:0;
    margin:0;
    font-family: tahoma, verdana, arial, sans-serif, Lucida Sans;
    font-size: 11px;
}
select,textarea {
    padding:0;
    margin:0;
}
table {
    border-collapse:0;
    padding:0;
    margin:0;
}
table td {
    vertical-align:top;
    font-family: tahoma, verdana, arial, sans-serif, Lucida Sans;
    font-size: 11px;
}
#message_tf {
    width:100%;
    height:50px;
    resize:none;
}


Приложение должно быть включено и видно всем.
В настройках приложения должен быть разрешен доступ к друзьям.
Теги:
wall.post
Добавлено: 30 Декабря 2014 20:49:45 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...