Users Confused about "Users"?
Let us know how we can improve our documentation:
Confused about "Users"?
Let us know how we can improve our documentation:
Stream allows you to store user information and embed them inside activities or use them for personalization. When stored in activities, users are automatically enriched by Stream.
1
2
3
4
5
6
7
8
const client = stream.connect('YOUR_API_KEY', 'FEED_TOKEN', 'APP_ID');
// ensure the user data is stored on Stream
await client.setUser({
name: 'John Doe',
occupation: 'Software Engineer',
gender: 'male'
});
1
2
3
# The Python API client exposes users methods on client.users
# when adding reactions, collections or reading feeds with enrichment
# you can provide `user_id` as an argument
1
2
3
# The Ruby API client exposes user method on client.users
# when adding reactions, collections or reading feeds with enrichment
# you can provide `:user_id` as an argument
1
2
3
// The PHP API client exposes users methods on $client->users()
// when adding reactions, collections or reading feeds with enrichment
// you can provide `$user_id` as argument
1
2
// Java API client exposes users methods on client.user object
// when adding reactions, collections you can provide `userID` as argument
1
2
3
4
5
6
7
8
let client = Client(apiKey: "c38bmrz86x8y", appId: "64184", token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoidXNlcjEifQ.BQudnXB4B8wyoVDW403IaRG3zDs31L65VrVtf87prho")
let user = User(id: "john-doe")
client.create(user: user) { result in
if let createdUser = try? result.get() {
client.currentUser = createdUser
}
}
Adding UsersCopied!Confused about "Adding Users"?
Let us know how we can improve our documentation:
Confused about "Adding Users"?
Let us know how we can improve our documentation:
This endpoint allows you to insert a new user.
Name | Type | Description |
---|---|---|
id | string | The unique identifier for the new user (eg. username, user id, etc.). The value is restricted to alphanumeric characters, dashes and underscore symbols. |
data | object | The data related to the user. |
1
2
3
4
5
6
7
8
9
10
11
12
13
// create a new user, if the user already exist an error is returned
client.user("john-doe").create({
name: "John Doe",
occupation: "Software Engineer",
gender: 'male'
});
// get or create a new user, if the user already exist the user is returned
client.user("john-doe").getOrCreate({
name: "John Doe",
occupation: "Software Engineer",
gender: 'male'
});
1
2
3
4
5
6
7
8
9
10
11
12
# create a new user, if the user already exist an error is returned
client.users.add(
"john-doe",
{"name": "John Doe", "occupation": "Software Engineer", "gender": "male"},
)
# get or create a new user, if the user already exist the user is returned
client.users.add(
"john-doe",
{"name": "John Doe", "occupation": "Software Engineer", "gender": "male"},
get_or_create=True,
)
1
2
3
4
5
6
7
8
9
10
11
12
# create a new user, if the user already exists, an error is returned
client.users.add(
"john-doe",
:data => {:name => "John Doe", :occupation => "Software Engineer", :gender => "male"},
)
# get or create a new user, if the user already exists, the user is returned
client.users.add(
"john-doe",
:data => {:name => "John Doe", :occupation => "Software Engineer", :gender => "male"},
:get_or_create => true,
)
1
2
3
4
// create a new user with the name in userdata
$user = $client->users()->add('42', array('name' => 'Arthur Dent'));
// get OR create the user
$user = $client->users()->add('42', array('name' => 'Arthur Dent'), true);
1
2
3
4
5
6
7
8
9
10
11
// create a new user, if the user already exist an error is returned
client.user("john-doe").create(new Data()
.set("name", "John Doe")
.set("occupation", "Software Engineer")
.set("gender", "male")).join();
// get or create a new user, if the user already exist the user is returned
client.user("john-doe").getOrCreate(new Data()
.set("name", "John Doe")
.set("occupation", "Software Engineer")
.set("gender", "male")).join();
1
2
3
4
5
6
7
8
9
10
11
12
13
// create a new user, if the user already exist an error is returned
userData := stream.User{
ID: "john-doe",
Data: map[string]interface{}{
"name": "John Doe",
"occupation": "Software Engineer",
"gender": "male",
},
}
user, err := client.Users().Add(userData, false)
// get or create a new user, if the user already exist the user is returned
user, err = client.Users().Add(userData, true)
1
2
3
4
5
// create a new user, if the user already exist an error is returned
client.create(user: User(id: "john-doe"), getOrCreate: false) { result in /* ... */ }
// get or create a new user, if the user already exist the user is returned
client.create(user: User(id: "john-doe"), getOrCreate: true) { result in /* ... */ }
1
2
3
4
5
6
7
8
9
10
11
12
// create a new user, if the user already exist an error is returned
const userData = new Dictionary<string, object>()
{
{"name", "John Doe" },
{"occupation", "Software Engineer"},
{"gender", "male"},
};
await client.Users.Add("john-doe", userData);
// get or create a new user, if the user already exist the user is returned
await client.Users.Add("john-doe", userData, true);
Retrieving UsersCopied!Confused about "Retrieving Users"?
Let us know how we can improve our documentation:
Confused about "Retrieving Users"?
Let us know how we can improve our documentation:
The retrieving users endpoint allows you to retrieve a user by their ID.
1
client.user('123').get();
1
client.users.get("123")
1
client.users.get("123")
1
$client->users()->get('42');
1
client.user("123").get().join();
1
user, err := client.Users().Get("123")
1
client.get(userId: "123") { result in /* ... */ }
1
await client.Users.Get("123");
Removing UsersCopied!Confused about "Removing Users"?
Let us know how we can improve our documentation:
Confused about "Removing Users"?
Let us know how we can improve our documentation:
The delete endpoint removes a user by their ID.
1
client.user('123').delete();
1
client.users.delete("123")
1
client.users.delete("123")
1
$client->users()->delete('42');
1
client.user("123").delete().join();
1
err := client.Users().Delete("123")
1
client.delete(userId: "123") { result in /* ... */ }
1
await client.Users.Delete("123")
Updating UsersCopied!Confused about "Updating Users"?
Let us know how we can improve our documentation:
Confused about "Updating Users"?
Let us know how we can improve our documentation:
This endpoint allows you to update a user by their ID.
ParametersCopied!Confused about "Parameters"?
Let us know how we can improve our documentation:
Confused about "Parameters"?
Let us know how we can improve our documentation:
name | type | description | default | optional |
---|---|---|---|---|
id | string | The ID of the user to update | - | |
data | object | The data related to the user | - |
1
client.user('123').update({ name: "Jane Doe", occupation: "Software Engineer", gender: "female" });
1
2
3
client.users.update("123",
{"name": "Jane Doe", "occupation": "Software Engineer", "gender": "female"}
)
1
2
3
client.users.update("123",
:data => {:name => "Jane Doe", :occupation => "Software Engineer", :gender => "female"}
)
1
$user = $client->users()->update('42', array('name' => 'Arthur Dent');
1
2
3
4
client.user("123").update(new Data()
.set("name", "Jane Doe")
.set("occupation", "Software Engineer")
.set("gender", "female")).join();
1
2
3
4
5
6
data := map[string]interface{}{
"name": "John Doe",
"occupation": "Software Engineer",
"gender": "female",
}
user, err := client.Users().Update("123", data)
1
client.update(user: User(id: "john-doe")) { result in /* ... */ }
1
2
3
4
5
6
7
var userData = new Dictionary<string, object="">()
{
{"name", "Jane Doe" },
{"occupation", "Software Engineer"},
{"gender", "female"},
};
await client.Users.Update("123", userData);</string,>