Member Junction
    Preparing search index...

    Base class for all Buffer social media actions. Uses Buffer's GraphQL API at https://api.buffer.com.

    Migration note: replaces the deprecated v1 REST API at api.bufferapp.com/1. Key concept renames: profiles → channels, updates → posts.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _companyIntegration: MJCompanyIntegrationEntity
    _integration: MJIntegrationEntity

    Accessors

    • get oauthParams(): ActionParam[]

      OAuth-specific parameters that all OAuth actions should include

      Returns ActionParam[]

    Methods

    • Create a post via the createPost mutation.

      metadata is Buffer's per-service extras channel, keyed by service name — e.g. { linkedin: { annotations: [...] } } for

      Parameters

      • input: {
            assets?: BufferAssetInput[];
            channelId: string;
            dueAt?: string;
            metadata?: Record<string, unknown>;
            mode?: BufferShareMode;
            schedulingType?: string;
            tagIds?: string[];
            text: string;
        }

      Returns Promise<BufferPost>

      annotations. It is passed through untouched rather than modelled, because its shape belongs to whichever network the channel points at and Buffer adds to it independently of this package.

    • Validate CompanyIntegrationID and initialize OAuth.

      Pass the full RunActionParams so the per-request provider on params.Provider is threaded into initializeOAuth (multi-tenant correctness — every entity load/save inside the OAuth flow binds to the request's connection, not the global default).

      CompanyIntegrationID stays required even when CredentialID is given: it is what identifies which Buffer integration this is, and the org/channel context still comes from it. CredentialID only changes whose token the calls are made with.

      Returns null on success, or an error result.

      Parameters

      Returns Promise<ActionResultSimple>

    • Fetch posts with optional filters and cursor-based pagination.

      Parameters

      • organizationId: string
      • Optionalfilters: {
            channelIds?: string[];
            endDate?: string;
            startDate?: string;
            status?: BufferPostStatus;
            tags?: string[];
        }
      • Optionalfirst: number
      • Optionalafter: string

      Returns Promise<BufferPostsConnection>

    • Get custom attributes from company integration

      Parameters

      • attributeNumber: 1 | 2 | 3 | 4 | 5

      Returns string

    • Get the refresh token

      Returns string

    • Initialize OAuth connection by loading integration details.

      Parameters

      • companyIntegrationId: string

        the MJ Company Integration ID to load

      • Optionalparams: RunActionParams

        the running action's params; params.Provider is captured so all subsequent entity loads/saves bind to the per-request provider (multi-tenant correctness). When omitted, falls back to the global default Metadata provider.

      Returns Promise<boolean>

    • Determine if an error is an authentication error. Can be overridden by subclasses for platform-specific error detection.

      Parameters

      • error: any

      Returns boolean

    • Check if the current token is expired

      Returns boolean

    • Make an authenticated API request with automatic retry on auth failure

      Type Parameters

      • T

      Parameters

      • requestFn: (token: string) => Promise<T>
      • OptionalretryOnAuthFailure: boolean

      Returns Promise<T>

    • Load an access token out of an MJ: Credentials row.

      This is the seam for acting as an identity other than the tenant's own Buffer connection — publishing to an employee's personal channel, reading the queue of the person who owns it. The token stays in the credential store; only its ID travels through action params.

      A CredentialID that was supplied but cannot be read is fatal, never a silent fallback to the CompanyIntegration token: falling back would publish under the wrong identity, and the caller would have no way to notice.

      Returns the token, or an error result to hand straight back to the caller.

      Parameters

      Returns Promise<string | ActionResultSimple>

    • Search for posts on the platform

      Parameters

      • params: {
            channelIds?: string[];
            endDate?: Date;
            hashtags?: string[];
            limit?: number;
            offset?: number;
            organizationId?: string;
            query?: string;
            startDate?: Date;
        }

      Returns Promise<SocialPost[]>

    • Set custom attributes in company integration

      Parameters

      • attributeNumber: 1 | 2 | 3 | 4 | 5
      • value: string

      Returns Promise<void>

    • Update stored tokens after refresh

      Parameters

      • accessToken: string
      • OptionalrefreshToken: string
      • OptionalexpiresIn: number

      Returns Promise<void>