maximkv25
@maximkv25
web-developer

Как запостить несколько фотографий на стену facebook?

Приветствую всех!
Третий день пытаюсь запостить несколько фоток на стену в facebook, в сети описывают только пост одной фотки, уже перепробовал все методы, но больше одной не постится, вычитал что можно запостить альбом с фотками, прошерстил документацию, оказывается метод устаревший и походу не поддерживается, но возможно ошибаюсь, по крайней мере я его пробовал и ничего не вышло.
Нашел решение на php в его синтаксисе не разбираюсь, пробовал сам по примеру сделать, но чет никак
Кто разбирался с fb или знает как это реализовать? Буду очень благодарен за вашу помощь
  • Вопрос задан
  • 617 просмотров
Решения вопроса 1
maximkv25
@maximkv25 Автор вопроса
web-developer
Вот и подоспело решение моего вопроса, как всегда все оказывается намного проще, чем себе представляешь)

# получаю список фото строкой, является прямой ссылкой типа http://image.jpg
# можно так же открывать файлы привычным способом f = open('file_path', 'rb')
import requests

files = 'http://img.jpg, http://img1.jpg, http://img2.jpg, '
token = access_token # (токен пользователя)

# передаем функции photo_id список файлов и наш токен
media = photo_id(file, token)
                # post on fb
                url = 'https://graph.facebook.com/me/feed?'
                data = {
                    'access_token': user.fb_token,
                    # так же можем добавлять дополнительно links, video, files и т.д.
                }
                i = 0
                for id in media:
                    # проходимся по нашему списку и формируем словарь
                    data.update({'attached_media[%d]' % (i): '{"media_fbid": "%s"}' % (id)})
                    i += 1
                resp = requests.post(url, data=data)


# в результате получаем список id с успешно загруженными фотками 
def photo_id(files, token):
    images = files.split(',')
    media = []
    for img in images:
            url = 'https://graph.facebook.com/me/photos?published=false'
            data = dict(access_token=token, url=img)
            resp = requests.post(url, data)
            res = json.loads(resp.text)['id']
            media.append(res)
    return media
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
03 мая 2024, в 00:45
1000 руб./за проект
02 мая 2024, в 23:56
2000 руб./за проект
02 мая 2024, в 23:29
1500 руб./в час