PHPackages                             boogiefromzk/agora-token - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. boogiefromzk/agora-token

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

boogiefromzk/agora-token
========================

Intended to make Agora Tools for PHP repository folder as a package installable with Composer.

v1.0.2(1y ago)957.1k↓16.5%ISCPHPPHP &gt;=7.1

Since Oct 25Pushed 1y ago1 watchersCompare

[ Source](https://github.com/boogiefromzk/agora-token-php)[ Packagist](https://packagist.org/packages/boogiefromzk/agora-token)[ RSS](/packages/boogiefromzk-agora-token/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)DependenciesVersions (4)Used By (0)

agora-token-php
===============

[](#agora-token-php)

Agora token generation library for PHP

As Agora support declined my feature request to do that, had to make Agora Tools for PHP repository folder available as a package, installable with Composer.

License
-------

[](#license)

ISC license is not confirmed, but inherited from agora-chat npm package:

Usage
-----

[](#usage)

Install the package.

```
composer require boogiefromzk/agora-token

```

### Agora Chat Token

[](#agora-chat-token)

Create the app token for using REST API to register users.

```
use BoogieFromZk\AgoraToken\ChatTokenBuilder2;

$appID = ... // App ID from Agora client area.
$appCertificate = ... // App Certificate from Agora client area.
$expiresInSeconds = ... // For how many seconds this token is kept valid.

$appToken = ChatTokenBuilder2::buildAppToken($appID, $appCertificate, $expiresInSeconds);

```

Then use it for authentication in Agora Chat REST API and register a user.

You will use some field as username when registering a user, save it in a user.

Now you can create a token for this user:

```
use BoogieFromZk\AgoraToken\ChatTokenBuilder2;

$appID = ... // App ID from Agora client area.
$appCertificate = ... // App Certificate from Agora client area.
$expiresInSeconds = ... // For how many seconds this token is kept valid.
$agoraUsername = ... // Username used for user registration above.

$token = ChatTokenBuilder2::buildUserToken($appID, $appCertificate, $agoraUsername, $expiresInSeconds);

```

In order to set and retrieve user's presence in Agora Chat please ensure that the feature is enabled from your Agora Chat Console. In order to enable it, from your Agora Chat Console menu, click on Features -&gt; Overview -&gt; Under "Message Feature Configuration" look for "Others" and ensure that Presence is set to enabled.

### Agora RTC Token

[](#agora-rtc-token)

```
use BoogieFromZk\AgoraToken\RtcTokenBuilder2;

$appID = ... // App ID from Agora client area.
$appCertificate = ... // App Certificate from Agora client area.
$expiresInSeconds = ... // For how many seconds this token is kept valid.
$channelName = ... // Channel name which should be accessible.
$uid = ... // Identifier of user.
$role = RtcTokenBuilder2::ROLE_PUBLISHER;

$token = RtcTokenBuilder2::buildTokenWithUid($appID, $appCertificate, $channelName, $uid, $role, $expiresInSeconds);

```

### More Examples

[](#more-examples)

More examples you can find in samples folder of Agora Tools project:

Update files script
-------------------

[](#update-files-script)

This script is for internal use, - it updates files in /src folder.

```
rm -rf ./src
git clone git@github.com:AgoraIO/Tools.git /tmp/agora_tools
cp -r /tmp/agora_tools/DynamicKey/AgoraDynamicKey/php/src .
rm -rf /tmp/agora_tools
cd ./src
sed -i 's/
