Добавил admin | Категория Наши материалы | 07 Ноября 2014
Доброго времени суток уважаемые читатели! Как вы наверное уже успели догадаться по иконке данного поста речь у нас сегодня пойдет вновь пойдет разговор про API VK. Сегодня я предлагаю вам разобрать такую замечательную функцию как wall.post. Данная функция как сказано на официальной старице вконтакте «Публикует новую запись на своей или чужой стене.»
Данный метод позволяет создать новую запись на стене, а также опубликовать предложенную новость или отложенную запись.
Основные параметры данного метода:
owner_id | идентификатор пользователя или сообщества, на стене которого должна быть опубликована запись. |
friends_only | 1 — запись будет доступна только друзьям, 0 — всем пользователям. По умолчанию публикуемые записи доступны всем пользователям.
флаг, может принимать значения 1 или 0 |
from_group | данный параметр учитывается, если owner_id < 0 (запись публикуется на стене группы). 1 — запись будет опубликована от имени группы, 0 — запись будет опубликована от имени пользователя (по умолчанию).
флаг, может принимать значения 1 или 0 |
message | текст сообщения (является обязательным, если не задан параметрattachments) строка |
attachments | список объектов, приложенных к записи и разделённых символом ",". |
Ну и так далее, полное описание все параметров вы сможете найти на
официальной старице
Использовать мы будем сегодня не все параметры данного метода а только основные. И так начнем. Начинать с нуля понятное дело мы не будем, мы откроем код из предыдущего урока.
Из процедуры Button1Click(Sender: TObject); которую мы писали в первом посте. Мы переопределили две переменные Token, IdUser : string
var
Form1: TForm1;
Token, IdUser : string ;
implementation
{$R *.dfm}
Добавим на форму:
- Tmemo
- TButton
- TLabel
- И Statusbar для отображения результата выполнения запроса.
И напишем вот такой вот код для кнопки «отправить».
procedure TForm1.Button2Click(Sender: TObject);
var
Param : TStringList ;
Url : string ;
I : Integer ;
begin
Param := TStringList.Create ;
Param.Add('owner_id=' + IdUser);
Param.Add('message=' + Memo1.Lines.Text);
Url := Format('https://api.vk.com/method/wall.post?access_token=%s', [Token]);
for I := 0 to Param.Count - 1 do
Param.ValueFromIndex[I] := IdHTTP.Url.ParamsEncode(Param.ValueFromIndex[I]);
try
IdHTTP.Post(Url, Param);
if IdHTTP.ResponseCode = 200 then
StatusBar1.Panels[0].Text := 'Пост добавлен'
else
StatusBar1.Panels[0].Text := 'Ошибка'
except on E : Exception do
begin
MessageBox(Application.Handle, PChar(Format('Ошибка: %s',[e.Message])), 'Error', MB_ICONHAND);
exit ;
end;
end;
FreeAndNil(Param);
end;
вот такой вот не хитрый код :)
много видел ошибочного кода в интернете, у всех примерно одна ошибка, вместо POST люди почему то используют GET. Но мы то с вами знаем что запросом POST мы передаем данные а вот GET запросом мы их получаем. Следовательно мы в Param : TStringList ; определяем список параметров и их значений для того что бы потом передать эти значения POST запросом на URL адрес который мы сформировали в переменной URL.
Ну вот наверное и все на сегодня. Статья как всегда получилось без лишних слов :)
исходники программы тут, Пароль, как обычно qwerty.