Objective

How to handle the authentication flow when a non-Apple SSO supported Pay-TV provider (MVPD) is selected from the MVPD Picker?

Environment

iOS/ tvOS

Steps

After the user selects an unsupported TV Provider, programmer's app receives the following callbacks:

  1. dismissTvProviderDialog - At this point, programmer should hide Apple's viewController (it contains the picker).

  2. sendTrackingData - This is just an MVPD selection event.

  3. status - This contains a dictionary that looks like:

    2018-02-23 13:29:14.228410+0200 APIExplorer-tvos[252:11681] {
        errorId = REGCODE;
        expires = 1519387154016;
        level = success;
        message = 6ANC6PH; //SAMPLE_7_DIGIT_CODE
    }
  4. At this point, programmer should present the user with the message contained in this dictionary. In this case, it can be similar to: "Please go to <network-site>/activate and enter the following code: 6ANC6PH".

    During this time, the SDK polls Adobe servers for the status of the above mentioned registration code. Once the user uses that registration code to authenticate, the SDK gets a 200 status code from Adobe servers and the next callback is fired.

  5. setAuthenticationStatus - If the status is 1, the authentication was successful.

  6. sendTrackingData - This is just an authentication detection event.

Additional information

More on: http://tve.helpdocsonline.com/ios-integration-cookbook-v2 

The tvOS app crashes if the setRequestor is not handled correctly, as for tvOS programmer also provides the public key and the secret. See Clientless documentation for details.