def create_media_container_for_reel(video_url, access_token, caption, user_id):
graph_url = f'https://graph.facebook.com/v19.0/{user_id}/media'
payload = {
'media_type': 'REELS', # Updated as per the new requirement
'video_url': video_url,
'caption': caption,
'access_token': access_token
}
response = requests.post(graph_url, json=payload)
if response.status_code in [200, 201]:
media_container_id = response.json().get('id')
return media_container_id
else:
logging.error(f"Failed to create media container. Status code: {response.status_code}, Response: {response.text}")
return None
import time
def publish_media_container_as_reel(media_container_id, access_token, user_id, retries=5, delay=10):
print(media_container_id)
publish_endpoint = f'https://graph.facebook.com/v19.0/{user_id}/media_publish'
publish_payload = {
'creation_id': media_container_id,
'access_token': access_token
}
while retries > 0:
response = requests.post(publish_endpoint, data=publish_payload)
if response.status_code in [200, 201]:
logging.info("Reel published successfully.")
return True
else:
error = response.json().get('error', {})
if error.get('code') == 9007 and retries > 0:
logging.warning(f"Media not ready for publishing, waiting {delay} seconds before retrying...")
time.sleep(delay)
retries -= 1
else:
logging.error(f"Failed to publish reel. Status code: {response.status_code}, Response: {response.text}")
return False
logging.error("Failed to publish reel after retries. Giving up.")
return False
def post_reel_to_instagram(video_url, access_token, caption, user_id):
# Step 1: Create Media Container
media_container_id = create_media_container_for_reel(video_url, access_token, caption, user_id)
if not media_container_id:
return False
# Step 2: Publish the Media Container as a Reel
return publish_media_container_as_reel(media_container_id, access_token, user_id)
I'm using the above code, all the token and id is same for image and reel, but image upload works flawlessly but reel one doesn't work.
create_media_container_for_reel
also returns a media id, it only gives error when i try to post ot on my feed using publish_media_container_as_reel
what am I doing wrong?