FoPost LogoFoPost Docs
Authentication

Platform Credentials

Pass-per-request credentials as an alternative to managed OAuth.

Platform Credentials

By default, OwlStack manages platform credentials via OAuth through the dashboard. However, you can also pass your own platform credentials with each request.

When to use pass-per-request

  • You already have platform API credentials
  • You want full control over token management
  • You're migrating from a direct API integration
  • Enterprise compliance requires you to manage your own tokens

How it works

Pass credentials as part of the platform configuration:

use OwlStack\Enums\Platform;

$result = $client->publish($post, [
    Platform::Twitter->withCredentials([
        'consumer_key' => env('TWITTER_CONSUMER_KEY'),
        'consumer_secret' => env('TWITTER_CONSUMER_SECRET'),
        'access_token' => env('TWITTER_ACCESS_TOKEN'),
        'access_token_secret' => env('TWITTER_ACCESS_TOKEN_SECRET'),
    ]),
]);

OwlStack uses the provided credentials for that request only. Credentials are not stored on our servers.

Required credentials by platform

PlatformRequired Fields
Telegramapi_token, channel_username
Twitter/Xconsumer_key, consumer_secret, access_token, access_token_secret
Facebookpage_access_token, page_id
LinkedInaccess_token, person_id or organization_id
Discordbot_token + channel_id, or webhook_url
Instagramaccess_token, instagram_account_id
Pinterestaccess_token, board_id
Redditclient_id, client_secret, access_token, username
Slackbot_token + channel, or webhook_url
Tumblraccess_token, blog_identifier
WhatsAppaccess_token, phone_number_id

Mixing modes

You can use managed OAuth for some platforms and pass-per-request for others:

$results = $client->publish($post, [
    // Uses managed OAuth (connected in dashboard)
    Platform::LinkedIn,
    Platform::Facebook,

    // Uses your own credentials
    Platform::Twitter->withCredentials([
        'consumer_key' => '...',
        'consumer_secret' => '...',
        'access_token' => '...',
        'access_token_secret' => '...',
    ]),
]);

On this page