使用 REST API 的 Twilio 令牌和点对点房间
Twilio token and peer-to-peer rooms using REST API
我正在尝试使用 REST Api (php) 在 Twilio 中创建一个点对点房间。代码如下:
<?php
require_once 'Twilio/autoload.php';
use Twilio\Rest\Client;
use Twilio\Jwt\AccessToken;
use Twilio\Jwt\Grants\VideoGrant;
include_once 'config.inc.php';
$identity = "alice";
$client = new Client($TWILIO_API_KEY, $TWILIO_API_SECRET);
$roomName = $client->video->rooms->create([
'uniqueName' => 'TestRoom2',
'type' => 'peer-to-peer',
'enableTurn' => false,
'Duration' => 300,
'MaxParticipants' => 2,
'statusCallback' => 'http://example.org'
]);
//echo $roomName->status;
//token
$token= new AccessToken($TWILIO_ACCOUNT_SID, $TWILIO_API_KEY, $TWILIO_API_SECRET, 300, $identity);
// Create Video grant
$videoGrant = new VideoGrant();
$videoGrant->setRoom($roomName);
// Add grant to token
$token->addGrant($videoGrant);
// return serialized token
echo $token->toJWT();
?>
我只使用 Twilio 在他们的示例中提供的代码:
https://www.twilio.com/docs/api/video/rooms-resource
点对点房间创建。
在测试生成的网络令牌的数据负载时:
https://jwt.io/
正在显示 Room Blank。
{
"jti": "SK1ddcfb6782fa358cb5e2306f8875ac1d-1505266888",
"iss": "SK1ddcfb6782fa358cb5e2306f8875ac1d",
"sub": "AC6c23ea48bd7d6bd681d21301f35c22b6",
"exp": 1505267188,
"grants": {
"identity": "alice",
"video": {
"room": {}
}
}
}
如果我使用以下方法创建房间,效果很好。
$roomName = "TestRoom";
问题出在代码上:
$client = new Client($TWILIO_API_KEY, $TWILIO_API_SECRET);
$roomName = $client->video->rooms->create([
'uniqueName' => 'TestRoom2',
'type' => 'peer-to-peer',
'enableTurn' => false,
'Duration' => 300,
'MaxParticipants' => 2,
'statusCallback' => 'http://example.org'
]);
我的 Twilio 点对点房间代码有什么问题?? Twilio 需要太多时间来响应,而且支持也不是很好。他们也没有提供简单的示例,只有一个令人困惑的节点 js 示例。
请求帮助。
您似乎正在将房间对象传递给 setRoom
,但 setRoom
需要的只是一个字符串(房间的名称)。
您可能想要这样的东西(注意 $roomName
与 $room
的用法):
$roomName = 'TestRoom2';
$room = $client->video->rooms->create([
'uniqueName' => $roomName,
'type' => 'peer-to-peer',
'enableTurn' => false,
'Duration' => 300,
'MaxParticipants' => 2,
'statusCallback' => 'http://example.org'
]);
$token = new AccessToken($TWILIO_ACCOUNT_SID, $TWILIO_API_KEY, $TWILIO_API_SECRET, 300, $identity);
$videoGrant = new VideoGrant();
$videoGrant->setRoom($roomName);
$token->addGrant($videoGrant);
echo $token->toJWT();
我正在尝试使用 REST Api (php) 在 Twilio 中创建一个点对点房间。代码如下:
<?php
require_once 'Twilio/autoload.php';
use Twilio\Rest\Client;
use Twilio\Jwt\AccessToken;
use Twilio\Jwt\Grants\VideoGrant;
include_once 'config.inc.php';
$identity = "alice";
$client = new Client($TWILIO_API_KEY, $TWILIO_API_SECRET);
$roomName = $client->video->rooms->create([
'uniqueName' => 'TestRoom2',
'type' => 'peer-to-peer',
'enableTurn' => false,
'Duration' => 300,
'MaxParticipants' => 2,
'statusCallback' => 'http://example.org'
]);
//echo $roomName->status;
//token
$token= new AccessToken($TWILIO_ACCOUNT_SID, $TWILIO_API_KEY, $TWILIO_API_SECRET, 300, $identity);
// Create Video grant
$videoGrant = new VideoGrant();
$videoGrant->setRoom($roomName);
// Add grant to token
$token->addGrant($videoGrant);
// return serialized token
echo $token->toJWT();
?>
我只使用 Twilio 在他们的示例中提供的代码: https://www.twilio.com/docs/api/video/rooms-resource
点对点房间创建。
在测试生成的网络令牌的数据负载时: https://jwt.io/
正在显示 Room Blank。
{
"jti": "SK1ddcfb6782fa358cb5e2306f8875ac1d-1505266888",
"iss": "SK1ddcfb6782fa358cb5e2306f8875ac1d",
"sub": "AC6c23ea48bd7d6bd681d21301f35c22b6",
"exp": 1505267188,
"grants": {
"identity": "alice",
"video": {
"room": {}
}
}
}
如果我使用以下方法创建房间,效果很好。
$roomName = "TestRoom";
问题出在代码上:
$client = new Client($TWILIO_API_KEY, $TWILIO_API_SECRET);
$roomName = $client->video->rooms->create([
'uniqueName' => 'TestRoom2',
'type' => 'peer-to-peer',
'enableTurn' => false,
'Duration' => 300,
'MaxParticipants' => 2,
'statusCallback' => 'http://example.org'
]);
我的 Twilio 点对点房间代码有什么问题?? Twilio 需要太多时间来响应,而且支持也不是很好。他们也没有提供简单的示例,只有一个令人困惑的节点 js 示例。
请求帮助。
您似乎正在将房间对象传递给 setRoom
,但 setRoom
需要的只是一个字符串(房间的名称)。
您可能想要这样的东西(注意 $roomName
与 $room
的用法):
$roomName = 'TestRoom2';
$room = $client->video->rooms->create([
'uniqueName' => $roomName,
'type' => 'peer-to-peer',
'enableTurn' => false,
'Duration' => 300,
'MaxParticipants' => 2,
'statusCallback' => 'http://example.org'
]);
$token = new AccessToken($TWILIO_ACCOUNT_SID, $TWILIO_API_KEY, $TWILIO_API_SECRET, 300, $identity);
$videoGrant = new VideoGrant();
$videoGrant->setRoom($roomName);
$token->addGrant($videoGrant);
echo $token->toJWT();