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

Узнай цену своей работы

Формулировка задачи:

Всем привет. Я скачал эту библиотеку, но у меня возникла проблема с запросом wall.getById с единственным аргументом в формате %d_%d. Посмотрев в исходниках я понял что мне нужна функция method класса VkRequestsPool. Так у меня получился код:
Листинг программы
  1. # -*- coding: utf-8 -*-
  2. import vk_api
  3.  
  4. def main():
  5. login, password = 'removed@mail.ru', 'pass'
  6. vk_session = vk_api.VkApi(login, password)
  7. try:
  8. vk_session.authorization()
  9. except vk_api.AuthorizationError as error_msg:
  10. print(error_msg)
  11. return
  12. with vk_api.VkRequestsPool(vk_session) as pool:
  13. wall = pool.method('wall.getById', '1,45558')
  14. print(wall)
  15. if __name__ == '__main__':
  16. 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 Часть исходника с интересующей меня функцией:
Листинг программы
  1. class VkRequestsPool(object):
  2. """ Позволяет сделать несколько обращений к API за один запрос
  3. за счет метода execute
  4. """
  5. __slots__ = ('vk', 'pool', 'one_param')
  6. def method(self, method, values=None):
  7. """ Добавляет запрос в пулл
  8. :param method: метод
  9. :param values: параметры
  10. """
  11. if self.one_param:
  12. raise Exception('One param mode dont work with self.method')
  13. req = (method, values, {})
  14. self.pool.append(req)
  15. return req[2]

Решение задачи: «Исправить ошибку в запросе api vk»

textual
Листинг программы
  1. my_id = '' # id пользователя или группы для постинга на стену
  2. def testpost(my_id):
  3.     session = vk.AuthSession(login='login@vk.com', password='password')
  4.     api = vk.API(session)
  5.     # Правильный вариант использования модуля vk_api
  6.     response = api.method("wall.post", values={"owner_id": my_id, "message": "Test API"})
  7.     print(response)
  8.  
  9. testpost()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут