Зачем мне макрос, если мне нужна программа или расширение, которая будет сканировать посты и автоматически ставить лайки а посты на которых их нет
Почти пошутилРешил в лт участвовать?)
file_get_contents("https://api.vk.com/method/wall.get?type=post&owner_id=ID_ГРУППЫ&count=20&access_token=ACCESS_TOKEN&v=5.60");
$group_id = "ID_ГРУППЫ"; // в которой планируешь лайкать посты
$token = "ACCESS_TOKEN"; // который получил в 3-ем пункте
$posts = json_decode(file_get_contents("https://api.vk.com/method/wall.get?type=post&owner_id=".$group_id."&access_token=".$token."&v=5.60"));
$length = 20;
for ($i = 0; $i < $length; $i++)
{
if ($posts->response->items[$i]->likes->can_like == 1)
{
$item = $posts->response->items[$i]->id;
$post = json_decode(file_get_contents("https://api.vk.com/method/likes.add?type=post&owner_id=".$group_id."&access_token=".$token."&v=5.60&item_id=".$item));
if ($post->error)
{
echo $item.": ошибка [".$post->error->error_id.", ".$post->error->error_description."]<br>";
}
else
{
echo $item.": лайк поставлен успешно! Всего поставили лайк: ".$post->response."<br>";
}
}
}
Неправильно суммонишь.@Aлександр приди, мне лень кодить
Он скорее всего не знал, как правильно твой ник пишеться ибо об этом известно только илите.Первый вариант: пишешь iframe (консольный, или же windows form - без разницы), ставишь на дедик, и забываешь о нём.
Второй вариант: используя хостинг (ставя на крон, и забывая о нём вообще).
Третий вариант: используй репозиторий @Negezor (https://github.com/negezor/vk-io), и не парься с хостингами и прочим, так же ставишь на дедик, и забываешь о нём.
Первый и второй вариант решаются с помощью VK api, так же первый и третий вариант решаются посредством negezor/vk-io.
Вариант VK api, расписанный с использованием хостинга:
1. Получаешь свой access token. Для этого создаёшь приложение тут: https://vk.com/apps?act=manage
Указываешь любое название, и тип - standalone.
Потом тебе на телефон приходит код, ты его вставляешь, и приложение создано.
2. После создания открываешь его, переходишь в пункт "Настройки":
Тебе нужен лишь ID приложения, копируешь его:
3. Формируешь запрос:
https://oauth.vk.com/authorize?client_id=ТОТ_САМЫЙ_ID&scope=likes,wall,offline&redirect_uri=--Ссылка удалена--");
Где ТОТ_САМЫЙ_ID - тот самый ID приложения.
После в адресной строке увидишь токен доступа (access token). Копируй его от знака равенства (=) до знака амперсенда (&), и сохрани его у себя где-то в блокноте, а лучше и сам запрос, чтобы в случае, если изменил пароль на странице, создать новый токен.
4. Получаешь все посты группы в формате json.
Где ID_ГРУППЫ - это ID нужной тебе группы.Код:file_get_contents("https://api.vk.com/method/wall.get?type=post&owner_id=ID_ГРУППЫ&count=20&access_token=ACCESS_TOKEN&v=5.60");
Где ACCESS_TOKEN - это токен, который ты получаешь в 3-ем пункте.
Если на хостинге не поддерживается взаимодействие file_get_contents с https, то тебе в сторону curl, просто лень сейчас писать.
5. Составляешь ссылку последующего запроса:
https://api.vk.com/method/likes.add?type=post&owner_id=ID_ГРУППЫ&access_token=ACCESS_TOKEN&v=5.60&item_id=..
В сумме у тебя должно выйти примерно такое:
Код:$group_id = "ID_ГРУППЫ"; // в которой планируешь лайкать посты $token = "ACCESS_TOKEN"; // который получил в 3-ем пункте $posts = json_decode(file_get_contents("https://api.vk.com/method/wall.get?type=post&owner_id=".$group_id."&access_token=".$token."&v=5.60")); $length = 20; for ($i = 0; $i < $length; $i++) { if ($posts->response->items[$i]->likes->can_like == 1) { $item = $posts->response->items[$i]->id; $post = json_decode(file_get_contents("https://api.vk.com/method/likes.add?type=post&owner_id=".$group_id."&access_token=".$token."&v=5.60&item_id=".$item)); if ($post->error) { echo $item.": ошибка [".$post->error->error_id.", ".$post->error->error_description."]<br>"; } else { echo $item.": лайк поставлен успешно! Всего поставили лайк: ".$post->response."<br>"; } } }
6. Ставишь на крон с повтором в минуту (а зачем меньше?), и радуешься жизни.
Писал "от коленки", и потратил 20 минут своейникчёмнойличной жизни, так что вот так вот.
Если не понял ничего, то могу написать за 200-300 рублей (как раз на chrome extension деньги уйдут).
Неправильно суммонишь.
Пишешь @
Потом ник
Постепенно выдаёт ник человека, которого хочешь суммонить:
Есть в php одна хорошая функция которая называется http_build_query и что то длинные цепочки у тебя)Первый вариант: пишешь iframe (консольный, или же windows form - без разницы), ставишь на дедик, и забываешь о нём.
Второй вариант: используя хостинг (ставя на крон, и забывая о нём вообще).
Третий вариант: используй репозиторий @Negezor (https://github.com/negezor/vk-io), и не парься с хостингами и прочим, так же ставишь на дедик, и забываешь о нём.
Первый и второй вариант решаются с помощью VK api, так же первый и третий вариант решаются посредством negezor/vk-io.
Вариант VK api, расписанный с использованием хостинга:
1. Получаешь свой access token. Для этого создаёшь приложение тут: https://vk.com/apps?act=manage
Указываешь любое название, и тип - standalone.
Потом тебе на телефон приходит код, ты его вставляешь, и приложение создано.
2. После создания открываешь его, переходишь в пункт "Настройки":
Тебе нужен лишь ID приложения, копируешь его:
3. Формируешь запрос:
https://oauth.vk.com/authorize?client_id=ТОТ_САМЫЙ_ID&scope=likes,wall,offline&redirect_uri=--Ссылка удалена--");
Где ТОТ_САМЫЙ_ID - тот самый ID приложения.
После в адресной строке увидишь токен доступа (access token). Копируй его от знака равенства (=) до знака амперсенда (&), и сохрани его у себя где-то в блокноте, а лучше и сам запрос, чтобы в случае, если изменил пароль на странице, создать новый токен.
4. Получаешь все посты группы в формате json.
Где ID_ГРУППЫ - это ID нужной тебе группы.Код:file_get_contents("https://api.vk.com/method/wall.get?type=post&owner_id=ID_ГРУППЫ&count=20&access_token=ACCESS_TOKEN&v=5.60");
Где ACCESS_TOKEN - это токен, который ты получаешь в 3-ем пункте.
Если на хостинге не поддерживается взаимодействие file_get_contents с https, то тебе в сторону curl, просто лень сейчас писать.
5. Составляешь ссылку последующего запроса:
https://api.vk.com/method/likes.add?type=post&owner_id=ID_ГРУППЫ&access_token=ACCESS_TOKEN&v=5.60&item_id=..
В сумме у тебя должно выйти примерно такое:
Код:$group_id = "ID_ГРУППЫ"; // в которой планируешь лайкать посты $token = "ACCESS_TOKEN"; // который получил в 3-ем пункте $posts = json_decode(file_get_contents("https://api.vk.com/method/wall.get?type=post&owner_id=".$group_id."&access_token=".$token."&v=5.60")); $length = 20; for ($i = 0; $i < $length; $i++) { if ($posts->response->items[$i]->likes->can_like == 1) { $item = $posts->response->items[$i]->id; $post = json_decode(file_get_contents("https://api.vk.com/method/likes.add?type=post&owner_id=".$group_id."&access_token=".$token."&v=5.60&item_id=".$item)); if ($post->error) { echo $item.": ошибка [".$post->error->error_id.", ".$post->error->error_description."]<br>"; } else { echo $item.": лайк поставлен успешно! Всего поставили лайк: ".$post->response."<br>"; } } }
6. Ставишь на крон с повтором в минуту (а зачем меньше?), и радуешься жизни.
Писал "от коленки", и потратил 20 минут своейникчёмнойличной жизни, так что вот так вот.
Если не понял ничего, то могу написать за 200-300 рублей (как раз на chrome extension деньги уйдут).
Неправильно суммонишь.
Пишешь @
Потом ник
Постепенно выдаёт ник человека, которого хочешь суммонить:
Так я набросал по-быстрому, для примераЕсть в php одна хорошая функция которая называется http_build_query и что то длинные цепочки у тебя)
Так там у тебя нету кодирования URI элементов и да через http_build_query легче собрать параметры и автоматический encode.Так я набросал по-быстрому, для примера
А можно теперь всё это нормальным языком непросвещенных.Так там у тебя нету кодирования URI элементов и да через http_build_query легче собрать параметры и автоматический encode.
Так я же не передаю параметры типа string, зачем мне кодирование uri?Так там у тебя нету кодирования URI элементов и да через http_build_query легче собрать параметры и автоматический encode.
Напишу за 140Напишу консольное приложение за 150 руб
'use strict';
const vk = new (require('vk-io'));
/* ID группы */
const group = -1111;
vk.setToken('Токен_сюда');
setInterval(refresh,1000 * 60 * 10);
function refresh () {
vk.api.wall.get({
owner_id: group,
count: 20
})
.then(({items}) => {
return items.filter((post) => {
return post.likes.can_like === 1;
})
})
.then((posts) => {
return posts.map((post) => {
return {
owner_id: group,
item_id: post.id,
type: 'post'
};
});
})
.then((likes) => {
var wait = 0;
likes.forEach((like) => {
/* Ожидание в обход капчи */
setTimeout(() => {
vk.api.likes.add(like);
},wait);
wait += 1000 * 2;
});
});
}
Каптча разве вылетает в методе likes?Код:likes.forEach((like) => { /* Ожидание в обход капчи */ setTimeout(() => { vk.api.likes.add(like); },wait); wait += 1000 * 2; });
Ещё как, по этому нужна задержка или раскошеливаться на антикапчу.Каптча разве вылетает в методе likes?