Getting Started

Setup

The official PHP SDK for Stream covers Chat, Video, Moderation, and Feeds.

Install the SDK:

composer require getstream/getstream-php

Initialize the client with your API key and secret (available on the Dashboard):

use GetStream\ChatClient;

$client = new ChatClient("your-api-key", "your-api-secret");

Or load credentials from environment variables (STREAM_API_KEY, STREAM_API_SECRET) or a .env file:

use GetStream\ClientBuilder;

$client = ClientBuilder::fromEnv()->buildChatClient();

Server-side Token

Your backend generates a user token that the client SDKs use to authenticate. A typical place to issue this token is during login or registration.

$token = $client->createUserToken("user-id");
// return the token to the client app

Making Your First API Call

Create a user, open a channel, and send a message:

use GetStream\GeneratedModels as Models;

// Upsert a user
$client->updateUsers(new Models\UpdateUsersRequest(
    users: ["john" => new Models\UserRequest(
        id: "john",
        name: "John",
    )],
));

// Create or join a channel
$client->getOrCreateChannel("messaging", "hello-world",
    new Models\ChannelGetOrCreateRequest(
        data: new Models\ChannelInput(
            createdByID: "john",
        ),
    )
);

// Send a message
$client->sendMessage("messaging", "hello-world",
    new Models\SendMessageRequest(
        message: new Models\MessageRequest(
            text: "Hello, Stream!",
            userID: "john",
        ),
    )
);