presence: setPresence
[アーティクル]
05/10/2022
3 人の共同作成者
この記事の内容
名前空間: microsoft.graph
ユーザーのプレゼンス セッションの状態をアプリケーションとして設定します。
プレゼンス セッション
ユーザーは複数のTeams クライアント (デスクトップ、モバイル、Web) にアクセスできるため、ユーザーは複数のプレゼンス セッションを持つことができます。 各Teams クライアントには独立したプレゼンス セッションがあり、ユーザーのプレゼンスは、背後にあるすべてのセッションから集計された状態になります。
同様に、アプリケーションはユーザーに対して独自のプレゼンス セッションを持ち、状態を更新できます。
セッションの状態を集計する方法の優先順位を次に示します。
ユーザー構成>アプリ構成 (ユーザー構成状態は他のユーザーをオーバーライド)
アプリ構成内: DoNotDisturb (現在、設定されたプレゼンスではサポートされていません) > Busy > Available > Away
タイムアウト、有効期限、およびキープアライブ
プレゼンス セッションが タイムアウト して 期限切れになる 可能性があるため、アプリケーションは タイムアウト 前にこの API を呼び出して、セッションの状態を維持する必要があります。または有効期限が 切れる 前に、セッションを維持します。
プレゼンス セッションは、可用性があり、タイムアウトが 5 分の場合に Available タイムアウトになる可能性があります。 タイムアウトになると、プレゼンス状態は段階的にフェードします。 たとえば、アプリケーションがプレゼンス セッションを次のように Available/Available設定した場合、状態は最初のタイムアウトで 5 分に変更 Available/AvailableInactive され Away/Away 、2 番目のタイムアウトではさらに 5 分になります。
プレゼンス セッションの有効期限は、パラメーターを使用して expirationDuration 構成できます。 セッションの有効期限が切れると、次のようになります Offline。
アクセス許可
API を呼び出すには、次のアクセス許可が必要です。 アクセス許可の選択方法などの詳細については、「アクセス許可 」を参照してください。
アクセス許可の種類
アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント)
Presence.ReadWrite
委任 (個人用 Microsoft アカウント)
サポートされていません。
アプリケーション
Presence.ReadWrite.All
HTTP 要求
POST /users/{userId}/presence/setPresence
名前
説明
Authorization
ベアラー {token}。必須。
Content-Type
application/json. Required.
要求本文
要求本文で、次のパラメーターを含む JSON オブジェクトを指定します。
パラメーター
種類
説明
Sessionid
string
アプリケーションのプレゼンス セッションの ID。
availability
string
ベース プレゼンス情報。
アクティビティ
string
可用性に関する補足情報。
expirationDuration
duration
アプリプレゼンス セッションの有効期限。 この値は、ISO 8601 形式で表示されます。指定しない場合は、既定で 5 分の有効期限が適用されます。 有効な期間範囲は 5 ~ 240 分です (PT5M から PT4H)
重要
要求のようにアプリケーション sessionId の ID を指定します。
次のavailability``activity組み合わせがサポートされています。
availability
アクティビティ
説明
使用可能
使用可能
プレゼンス セッションを [使用可能] として更新します。
多忙
InACall
プレゼンス セッションを Busy、InACall として更新します。
多忙
InAConferenceCall
プレゼンス セッションを Busy、InAConferenceCall として更新します。
離れて
離れて
プレゼンス セッションを Away として更新します。
応答
成功した場合、このメソッドは 200 OK 応答コードを返します。
例
次の要求は、ユーザーfa8bf3dc-eca7-46b7-bad1-db199b62afc3のプレゼンス セッションを設定する ID 22553876-f5ab-4529-bffb-cfe50aa89f87 を持つアプリケーションを示しています。
要求
POST https://graph.microsoft.com/beta/users/fa8bf3dc-eca7-46b7-bad1-db199b62afc3/presence/setPresence
Content-Type: application/json
{
"sessionId": "22553876-f5ab-4529-bffb-cfe50aa89f87",
"availability": "Available",
"activity": "Available",
"expirationDuration": "PT1H"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var sessionId = "22553876-f5ab-4529-bffb-cfe50aa89f87";
var availability = "Available";
var activity = "Available";
var expirationDuration = new Duration("PT1H");
await graphClient.Users["{user-id}"].Presence
.SetPresence(availability,activity,sessionId,expirationDuration)
.Request()
.PostAsync();
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
const options = {
authProvider,
};
const client = Client.init(options);
const setPresence = {
sessionId: '22553876-f5ab-4529-bffb-cfe50aa89f87',
availability: 'Available',
activity: 'Available',
expirationDuration: 'PT1H'
};
await client.api('/users/fa8bf3dc-eca7-46b7-bad1-db199b62afc3/presence/setPresence')
.version('beta')
.post(setPresence);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/users/fa8bf3dc-eca7-46b7-bad1-db199b62afc3/presence/setPresence"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSString *sessionId = @"22553876-f5ab-4529-bffb-cfe50aa89f87";
payloadDictionary[@"sessionId"] = sessionId;
NSString *availability = @"Available";
payloadDictionary[@"availability"] = availability;
NSString *activity = @"Available";
payloadDictionary[@"activity"] = activity;
NSString *expirationDuration = @"PT1H";
payloadDictionary[@"expirationDuration"] = expirationDuration;
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 sessionId = "22553876-f5ab-4529-bffb-cfe50aa89f87";
String availability = "Available";
String activity = "Available";
Duration expirationDuration = DatatypeFactory.newInstance().newDuration("PT1H");
graphClient.users("fa8bf3dc-eca7-46b7-bad1-db199b62afc3").presence()
.setPresence(PresenceSetPresenceParameterSet
.newBuilder()
.withSessionId(sessionId)
.withAvailability(availability)
.withActivity(activity)
.withExpirationDuration(expirationDuration)
.build())
.buildRequest()
.post();
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
sessionId := "22553876-f5ab-4529-bffb-cfe50aa89f87"
requestBody.SetSessionId(&sessionId)
availability := "Available"
requestBody.SetAvailability(&availability)
activity := "Available"
requestBody.SetActivity(&activity)
expirationDuration := "PT1H"
requestBody.SetExpirationDuration(&expirationDuration)
userId := "user-id"
graphClient.UsersById(&userId).Presence().SetPresence(user-id).Post(requestBody)
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
Import-Module Microsoft.Graph.Users.Actions
$params = @{
SessionId = "22553876-f5ab-4529-bffb-cfe50aa89f87"
Availability = "Available"
Activity = "Available"
ExpirationDuration = "PT1H"
}
Set-MgUserPresence -UserId $userId -BodyParameter $params
SDK をプロジェクトに追加し、authProvider インスタンスを作成する 方法の詳細については、SDK のドキュメントを参照してください 。
応答
HTTP/1.1 200 OK