El servidor de Google GCM devuelve el error 404

Quiero enviar un mensaje desde mi servidor al teléfono, por PHP. Aquí está mi código:

    $apiKey = "AIxxxxxxxxxxxxxxxxxxxx";

    $registrationIDs = array( $c2dmId );

    $url = "https://android.googleapis.com/gcm/send";

    $headers = array( 
                        'Authorization: key='.$apiKey,
                        'Content-Type: application/json'
                    );

    $fields = array(
                    'collapse_key'      => $collapseKey,
                    'data'              => array( 
                        "type"      => $msgType,
                        "extra"     => $msgExtra,
                        "uuid"      => $uuid,
                        "user_id"   => $userId),
                    'registration_ids'  => $registrationIDs,
                    );

    print (json_encode($fields));
    echo "<br/>";

    $ch = curl_init();

    curl_setopt( $ch, CURLOPT_URL, $url );

    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );

    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );

    $result = curl_exec($ch);
    $resultInfo = curl_getinfo($ch);

    echo "resultinfo: $resultInfo <br>";
    foreach ($resultInfo as $key => $value) {
        echo "$key => $value <br>";
    }

    curl_close($ch);
    die ("Result: $result");

Donde $ c2dmId es solo el ID de registro que envío al servidor desde el teléfono. Como resultado obtengo (en $ variable de resultado):

<HTML>
<HEAD>
<TITLE>Not Found</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Not Found</H1>
<H2>Error 404</H2>
</BODY>
</HTML>

Y no sé por qué. ¿Alguien puede ayudar? La documentación no dice nada sobre el código 404, así que realmente no sé qué está pasando.

Respuestas a la pregunta(3)

Su respuesta a la pregunta