Cómo enviar parámetros adicionales en la carga útil a través de Amazon SNS Push Notification

Esto es algo nuevo que estoy preguntando ya que no tengo ninguna respuesta al respecto en SO.

Estoy usando Amazon SNS Push para enviar push a mis dispositivos registrados, todo funciona bien, puedo registrar dispositivos en mi aplicación, puedo enviar push, etc. El problema al que me enfrento es que quiero abrir una página específica Cuando abro mi aplicación a través de push. Quiero enviar algunos parámetros adicionales con la carga útil, pero no puedo hacer eso.

He intentado este enlace: -http://docs.aws.amazon.com/sns/latest/api/API_Publish.html

solo tenemos una clave, es decir, "Mensaje", en la que podemos pasar la carga útil hasta donde sé.

Quiero pasar una carga útil como esta:

{
    aps = {
            alert = "My Push text Msg";
          };
    "id" = "123",
    "s" = "section"
}

o cualquier otro formato está bien, solo quería pasar 2-3 valores junto con la carga útil para poder usarlos en mi aplicación.

El código que estoy usando para enviar push es: -

// Load the AWS SDK for PHP
if($_REQUEST)
{
    $title=$_REQUEST["push_text"];

    if($title!="")
    {
        require 'aws-sdk.phar';


        // Create a new Amazon SNS client
        $sns = Aws\Sns\SnsClient::factory(array(
            'key'    => '...',
            'secret' => '...',
            'region' => 'us-east-1'
        ));

        // Get and display the platform applications
        //print("List All Platform Applications:\n");
        $Model1 = $sns->listPlatformApplications();

        print("\n</br></br>");*/

        // Get the Arn of the first application
        $AppArn = $Model1['PlatformApplications'][0]['PlatformApplicationArn'];

        // Get the application's endpoints
        $Model2 = $sns->listEndpointsByPlatformApplication(array('PlatformApplicationArn' => $AppArn));

        // Display all of the endpoints for the first application
        //print("List All Endpoints for First App:\n");
        foreach ($Model2['Endpoints'] as $Endpoint)
        {
          $EndpointArn = $Endpoint['EndpointArn'];
          //print($EndpointArn . "\n");
        }
        //print("\n</br></br>");

        // Send a message to each endpoint
        //print("Send Message to all Endpoints:\n");
        foreach ($Model2['Endpoints'] as $Endpoint)
        {
          $EndpointArn = $Endpoint['EndpointArn'];

          try
          {
            $sns->publish(array('Message' => $title,
                    'TargetArn' => $EndpointArn));

            //print($EndpointArn . " - Succeeded!\n");
          }
          catch (Exception $e)
          {
            //print($EndpointArn . " - Failed: " . $e->getMessage() . "!\n");
          }
        }
    }
}
?>

Cualquier ayuda o idea será apreciada. Gracias por adelantado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta