Djek261
@Djek261
Начинающий программист

Как забрать фото из карточки товара и опубликовать на стене группы?

Подскажите, что делаю не так.
Задача - в паблике вк из карточки товара забрать фото (все, что есть) и сформировать пост на стене этого же паблика, прикрепив эти фото (взятые из карточки товара) и сам товар.

На данном этапе функция sendPosts() отрабатывает все что нужно, кроме прикрепления фото.
#
    def sendPosts():
        req_post = requests.post("https://api.vk.com/method/wall.post", params={
            "access_token": access_token,
            "owner_id": owner_id_test,
            "from_group": 1,
            "message": product_description,
            "attachments": product_post,
            "signed": 0,
            "v": version_vk
        })


Я получаю товар и по ключу беру id фото, owner_id и access_key в формате, как требует документация photo-211815030_457239270_0d3b167e2edbf2fdd5,market-211815030_8712421.
Однако почему-то товар прикрепляется к посту (market), а photo нет((

Потрачено уже несколько дней, надеюсь сможете подсказать.

Вот откуда забираю фото
#
"photos": [
    {
        "album_id": -53,
        "date": 1667574165,
        "id": 457239270,
        "owner_id": -211815030,
        "access_key": "0d3b167e2edbf2fdd5",


А так оформлен цикл перебора фото в карточке товара.
#
product_photo = product["photos"]
for key in product_photo:
    product_photo_id = key["id"]
    accsess_key = key["access_key"]
    print(f"access_key: {accsess_key}")
    photo_id = f"photo{owner_id}_{product_photo_id}_{accsess_key}"
    list_product_id.append(photo_id)

# преобразовываем список в строку, с разделением объектов запятой
all_photos = ",".join(list_product_id)

product_post = f"{all_photos},market{owner_id}_{product_id}"
print(product_post)

# Отправляем на стену сообщества вызвав функцию
sendPosts()
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Djek261
@Djek261 Автор вопроса
Начинающий программист
Решение найдено!
Техподдержка Вконтакте ответила, что нельзя фото из карточки товаров постить на стену.
Следовательно, нужно скачать все фото из всех карточек товаров, а потом снова их залить на сервер ВК (photos.getWallUploadServer) и после этого можно крепить фото на стену.

Странно конечно, что в запросе market в "response" получаешь фото, но для стены они бесполезны) Зачем лишний раз гонять фото туда-сюда, если они изначально и так на серверах ВК, в товарах.
Ну как есть)
Всем, кто принял участие и пытался помочь решить мою задачу, спасибо)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы