Add create account

If the user does not have an account with your service, you can choose to provide the user with a link to create one.

In your response to getAppLink, include the createAccount element. This instructs the Sonos app to present a button to open your app and create an account on your service.

When the user selects Add to Sonos, the Sonos app sends your service a getAppLink request. In order for your service to provide sign in and create account options, your service's response to getAppLink should be similar to the following. The appUrl of authorizeAccount provides the link into your app's sign-in workflow, and the appUrl of createAccount provides the link into your app's new-account workflow.

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.sonos.com/Services/1.1">
   <s:Body>
      <getAppLinkResponse>
         <getAppLinkResult xsi:type="appLinkResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <authorizeAccount>
               <appUrl>acme-action://authorize?scope=browse,playback,favorites&client_id=9b377073ea334637b1406f329ce005de&response_type=code&state=sid%3D3079%26OAuthDeviceID%3DSonos_J9zl49YnRMtvgEYHPb4hJKvqYd_7d55e99%26callbackPath%3D%2FaddAccount&redirect_uri=sonos%3A%2F%2Fx-callback-url%2FaddAccount</appUrl>
               <appUrlStringId>SIGN_IN</appUrlStringId>
               <deviceLink>
                  <regUrl>https://oauth.acme.com/home?linkCode=AKVS3FHEAUCXAQKLkMA</regUrl>
                  <linkCode>AKVS3FHEAUCXAQKLkMA</linkCode>
                  <showLinkCode>false</showLinkCode>
               </deviceLink>
            </authorizeAccount>
            <createAccount>
               <appUrl>acme-action://newAccount?scope=browse,playback,favorites&client_id=9b377073ea334637b1406f329ce005de&response_type=code&state=sid%3D3079%26OAuthDeviceID%3DSonos_J9zl49YnRMtvgEYHPb4hJKvqYd_7d55e99%26callbackPath%3D%2FaddAccount&redirect_uri=sonos%3A%2F%2Fx-callback-url%2FaddAccount</appUrl>
               <appUrlStringId>CREATE_NEW</appUrlStringId>
            </createAccount>
         </getAppLinkResult>
      </getAppLinkResponse>
   </s:Body>
</s:Envelope>

We encourage you to direct users to your app for both the sign-in and "create account" workflows. However, if the user does not have the app installed, Sonos will use the sign-in URL you provided to Sonos in the version manager. See Submit your service for details.

If you want to restrict the user to create an account using only a webpage and not your app, leave out the appUrl sub-element in the createAccount element:

. . .  
      <createAccount>  
         <appUrlStringId>CREATE_NEW</appUrlStringId>  
      </createAccount>  
. . .

You can still include the appUrlStringId element if you don't provide appUrl. This way you can still customize the signup button.