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, "");
    }
Ejemplo n.º 2
0
        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
        }
Ejemplo n.º 3
0
        /// <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)
Ejemplo n.º 4
0
        /// <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);
        }