printer: create
命名空间:microsoft.graph
创建 (通用) 在打印机上注册。 这是一个长时间运行的操作,因此它将返回一个 printerCreateOperation, 该打印机可用于跟踪和验证打印机的注册。
有关使用 CSR (创建打印机) 证书签名请求的帮助,请参阅 CSR 生成代码示例。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
除了以下权限之外,用户的租户还必须具有活动的通用打印订阅。 登录的用户必须是打印机 管理员。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
Printer.Create、Printer.ReadWrite.All、Printer.FullControl.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
不支持。 |
HTTP 请求
POST /print/printers/create
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供参数的 JSON 表示形式。
下表显示了可用于此操作的参数。
| 参数 |
类型 |
说明 |
是否必需? |
| displayName |
String |
要显示名称打印机的打印机。 |
是 |
| manufacturer |
String |
打印机的制造商。 |
是 |
| model |
String |
打印机的模型。 |
是 |
| physicalDeviceId |
String |
打印机的物理设备 UUID。 如果属性为 hasPhysicalDevice true,则必需。 |
否 |
| hasPhysicalDevice |
布尔 |
如果打印机具有物理输出设备,则其为 True,否则为 false。 如果省略,则默认值为 true。 |
否 |
| certificateSigningRequest |
printCertificateSigningRequest |
X.509 证书签名请求 (CSR) 由打印机创建和用于标识自身的证书。 |
是 |
| connectorId |
String |
充当打印机代理的连接器的 ID。 |
否 |
响应
如果成功,此方法在标头中返回 响应代码和关联 202 Accepted printerCreateOperation Operation-Location 的链接。
对链接的 URL 进行 GET 请求,获取正在进行的打印机注册的状态。 成功完成打印机注册后,对链接 URL 的 GET 请求将包含创建的打印机对象和注册的证书。
示例
请求
POST https://graph.microsoft.com/v1.0/print/printers/create
Content-Type: application/json
{
"displayName": "Test Printer",
"manufacturer": "Test Printer Manufacturer",
"model": "Test Printer Model",
"physicalDeviceId": null,
"hasPhysicalDevice": false,
"certificateSigningRequest": {
"content": "{content}",
"transportKey": "{sampleTransportKey}"
},
"connectorId": null
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var displayName = "Test Printer";
var manufacturer = "Test Printer Manufacturer";
var model = "Test Printer Model";
String physicalDeviceId = null;
var hasPhysicalDevice = false;
var certificateSigningRequest = new PrintCertificateSigningRequestObject
{
Content = "{content}",
TransportKey = "{sampleTransportKey}"
};
String connectorId = null;
await graphClient.Print.Printers
.Create(displayName,manufacturer,model,certificateSigningRequest,physicalDeviceId,hasPhysicalDevice,connectorId)
.Request()
.PostAsync();
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const create = {
displayName: 'Test Printer',
manufacturer: 'Test Printer Manufacturer',
model: 'Test Printer Model',
physicalDeviceId: null,
hasPhysicalDevice: false,
certificateSigningRequest: {
content: '{content}',
transportKey: '{sampleTransportKey}'
},
connectorId: null
};
await client.api('/print/printers/create')
.post(create);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/print/printers/create"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSString *displayName = @"Test Printer";
payloadDictionary[@"displayName"] = displayName;
NSString *manufacturer = @"Test Printer Manufacturer";
payloadDictionary[@"manufacturer"] = manufacturer;
NSString *model = @"Test Printer Model";
payloadDictionary[@"model"] = model;
payloadDictionary[@"physicalDeviceId"] = physicalDeviceId;
BOOL hasPhysicalDevice = NO;
payloadDictionary[@"hasPhysicalDevice"] = hasPhysicalDevice;
MSGraphPrintCertificateSigningRequest *certificateSigningRequest = [[MSGraphPrintCertificateSigningRequest alloc] init];
[certificateSigningRequest setContent:@"{content}"];
[certificateSigningRequest setTransportKey:@"{sampleTransportKey}"];
payloadDictionary[@"certificateSigningRequest"] = certificateSigningRequest;
payloadDictionary[@"connectorId"] = connectorId;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
String displayName = "Test Printer";
String manufacturer = "Test Printer Manufacturer";
String model = "Test Printer Model";
Boolean hasPhysicalDevice = false;
PrintCertificateSigningRequest certificateSigningRequest = new PrintCertificateSigningRequest();
certificateSigningRequest.content = "{content}";
certificateSigningRequest.transportKey = "{sampleTransportKey}";
graphClient.print().printers()
.create(PrinterCreateParameterSet
.newBuilder()
.withDisplayName(displayName)
.withManufacturer(manufacturer)
.withModel(model)
.withPhysicalDeviceId(physicalDeviceId)
.withHasPhysicalDevice(hasPhysicalDevice)
.withCertificateSigningRequest(certificateSigningRequest)
.withConnectorId(connectorId)
.build())
.buildRequest()
.post();
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
displayName := "Test Printer"
requestBody.SetDisplayName(&displayName)
manufacturer := "Test Printer Manufacturer"
requestBody.SetManufacturer(&manufacturer)
model := "Test Printer Model"
requestBody.SetModel(&model)
requestBody.SetPhysicalDeviceId(nil)
hasPhysicalDevice := false
requestBody.SetHasPhysicalDevice(&hasPhysicalDevice)
certificateSigningRequest := msgraphsdk.NewPrintCertificateSigningRequest()
requestBody.SetCertificateSigningRequest(certificateSigningRequest)
content := "{content}"
certificateSigningRequest.SetContent(&content)
transportKey := "{sampleTransportKey}"
certificateSigningRequest.SetTransportKey(&transportKey)
requestBody.SetConnectorId(nil)
graphClient.Print().Printers().Create().Post(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
HTTP/1.1 202 Accepted
Operation-Location: https://graph.microsoft.com/v1.0/print/operations/f221760a-52e8-4c11-b8c5-5dfaef3a49db
Retry-After: 5