使用C#SDK模拟用户

时间:2015-08-28 16:35:32

标签: smartsheet-api smartsheet-c#-sdk-v2

我正在使用新的C#SDK,并且可以使用此代码成功创建连接:

void*

如果我只想访问我自己的Smartsheet帐户中的数据,这很有用。但我正在构建一个需要创建由我公司其他用户拥有的表格的应用程序。使用SDK,如何创建在另一个用户的身份下运行的连接(没有属于该其他用户的访问令牌)?

1 个答案:

答案 0 :(得分:0)

使用属于Sys Admin用户的令牌,您可以使用“Assume-User”模拟其他用户,如下所述:http://smartsheet-platform.github.io/api-docs/?csharp#assume-user

如文档所示,使用“Assume-User”创建连接的C#代码如下:

// Set access token.
Token token = new Token();
token.AccessToken = "SYS_ADMIN_TOKEN";

// Create the 'smartsheet' object and set the 'Assume-User' header value to "john.doe@smartsheet.com".
SmartsheetClient smartsheet = new SmartsheetBuilder().SetAccessToken(token.AccessToken).SetAssumedUser("john.doe@smartsheet.com").Build();

创建连接后,您可以通过使用该连接执行“获取当前用户”呼叫来验证您是否以预期用户身份进行连接:

// Get current user (call gets executed as "john.doe@smartsheet.com").
UserProfile userProfile = smartsheet.UserResources.GetCurrentUser();

对此调用的响应将包含执行调用的用户的电子邮件,名称和ID。例如:

{
    "email": "john.doe@smartsheet.com",
    "firstName": "John",
    "lastName": "Doe",
    "id": 48569348493401200
}