Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
30 / 26 / 9
Регистрация: 06.03.2015
Сообщений: 209

Исправить ошибку в запросе api vk

15.04.2016, 16:06. Показов 6018. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Я скачал эту библиотеку, но у меня возникла проблема с запросом wall.getById с единственным аргументом в формате %d_%d. Посмотрев в исходниках я понял что мне нужна функция method класса VkRequestsPool. Так у меня получился код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*-
 
import vk_api
 
 
def main():
    login, password = 'login@vk.com', 'pass'
    vk_session = vk_api.VkApi(login, password)
 
    try:
        vk_session.authorization()
    except vk_api.AuthorizationError as error_msg:
        print(error_msg)
        return
 
    with vk_api.VkRequestsPool(vk_session) as pool:
        wall = pool.method('wall.getById', '1,45558')
    print(wall)
if __name__ == '__main__':
    main()
... Вместе с кодом и пару ошибок связанных с ним:

Traceback (most recent call last):
File "D:\Python\Scripts\test.py", line 20, in <module>
main()
File "D:\Python\Scripts\test.py", line 17, in main
wall = pool.method('wall.getById', '1,45558')
File "D:\Python\lib\site-packages\vk_api\vk_tools.py", line 127, in __exit__
self.execute()
File "D:\Python\lib\site-packages\vk_api\vk_tools.py", line 242, in execute
self.pool[i + x][2].update(response[x])
TypeError: 'bool' object is not iterable

Часть исходника с интересующей меня функцией:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class VkRequestsPool(object):
    """ Позволяет сделать несколько обращений к API за один запрос
        за счет метода execute
    """
 
    __slots__ = ('vk', 'pool', 'one_param')
 
    def method(self, method, values=None):
        """ Добавляет запрос в пулл
 
        :param method: метод
        :param values: параметры
        """
 
        if self.one_param:
            raise Exception('One param mode dont work with self.method')
 
        req = (method, values, {})
        self.pool.append(req)
        return req[2]
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.04.2016, 16:06
Ответы с готовыми решениями:

Как исправить ошибку в api запросе?
Написал запрос на открытие маркет ордера для сайта Huobi по документации(https://huobiapi.github.io/docs/spot/v1/en/#introduction-7).Запрос...

Исправить ошибку в запросе к БД
фотки . ошибки. в чем может быть проблема? небольшие фотки можно выкладывать напрямую на форум

Исправить ошибку в запросе
Create database DB2 use DB2 create table Client ( ClientId integer identity(1,1) primary key, SecondName nvarchar(15)NOT NULL,...

7
Эксперт по компьютерным сетям
 Аватар для Jabbson
5906 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
15.04.2016, 16:42
а почему не https://pypi.python.org/pypi/vk/2.0.2
0
30 / 26 / 9
Регистрация: 06.03.2015
Сообщений: 209
15.04.2016, 21:59  [ТС]
Jabbson, Написал на этой библиотеке, но столкнулся с некими трудностями: функцию, которая берет рандомный пост я написал, однако иногда попадаются посты с ошибкой "пользователь предпочел скрыть эту страницу" и при этом возвращение нулл значения в ответе. Что бы исправить это я сделал цикл while где смотрю на количество символов в ответе и прогон цикла до тех пор, пока ответ не перестанет быть пустым. Проблема в том, что если я делаю слишком большой цикл, то ВК закрывает соединение(видимо считает это ДДОСом) ; если же значение слишком маленькое, то в ответ я получаю пустое значение, ибо цикл не успел найти нужное. Есть ли n-нное значение, после которого ВК считает это ДДОСом? Возможно ли это реализовать другим путем?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
15.04.2016, 22:16
Dave_, это в документации к API должно быть указано, посмотри.
0
30 / 26 / 9
Регистрация: 06.03.2015
Сообщений: 209
15.04.2016, 23:09  [ТС]
Угу, с этим я разобрался. И надеюсь последняя проблема на сегодня:
Python
1
2
3
4
5
def testpost():
    session = vk.AuthSession(app_id='appid', user_login='login@vk.com', user_password='password')
    api = vk.API(session)
    api.wall.post(owner_id=my_id, message="Test API")
testpost()

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2016-04-15 23:06:20,855 vk    mixins:127 INFO: Getting permissions
2016-04-15 23:06:20,875 vk    mixins:142 ERROR: Permissions obtained
Traceback (most recent call last):
  File "D:\Python\Scripts\per.py", line 48, in <module>
    testpost()
  File "D:\Python\Scripts\per.py", line 45, in testpost
    session = vk.AuthSession(app_id='appid', user_login='login@vk.com', user_password='password')
  File "D:\Python\lib\site-packages\vk\mixins.py", line 32, in __init__
    self.access_token = self.get_access_token()
  File "D:\Python\lib\site-packages\vk\mixins.py", line 70, in get_access_token
    auth_response_url_query = self.oauth2_authorization()
  File "D:\Python\lib\site-packages\vk\mixins.py", line 143, in oauth2_authorization
    raise VkAuthError(error_message)
vk.exceptions.VkAuthError: VK error: [invalid_client] client_id is incorrect
0
30 / 26 / 9
Регистрация: 06.03.2015
Сообщений: 209
17.04.2016, 16:15  [ТС]
up!!
0
30 / 26 / 9
Регистрация: 06.03.2015
Сообщений: 209
26.04.2016, 23:06  [ТС]
UP! Проблема с авторизацией все еще актуальна...
0
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194
09.05.2016, 17:26
1. Не нужно передавать параметр app_id если нет своего приложения в вк
2. Неправильно используете модуль vk_api

Python
1
2
3
4
5
6
7
8
9
my_id = '' # id пользователя или группы для постинга на стену
def testpost(my_id):
    session = vk.AuthSession(login='login@vk.com', password='password')
    api = vk.API(session)
    # Правильный вариант использования модуля vk_api
    response = api.method("wall.post", values={"owner_id": my_id, "message": "Test API"})
    print(response)
 
testpost()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2016, 17:26
Помогаю со студенческими работами здесь

Исправить ошибку в запросе json
Добрый вечер. есть код: NpgsqlCommand command = new NpgsqlCommand(&quot;insert into \&quot;zayavka\&quot; (kol, dop_uslov, nazv_org, fio_zayav,sroki_ot,...

Как исправить ошибку в запросе?
SELECT Таблица1. FROM Таблица1 WHERE (Таблица1. =' + nameText1 + ' AND DMAX()) Нужно вывести максимальное число из столбца count, с...

Необходимо исправить ошибку в медиа-запросе
Всем привет! Ребята, подскажите, в чем проблема? Накарябал сайтик: http://nikolai-yakuschenko.16mb.com/ Использовал резиновую...

Надо исправить ошибку в запросе на добавление
Я немного туплю как сделать, хоть мне и объяснили что надо привести к типу данных, но как это сделать. С числовыми я вроде разобрался, это...

Исправить ошибку 500 в http запросе
Доброго времени, у меня проблема с запросом, а точней с кодом ответа.. 200 - нормальный статус 500 - ошибка public string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru