Всем здрасте, не получается сделать накрутку лайков, смотрим ниже.. PHP: // тут код авторизации ВКонтакте 1. Отправляем Get запрос на получение стены (http://vkontakte.ru/wall.php) 2. Отправляем Get запрос на запись на стене 3. Отправляем Post запрос на лайки (http://vkontakte.ru/like.php) Вчера пробовал разные способы, ничего не получается, что не так? Смотрел сниффером вроде бы всё так, вот только насчёт пункта №2 не уверен правильно сделал или нет, кто что скажет?
Сделай чтобы было не "вроде все так", а "все так, с точностью до знака"! Как обычно проблема именно в этом. "не получается сделать накрутку лайков" что именно не получается? что шлешь, что контакт отвечает? Ясновидящих нет))) Если контакт отвечает "ошибка доступа", то не тот Hash шлешь.
Сначала происходит авторизация, потом (код ниже) PHP: var s: string; begin s := http.GetEx('http://vkontakte.ru/wall.php' + sEdit1.Text); // ссылку на запись на стене берём из Edit1 s := http.GetEx('http://vkontakte.ru/like.php'); end; Вот так делал, по разному делал, но сам смысл понятен, да и в сниффере так же, черёт запросов правильный. На like.php так то Post запрос, делал и Post запрос но всё ровно не получается
Сдается мне, что Вы вообще не в курсе что нужно делать. в сниффере посмотрите как идут запросы, и откуда какой параметр берется. тут методом тыка не получится
да при чем тут что показывает сниффер Code: s := http.GetEx('http://vkontakte.ru/like.php'); вот этого там быть не должно, в этом месте идет post-запрос с необходимыми параметрами (а он у Вас, к стати, это и показывает) если Вы перейдете на вкладку post-data в сниффере, то увидите что там должно передаваться. ______________ в общем к языкам программирования это не иммет ни малейшего отношения. учите матчасть
PHP: if Pos ('logout', s) <>0 then ShowMessage('Авторизация прошла успешно') else ShowMessage('Ошибка авторизации'); try s := http.GetEx('http://vkontakte.ru/wall.php' + sEdit3.Text); Data := TStringList.Create; Data.Add('act=a_do_like'); Data.Add('al=1'); Data.Add('from=wall_one'); Data.Add('hash=33a050a4ca30edec7b'); Data.Add('object=wall125010307_1164'); Data.Add('wall=1'); finally s:= IdHTTP1.Post('http://vkontakte.ru/like.php', Data); end; Пробовал только что, не пашет((
Code: hash=33a050a4ca30edec7b я уже писал, что этот параметр меняется, и его нужно парсить перед каждым лайком. Откуда он берется - сниффер в руки.
PHP: try s := http.GetEx('http://vkontakte.ru/wall' + sEdit3.Text); // тут у тебя ссылка на отдельный пост стены, насколько я понял. допустим, в эдит3 будет "125010307_1164". except end; // парсим хеш из s. Data := TStringList.Create; Data.Add('act=a_do_like'); Data.Add('al=1'); Data.Add('from=wall_one'); Data.Add('hash='+hash); Data.Add('object=wall'+ sEdit3.Text); Data.Add('wall=1'); try s:= IdHTTP1.Post('http://vkontakte.ru/like.php', Data); except end; end; наверняка еще возникают проблемы с авторизацией, ибо ты юзаешь сначала " http.GetEx", а потом " IdHTTP1.Post". выбери чтонибудь одно.
Я тебя разочарую: hash и object будут меняться. Их нужно парсить со страницы, на которой расположен лайк.
ну это уже спорное апи более контролируемое а вот через парсинг тут можно долго их насиловать пока не сменят что то в коде !