HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/self/root/tmp/cs_connect_runbook_private_test.json
{
    "ok": true,
    "generated_at": "2026-06-14T09:27:51+00:00",
    "connect_runbook": {
        "generated_at": "2026-06-14T09:27:51+00:00",
        "status": "ready",
        "ready_steps": 5,
        "blocked_steps": 1,
        "action_needed_steps": 0,
        "total_steps": 6,
        "next_step": {
            "key": "self_only_direct_smoke",
            "label": "Run SELF_ONLY Direct Publish",
            "status": "blocked",
            "metric": "0 direct publishes · 2 failures",
            "owner": "TikTok API Agent / Compliance Agent",
            "next_action": "TikTok blocked Direct Post init. Make the TikTok account private for unaudited-client testing or complete Direct Post audit/advanced access, then retry SELF_ONLY."
        },
        "oauth": {
            "start_url": "/creator-studio/auth/tiktok/start.php",
            "callback_url": "https://kiwerkzeuge.de/creator-studio/auth/tiktok/callback.php",
            "scopes_requested": [
                "user.info.basic",
                "user.info.profile",
                "user.info.stats",
                "video.list",
                "video.publish",
                "video.upload"
            ],
            "connected_accounts": 1,
            "creator_info_ready_accounts": 1
        },
        "scopes": [
            {
                "scope": "user.info.basic",
                "label": "Basic user info",
                "purpose": "Bind the private session to the correct TikTok open_id and display the account safely.",
                "used_for": "Login identity"
            },
            {
                "scope": "user.info.profile",
                "label": "Profile info",
                "purpose": "Show handle, avatar, bio, and profile link so the creator confirms the right account before upload.",
                "used_for": "Account confirmation"
            },
            {
                "scope": "user.info.stats",
                "label": "Creator stats",
                "purpose": "Read follower, likes, following, and video counts for lightweight workspace context.",
                "used_for": "Creator context"
            },
            {
                "scope": "video.list",
                "label": "Video list",
                "purpose": "Read recent public videos so review and packaging suggestions fit the existing feed.",
                "used_for": "Content context"
            },
            {
                "scope": "video.publish",
                "label": "Direct publish",
                "purpose": "Fetch Creator Info and enable Direct Publish only with explicit privacy, AIGC, and branded-content confirmation.",
                "used_for": "SELF_ONLY direct smoke"
            },
            {
                "scope": "video.upload",
                "label": "Draft upload",
                "purpose": "Send reviewed videos or photo sets to TikTok drafts while final control stays inside TikTok.",
                "used_for": "Draft-first smoke"
            }
        ],
        "data_guards": [
            "Tokens stay in the private account store with 0600 permissions.",
            "OpenClaw events receive hashes, counts, and status only; no raw access or refresh tokens are routed.",
            "Draft Upload is the first live TikTok smoke; Direct Publish starts with SELF_ONLY and explicit confirmation.",
            "Creator Info controls privacy levels, interaction locks, max duration, AIGC, and branded-content switches before publishing.",
            "No like, follow, comment, or engagement automation is part of the approved workflow."
        ],
        "sequence": [
            {
                "key": "review_before_login",
                "label": "Run review before TikTok login",
                "status": "ready",
                "metric": "3 non-demo reviews",
                "owner": "Video Agent",
                "next_action": "Use the existing non-demo proof as the creator handoff before OAuth."
            },
            {
                "key": "open_tiktok_login",
                "label": "Open TikTok Login Kit",
                "status": "ready",
                "metric": "6 scopes configured",
                "owner": "Creator / TikTok API Agent",
                "next_action": "Open /creator-studio/auth/tiktok/start.php and authorize the owned creator account."
            },
            {
                "key": "sync_creator_profile",
                "label": "Sync profile and Creator Info",
                "status": "ready",
                "metric": "1 accounts with Creator Info",
                "owner": "TikTok API Agent",
                "next_action": "Refresh Creator Info and verify privacy-level options before any Direct Publish."
            },
            {
                "key": "draft_upload_smoke",
                "label": "Send first Draft Upload",
                "status": "ready",
                "metric": "5 draft uploads",
                "owner": "TikTok API Agent",
                "next_action": "Send one reviewed MP4 to TikTok drafts and refresh status."
            },
            {
                "key": "self_only_direct_smoke",
                "label": "Run SELF_ONLY Direct Publish",
                "status": "blocked",
                "metric": "0 direct publishes · 2 failures",
                "owner": "TikTok API Agent / Compliance Agent",
                "next_action": "TikTok blocked Direct Post init. Make the TikTok account private for unaudited-client testing or complete Direct Post audit/advanced access, then retry SELF_ONLY."
            },
            {
                "key": "url_photo_smokes",
                "label": "Validate URL and Photo smokes",
                "status": "ready",
                "metric": "4 URL · 2 photo",
                "owner": "Video Agent / Content Agent",
                "next_action": "Run one PULL_FROM_URL upload and one 2-3 image Photo/Carousel smoke."
            }
        ]
    }
}