Vk api ошибка 214

На текущий момент публикация на стене пользователя (или в группе) в соцсети ВКонтакте является достаточно распространённой задачей. Существует множество сторонних библиотек от пользователей, «запиливших свой велосипед» для решения этой задачи. Но есть один нюанс, который может запросто поставить вас в ступор, когда после успешных попыток опубликовать записи на стене пользователя, вы вдруг не сможете этого сделать на стене группы, хотя (казалось бы) все условия из официальной документации соблюдены чётко. Злосчастная ошибка error_code = 214 может слегка подпортить вам жизнь…

Да чего далеко ходить: если мы хотим организовать публикацию на стене пользователя вконтакте (рассмотрим частный случай: пользователь и есть владелец Standalone приложения), то открываем официальную документацию, находим там описание нужного нам метода wall.post, делаем всё по инструкции и если руки растут из плеч, то всё начинает сразу же работать как по часам.

Я не буду описывать предшествующие этому шаги (добавление Standalone приложения, получения appId и секретного ключа, получения access_token’а — это уже неоднократно и подробно расписывалось до меня, google и яндекс знают эту тему «на зубок»), вы уже наверняка реализовали их сами.

А теперь то, ради чего и писалась эта заметка: публикация на стене группы вконтакте.

В «прекрасной» документации метода wall.post всё достаточно подробно описано, чтобы можно было спокойно реализовать публикацию на стене группы через созданное нами буквально 10 минут назад приложение. Ключевым фактором в этом методе является указание параметра: owner_idидентификатор пользователя или сообщества, на стене которого должна быть опубликована запись. Казалось бы, в чём проблема? Указываем вместо ID-пользователя, на стене которого мы только что успешно публиковали записи, ID-группы и пробуем!.. А вот тут-то нас ждёт сюрприз в виде вот такой ошибки: error_code = 214, error_msg = Access to adding post denied: access to the wall is closed.

Стоп! Первым делом проверяем, все ли необходимые scope=friends,wall,groups,offline мы указали при получении access_token‘а? Ну тут всё верно. Кстати, чтобы вы не искали отдельно (если до этого момента ещё не нашли), вот ссылка для получения токена:

https://oauth.vk.com/authorize?client_id=<ИД вашего приложения>&scope=friends,wall,groups,offline&redirect_uri=https://oauth.vk.com/blank.html&response_type=token

Так вот… Нигде в документации не сказано, что для того, чтобы опубликовать запись на стене группы вконтакте методом wall.post нужно указать ID этой группы в виде owner_id: –123456, где 123456 — это номер соответствующей группы. Как только вы добавите этот «минус» к идентификатору группы, у вас скорее всего всё сразу же заработает, как заработало в моём случае.

Вот такие вот они издержки «недописок» официальной документации ВКонтакте.

Ошибки при постинге на стену Вконтакте

Иногда при попытке разместить пост на стене из приложения с помощью метода Вконтакте API wall.post  возвращаются следующие ошибки:

{error:{error_code:214,error_msg:"Wall post access is denied"}}
{error:{error_code:214,error_msg:"Access to adding post denied: access to the wall is closed"}}

