Spaces:
Sleeping
Sleeping
File size: 2,918 Bytes
bcb3ab3 a318969 3b538d7 6b19423 d96f32a b99a65c 27a9a31 5d381cb 6b19423 b99a65c a318969 e1ba231 b99a65c e1ba231 a318969 e1ba231 a318969 e1ba231 a318969 e1ba231 a318969 e1ba231 a318969 e1ba231 a318969 6b19423 e1ba231 6b19423 ef14339 6b19423 e1ba231 a318969 bcb3ab3 b99a65c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | import streamlit as st
import requests
import os
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.page import Page
# Configuración de la API de Facebook
app_id = '938014541005623'
app_secret = '938014541005623'
access_token = 'EAANVHoeCwzcBO5HGarhHCZApZBIUn2BAWBUZAs48Nki1ihHvg9vqpznwR1TFZBDRpfKz7HB6LyokEm8SHOYIgtjKXCrBtGuyHNFy5dHRtaO8fk4YZC9WHAN7McWTYCcJMuiMazZAaAd4ABemvABkhEeAkY82oxlwSgu4p06UC0SDLiWJO8G7emFp6A9ZA3DSs7oLvfGZB0mje5SYJnu5EMvDN6aApHEcvMOD1TlF1fwD7Fxx0ZCnNdUBPW8nx3m878Ds40KTkPAGjTfq4'
FacebookAdsApi.init(app_id, app_secret, access_token)
page_id = '108592224897536'
# Subir Reel a la página
@st.cache_data
def upload_reel_to_page(page_id, video_file, description, title):
# Paso 1: Inicializar una sesión de carga
start_upload_url = f"https://graph.facebook.com/v18.0/{page_id}/video_reels"
start_upload_data = {
"upload_phase": "start",
"access_token": access_token
}
start_response = requests.post(start_upload_url, json=start_upload_data)
start_response_json = start_response.json()
upload_session_id = start_response_json.get("upload_session_id")
# Paso 2: Subir el video
transfer_binary_url = f"https://rupload.facebook.com/video-upload/v18.0/{upload_session_id}"
transfer_binary_headers = {
"Authorization": f"OAuth {access_token}",
"offset": "0",
"file_size": str(len(video_file))
}
transfer_binary_response = requests.post(transfer_binary_url, headers=transfer_binary_headers, data=video_file)
# Paso 3: Publicar el Reel
complete_url = f"https://graph.facebook.com/v18.0/{page_id}/video_reels"
complete_params = {
"upload_phase": "finish",
"upload_session_id": upload_session_id,
"description": description,
"title": title,
"access_token": access_token,
"video_state": "PUBLISHED"
}
complete_response = requests.post(complete_url, params=complete_params)
complete_response_json = complete_response.json()
return {
"start_response": start_response_json,
"transfer_binary_response": transfer_binary_response.text,
"complete_response": complete_response_json
}
# Interfaz de usuario
st.title('Subir Reel a Facebook')
video_path = st.file_uploader('Seleccionar Reel (Formato: .mp4)')
description = st.text_area('Descripción del Reel')
title = st.text_input('Título del Reel')
if st.button('Subir Reel'):
if access_token and video_path and description and title:
# Obtener el acceso al archivo de video
video_file = video_path.read()
upload_response = upload_reel_to_page(page_id, video_file, description, title)
st.success(f'El Reel se ha subido exitosamente a la página de Facebook. Respuesta: {upload_response}')
else:
st.error('Por favor completa todos los campos, incluyendo el Token de Acceso') |