printer: create
本文内容
命名空间:microsoft.graph
重要
Microsoft Graph /beta
版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
使用通用打印服务创建 () 打印机注册。 这是一个长时间运行的操作,因此,它将返回一个 打印机CreateOperation ,可用于跟踪和验证打印机的注册。
此 API 可用于以下国家级云部署 。
全局服务
美国政府 L4
美国政府 L5 (DOD)
由世纪互联运营的中国
✅
✅
✅
❌
权限
为此 API 选择标记为最低特权的权限。 只有在应用需要它时 ,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型 。 要了解有关这些权限的详细信息,请参阅 权限参考 。
权限类型
最低特权权限
更高特权权限
委派(工作或学校帐户)
Printer.Create
Printer.FullControl.All、Printer.ReadWrite.All
委派(个人 Microsoft 帐户)
不支持。
不支持。
应用程序
不支持。
不支持。
HTTP 请求
POST /print/printers/create
名称
说明
Authorization
持有者 {token}。 必填。 详细了解 身份验证和授权 。
Content-type
application/json. 必需。
请求正文
在请求正文中,提供具有以下属性的 JSON 对象。
参数
类型
说明
是否必需?
displayName
String
要分配给打印机的显示名称。
是
manufacturer
String
打印机的制造商。
是
model
String
打印机的型号。
是
physicalDeviceId
String
打印机的物理设备 UUID。 如果该属性为 true, hasPhysicalDevice
则为必需。
否
hasPhysicalDevice
布尔值
如果打印机具有物理输出设备,则为 True;否则为 false。 如果省略,则默认值为 true。
否
certificateSigningRequest
printCertificateSigningRequest
X.509 证书签名请求 (CSR) 打印机创建并使用证书来标识自身。
是
connectorId
String
充当打印机代理的连接器的 ID。
否
响应
如果成功,此方法在202 Accepted
标头中Operation-Location
返回响应代码和指向关联 printerCreateOperation 的链接。
对链接 URL 发出 GET 请求可用于获取正在进行的打印机注册状态。 打印机注册成功完成后,对链接 URL 的 GET 请求将包含创建的打印机对象和已注册的证书。
示例
请求
以下示例显示了一个请求。
POST https://graph.microsoft.com/beta/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
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Print.Printers.Create;
using Microsoft.Graph.Beta.Models;
var requestBody = new CreatePostRequestBody
{
DisplayName = "Test Printer",
Manufacturer = "Test Printer Manufacturer",
Model = "Test Printer Model",
PhysicalDeviceId = null,
HasPhysicalDevice = false,
CertificateSigningRequest = new PrintCertificateSigningRequest
{
Content = "{content}",
TransportKey = "{sampleTransportKey}",
},
ConnectorId = null,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Print.Printers.Create.PostAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta print printers create post --body '{\
"displayName": "Test Printer",\
"manufacturer": "Test Printer Manufacturer",\
"model": "Test Printer Model",\
"physicalDeviceId": null,\
"hasPhysicalDevice": false,\
"certificateSigningRequest": { \
"content": "{content}",\
"transportKey": "{sampleTransportKey}"\
},\
"connectorId": null\
}\
'
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphprint "github.com/microsoftgraph/msgraph-beta-sdk-go/print"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphprint.NewCreatePostRequestBody()
displayName := "Test Printer"
requestBody.SetDisplayName(&displayName)
manufacturer := "Test Printer Manufacturer"
requestBody.SetManufacturer(&manufacturer)
model := "Test Printer Model"
requestBody.SetModel(&model)
physicalDeviceId := null
requestBody.SetPhysicalDeviceId(&physicalDeviceId)
hasPhysicalDevice := false
requestBody.SetHasPhysicalDevice(&hasPhysicalDevice)
certificateSigningRequest := graphmodels.NewPrintCertificateSigningRequest()
content := "{content}"
certificateSigningRequest.SetContent(&content)
transportKey := "{sampleTransportKey}"
certificateSigningRequest.SetTransportKey(&transportKey)
requestBody.SetCertificateSigningRequest(certificateSigningRequest)
connectorId := null
requestBody.SetConnectorId(&connectorId)
graphClient.Print().Printers().Create().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.print.printers.create.CreatePostRequestBody createPostRequestBody = new com.microsoft.graph.beta.print.printers.create.CreatePostRequestBody();
createPostRequestBody.setDisplayName("Test Printer");
createPostRequestBody.setManufacturer("Test Printer Manufacturer");
createPostRequestBody.setModel("Test Printer Model");
createPostRequestBody.setPhysicalDeviceId(null);
createPostRequestBody.setHasPhysicalDevice(false);
PrintCertificateSigningRequest certificateSigningRequest = new PrintCertificateSigningRequest();
certificateSigningRequest.setContent("{content}");
certificateSigningRequest.setTransportKey("{sampleTransportKey}");
createPostRequestBody.setCertificateSigningRequest(certificateSigningRequest);
createPostRequestBody.setConnectorId(null);
graphClient.print().printers().create().post(createPostRequestBody);
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')
.version('beta')
.post(create);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\CreatePostRequestBody;
use Microsoft\Graph\Generated\Models\PrintCertificateSigningRequest;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CreatePostRequestBody();
$requestBody->setDisplayName('Test Printer');
$requestBody->setManufacturer('Test Printer Manufacturer');
$requestBody->setModel('Test Printer Model');
$requestBody->setPhysicalDeviceId(null);
$requestBody->setHasPhysicalDevice(false);
$certificateSigningRequest = new PrintCertificateSigningRequest();
$certificateSigningRequest->setContent('{content}');
$certificateSigningRequest->setTransportKey('{sampleTransportKey}');
$requestBody->setCertificateSigningRequest($certificateSigningRequest);
$requestBody->setConnectorId(null);
$graphServiceClient->escapedPrint()->printers()->create()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Devices.CloudPrint
$params = @{
displayName = "Test Printer"
manufacturer = "Test Printer Manufacturer"
model = "Test Printer Model"
physicalDeviceId = $null
hasPhysicalDevice = $false
certificateSigningRequest = @{
content = '{content}'
transportKey = '{sampleTransportKey}'
}
connectorId = $null
}
New-MgBetaPrintPrinter -BodyParameter $params
from msgraph import GraphServiceClient
from msgraph.generated.print.printers.create.create_post_request_body import CreatePostRequestBody
from msgraph.generated.models.print_certificate_signing_request import PrintCertificateSigningRequest
graph_client = GraphServiceClient(credentials, scopes)
request_body = CreatePostRequestBody(
display_name = "Test Printer",
manufacturer = "Test Printer Manufacturer",
model = "Test Printer Model",
physical_device_id = None,
has_physical_device = False,
certificate_signing_request = PrintCertificateSigningRequest(
content = "{content}",
transport_key = "{sampleTransportKey}",
),
connector_id = None,
)
await graph_client.print.printers.create.post(request_body)
响应
以下示例显示了相应的响应。
HTTP/1.1 202 Accepted
Operation-Location: https://graph.microsoft.com/beta/print/operations/f221760a-52e8-4c11-b8c5-5dfaef3a49db
Retry-After: 5