public async void WriteOneDSEventsAsync(UUnitTestContext testContext) #endif { var event1 = new PlayFabEvent() { Name = "Event_1", EventType = PlayFabEventType.Lightweight }; event1.SetProperty("Prop-A", true); event1.SetProperty("Prop-B", "hello"); event1.SetProperty("Prop-C", 123); var event2 = new PlayFabEvent() { Name = "Event_2", EventType = PlayFabEventType.Lightweight }; event2.SetProperty("Prop-A", false); event2.SetProperty("Prop-B", "good-bye"); event2.SetProperty("Prop-C", 456); var request = new WriteEventsRequest { Events = new List <EventContents> { event1.EventContents, event2.EventContents } }; var oneDSEventsApi = new OneDSEventsAPI(); // get OneDS authentication from PlayFab var configRequest = new TelemetryIngestionConfigRequest(); #if TPL_35 var authTask = OneDSEventsAPI.GetTelemetryIngestionConfigAsync(configRequest).Await(); #else var authTask = await OneDSEventsAPI.GetTelemetryIngestionConfigAsync(configRequest); #endif var response = authTask.Result; testContext.NotNull(authTask.Result, "Failed to get OneDS authentication info from PlayFab"); oneDSEventsApi.SetCredentials("o:" + authTask.Result.TenantId, authTask.Result.IngestionKey, authTask.Result.TelemetryJwtToken, authTask.Result.TelemetryJwtHeaderKey, authTask.Result.TelemetryJwtHeaderPrefix); // call OneDS events API #if TPL_35 var writeTask = oneDSEventsApi.WriteTelemetryEventsAsync(request, null, new Dictionary <string, string>()).Await(); #else var writeTask = await oneDSEventsApi.WriteTelemetryEventsAsync(request, null, new Dictionary <string, string>()); #endif testContext.NotNull(writeTask); testContext.IsNull(writeTask.Error, "Failed to send a batch of custom OneDS events"); testContext.NotNull(writeTask.Result, "Failed to send a batch of custom OneDS events. Result is null!"); testContext.EndTest(UUnitFinishState.PASSED, ""); }
internal static async Task <PlayFabResult <TelemetryIngestionConfigResponse> > GetTelemetryIngestionConfigAsync(TelemetryIngestionConfigRequest request, object customData = null, Dictionary <string, string> extraHeaders = null) #endif { if (PlayFabSettings.staticPlayer.EntityToken == null) { throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method"); } PlayFabResult <TelemetryIngestionConfigResponse> result = null; PlayFabHttp.instance.InjectInUnityThread(() => { PlayFabHttp.MakeApiCall <TelemetryIngestionConfigResponse>("/Event/GetTelemetryIngestionConfig", request, AuthType.EntityToken, callback => { result = new PlayFabResult <TelemetryIngestionConfigResponse> { Result = callback, CustomData = customData }; }, error => { result = new PlayFabResult <TelemetryIngestionConfigResponse> { Error = new OneDsError { HttpCode = error.HttpCode, HttpStatus = error.HttpStatus, Error = error.Error, ErrorMessage = error.ErrorMessage }, CustomData = customData }; }, null, null, PlayFabSettings.staticPlayer); }); #if TPL_35 return(Task.Run(() => { OneDsUtility.WaitWhile(() => result == null).Await(); return result; })); #else await OneDsUtility.WaitWhile(() => result == null); return(result); #endif }
/// <summary> /// This is an internal API for PlayFab SDK to get Ingestion Config that enables telemetry ingestion. /// </summary> #if TPL_35 internal static Task <PlayFabResult <TelemetryIngestionConfigResponse> > GetTelemetryIngestionConfigAsync(TelemetryIngestionConfigRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
/// <summary> /// This is an internal API for PlayFab SDK to get Ingestion Config that enables telemetry ingestion. /// </summary> internal static async Task <PlayFabResult <TelemetryIngestionConfigResponse> > GetTelemetryIngestionConfigAsync(TelemetryIngestionConfigRequest request, object customData = null, Dictionary <string, string> extraHeaders = null) { if (PlayFabSettings.staticPlayer.EntityToken == null) { throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method"); } PlayFabResult <TelemetryIngestionConfigResponse> result = null; PlayFabHttp.instance.InjectInUnityThread(() => { PlayFabHttp.MakeApiCall <TelemetryIngestionConfigResponse>("/Event/GetTelemetryIngestionConfig", request, AuthType.EntityToken, callback => { result = new PlayFabResult <TelemetryIngestionConfigResponse> { Result = callback, CustomData = customData }; }, error => { result = new PlayFabResult <TelemetryIngestionConfigResponse> { Error = error, CustomData = customData }; }, null, null, PlayFabSettings.staticPlayer); }); await WaitWhile(() => result == null, 100); return(result); }