{% extends "base.html" %} {% block title %}Write a post{% endblock %} {% block heading %}Write a post{% endblock %} {% block body %} {% if outcomes %}

What happened

{% for outcome in outcomes %} {% endfor %}
AccountResultDetail
{{ outcome.account_name }}
{{ outcome.platform }}
{{ outcome.state }} {% if outcome.error_kind %}
{{ outcome.error_kind }} {% endif %}
{{ outcome.detail }} {% if outcome.link %}
{{ outcome.link }} {% endif %}

Every one of those is a separate turn of this app's own loop. A network refusing did not stop the ones after it, because this app chose to carry on - see views/posting.py.

{% endif %} {% if not connections %}

Nothing is connected yet. Connect an account.

{% else %}
Post as {% for connection in connections %} {% set network = networks.get(connection.platform) %} {% endfor %}
The post

This is the caption on Instagram and TikTok, the description on YouTube and Pinterest, and the post itself everywhere else. Bluesky allows 300 graphemes and 3,000 bytes and enforces both; Threads counts 500 bytes, not characters; TikTok counts the way Java does, so an emoji is two. socialchimp counts each of them the way that network does and refuses an over-long post before spending a request.

Instagram, Threads and Pinterest fetch the file themselves and take nothing else. For the rest socialchimp downloads it and uploads it for them.

Instagram and Threads refuse this, with an explanation rather than a failed upload. YouTube, TikTok and Pinterest need a file or an address for every post; they have no text-only post at all.

Only Mastodon, Facebook and YouTube can be asked. The other six refuse by name rather than posting it now, which is the whole point of asking. Facebook wants between 10 minutes and 75 days out. Times are read as UTC here.

YouTube

Google requires an answer to this on every upload and socialchimp will not guess one. Pinterest uses the same title box above, where the title is separate from the description — that is the part people trip over.

Who can see it

Left out, YouTube publishes private and TikTok publishes SELF_ONLY, both on purpose: putting somebody's video in front of the world by accident cannot be undone. Until TikTok has audited your app every post is SELF_ONLY whatever you ask for, and it will still answer that it worked.

TikTok

Drafts is the default because it needs only the video.upload permission and because nothing reaches a profile without a person tapping a button. TikTok's inbox carries no caption, so this app leaves the words off a draft and says so; the alternative is a refusal. A draft comes back WAITING_FOR_PERSON — nothing more will happen on its own, so do not poll it.

Pinterest

Pinterest has no feed to post to, and socialchimp never picks a board for you. Name one here, or save board_id on the connection's extra and every pin from that account goes there.

Links and languages

Everything above is a real option name, checked against the platform file it belongs to. A name a network has never heard of is refused before anything is sent, with the accepted names in the message.

{% endif %} {% endblock %}