Документация VK API не балует нас подробностями. На странице с описанием метода написано, что ошибка с кодом 214 означает «Превышен лимит на число публикаций в сутки» (https://vk.com/dev/wall.post), а в разделе с перечислением кодов ошибок вообще ничего полезного по теме (https://vk.com/dev/errors).

Тем не менее опытным путем выясняется следующее.

Ошибка «214 Wall post access is denied» показывается если владелец стены запретил пользователю постить на его стене (настройка «Кто может оставлять записи на моей странице»)

Снимок экрана 2015-07-25 в 16.02.12

Ну это было понятно, в ошибке прямым текстом это и сказано. Вторая ошибка менее очевидна.

Ошибка «214 Access to adding post denied: access to the wall is closed» возвращается если владелец стены запретил пользователю видеть записи на его стене (настройка «Кто видит чужие записи на моей странице»)

Копия Снимок экрана 2015-07-25 в 16.02.12

В данной статье мы рассмотрим одну из самых распространенных ошибок, которые могут возникнуть при использовании Vk api – wall.post error #214: Wall post access is denied.

Перед тем, как начать анализировать данную ошибку, стоит понимать, что Vk api – это набор инструментов для разработки приложений, которые используют сервис ВКонтакте. С помощью данного API можно работать с различными функциями ВКонтакте, включая авторизацию, получение информации о пользователях, сообществах и многое другое.

Одной из наиболее популярных функций является wall.post. Эта функция позволяет разработчикам публиковать записи на стенах пользователей и сообществ в социальной сети ВКонтакте.

Однако, попытка вызвать функцию wall.post может привести к ошибке #214: Wall post access is denied. Эта ошибка возникает, когда приложению не предоставлено прав на публикацию записей на стенах указанных пользователей и сообществ.

Для того чтобы разобраться в данной проблеме, стоит подробнее рассмотреть причины возникновения ошибки. Одной из основных причин является неправильный доступ. Если приложению не предоставлено соответствующее разрешение на публикацию записей на стенах пользователей и сообществ, то ошибка #214 может возникнуть.

Другой возможной причиной может быть ограничение на участие в партнерских программах. Если приложение принадлежит партнерской программе, то возможно ограничение на использование функции wall.post. В этом случае следует уточнить информацию у партнера.

Третьей причиной ошибки может стать нарушение правил использования API социальной сети ВКонтакте. Некоторые действия могут быть запрещены правилами использования API, так что если вы нарушаете эти правила, то ошибка #214 может возникнуть.

Иногда, неверно указанные параметры могут приводить к ошибке в функции wall.post. Например, если приложении не указаны правильно идентификаторы пользователей или сообществ, то ошибка может возникнуть.

Если по какой-то причине ваше приложение не может использовать функцию wall.post, то есть несколько способов решения проблемы.

Первый способ заключается в проверке того, что все необходимые разрешения уже открыты для вашего приложения. Для этого необходимо пройти в раздел настроек (https://vk.com/dev/permissions) и убедиться, что разрешение на запись на стене предоставлено.

Второй способ связан со сторонними услугами. Некоторые сторонние услуги позволяют настроить автоматическое публикацию записей на стенах пользователей. С помощью таких услуг, можно решить проблему с доступом к функции wall.post.

Третий способ следует использовать в случае, если первые два не помогут. В этом случае, необходимо описать проблему в службу поддержки API ВКонтакте (https://vk.com/support), чтобы получить подробную информацию о причинах возникновения ошибки и рекомендации по ее устранению.

В заключение, стоит отметить, что ошибка #214 в функции wall.post является довольно распространенной, но ее можно легко решить, следуя приведенным выше рекомендациям. Главное – не паниковать, а действовать по шагам, чтобы избежать подобных проблем в будущем.

Есть скрипт, который отправляет в ВК посты в 2 группы. Сообщения разные и количество их тоже разное, но наступает момент когда в одной группе лимит постов заканчивается и скрипт прекращает работать с ошибкой 214.

Как и что прописать чтобы скрипт продолжал работать со второй группой?

    if data1:
        api.wall.post(owner_id='-1', message=text1)
    if data2:
        api.wall.post(owner_id='-2', message=text2)

Ошибка:

vk.exceptions.VkAPIError: 214. Access to adding post denied: you can only
add 50 posts a day

0xdb's user avatar

0xdb

51.5k198 золотых знаков59 серебряных знаков237 бронзовых знаков

задан 21 июл 2018 в 15:38

Sacred Sacred's user avatar

Sacred SacredSacred Sacred

3811 золотой знак6 серебряных знаков21 бронзовый знак

Попробуйте так:

def wall_post(**kwargs):
    try:
        api.wall.post(**kwargs)
    except vk.exceptions.VkAPIError as e:
        if e.code == 214:
            #print('Warning: {}'.format(e.error_msg))
            pass
        else:
            raise

if data1:
    wall_post(owner_id='-1', message=text1)
if data2:
    wall_post(owner_id='-2', message=text2)

PS у меня нет VK account’а, поэтому код не протестирован

ответ дан 21 июл 2018 в 16:06

MaxU - stand with Ukraine's user avatar

In an attempt to write a bot to post the text in an open wall group, there was a problem.

vk_api is returning me a mistake. 214:

Publication is prohibited. Exceeded with limit of number of publications per day or
another recording has already been scheduled or for the current period
inaccessible recording on this wall

I’m probably stupid, but I can’t figure out why he’s making this mistake, so I’m trying to put it in a group with an open wall.

import vk_api
from typing import Any
from vk_api import VkUpload
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.utils import get_random_id
from requests import get as request
import random
import getpass

login = 'nu nu nu'
tokenAddress = "https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=%s&password=%s"
resp = request(tokenAddress % (login, ("nu nu nu"))).json()
mainUserId = 'nu nu nu'
is_start = False

Авторизация и получение токена "Implicit flow"

vk_session = vk_api.VkApi(token=resp["access_token"])
vk = vk_session.get_api()

def spam_post():
for i in range(0,3):
vk.wall.post(owner_id=nu nu nu, message="все получилось")
spam_post()

Понравилась статья? Поделить с друзьями:
  • Vive cosmos ошибка 200
  • Viva pinata ошибка
  • Vitotronic 300 k ошибка d5 viessmann
  • Vitotronic 333 коды ошибок
  • Vitotronic 100 gc1b коды ошибок