GCM отправка с curl (php)

Я пытаюсь отправить сообщение на телефон Android, но получаю код ответа 401 с текстом: «Не авторизован». Также я постоянно читаю разные истории о том, какой ключ использовать, я знаю 3 ключа: идентификатор проекта (номер), ключ для серверных приложений и ключ для браузерных приложений. Итак, я попробовал их все 3, с одинаковым результатом.

Мой код:

$headers = array("Content-Type" => "application/json", "Authorization" => "key=" . "mykey");
    $data = array(
        'data' => $messageText,
        'registration_ids' => array($deviceRegistrationId)
    );

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send");
    curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    error_log(json_encode($data));
    $response = curl_exec($ch);
    curl_close($ch);
    error_log($response);

Ответы на вопрос(2)

Ваш ответ на вопрос