// add the stream-net to your project:
// https://www.nuget.org/packages/stream-net/
<PackageReference Include="stream-net" Version="6.5.3" />Getting Started
Learn How Easy It Can Be To Build Scalable Newsfeeds and Activity Streams
Stream has official clients for JS/Node, Ruby, Python, PHP, Go, Java and C#/.NET.
Setup
Let's get set up! First, install the client as specified below:
// install using composer
composer require get-stream/streamAll source code can be found on GitHub.
To instantiate the client you need an API key and secret . You can find the key and secret on the dashboard. The examples below already include your key and secret.
// Instantiate a new client (server side)
$client = new GetStream\Stream\Client('{{ api_key }}', '{{ api_secret }}');
// Find your API keys here https://getstream.io/dashboard/If you want to use Stream on your mobile or web application, you need to generate a token server-side that the client can use to authenticate as a user of your application.
Generate User Token Server-Side
This code generates the token for one of your users; a common place to do this is at signup or login. The token is then passed to the frontend.
$userToken = client->createUserSessionToken("the-user-id");Use Stream API client-side
const stream = require("getstream");
// Instantiate new client with a user token
const client = stream.connect(
"{{ api_key }}",
"{{ feed_token }}",
"{{ app_id }}",
);
// OR
import stream from "getstream";
const client = stream.connect(
"{{ api_key }}",
"{{ feed_token }}",
"{{ app_id }}",
);More details about authentication can be found in the REST docs
Quick Start
The quick start below shows you how to build a scalable social network. It highlights the most common API calls:
$chris = $client->feed('user', 'chris');
// Add an Activity; message is a custom field - tip: you can add unlimited custom fields!
$data = [
"actor" => "chris",
"verb" => "add",
"object" => "picture:10",
"foreign_id" => "picture:10",
"message" => "Beautiful bird!",
];
$chris->addActivity($data);
// Create a following relationship between Jack's "timeline" feed and Chris' "user" feed:
$jack = $client->feed('timeline', 'jack');
$jack->follow('user', 'chris');
// Read Jack's timeline and Chris' post appears in the feed:
$activities = $jack->getActivities(10)['results'];
// Remove the activity by referencing the foreign_id you provided:
$chris->removeActivity("picture:10", true);That was a good deal of information at once. The getting started docs provide a more detailed and interactive explanation.