2014-11-23 2 views
0

Я пытаюсь использовать GCM для отправки сообщений на мой Android-телефон.Ошибка уведомления об отправке GCM: MismatchSenderId

Что бы я ни стараюсь, я всегда имеют ту же ошибку: MismatchSenderId

Я тестирование с помощью простого завитка из CLI.

я сгенерировал 3 ключа и я попробовал все 3:

  • один для сервера AIzaSyDXz6HLhnRsyyBSKVpdsSrPEC8rFfFbHY8
  • один для браузера AIzaSyDAyBIP1Qlitli5Yj-F9VIORPwLLCCn3Vo
  • один для андроид AIzaSyCAum68Fu6U7LXpRkq0lLnCti9xQfBgL3s

Мой ID Проект starlit-verve-773 и мой номер проекта - 401070672185.

Моя регистрация ИД

APA91bENhVHjlNaf1OPo0VrxblBKkePzIcm14C4S7E0BSXsKDm9Nk0yk15Mwv54GFgPh5pP_gJTjp5Q3a5Xdfn4N8210GScD2fLmg73xDJBuaRVvjGOTh8juws5dbhYDpiSzGlaP1IhLaX6Vf9-rEEEn-JWrSa9oXUe9T7fMzgTLLrPHEosRUNw 

Я попробовал 2 свертыванию команды:

curl --header "Authorization: key=<key>" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"<reg ID>\"]}" 
curl --header "Authorization: key=<key>" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"<reg ID>\"],\"data\":{\"message\":\"Hello\"}}" 

Мой PHP сервер имеет ту же ошибку, когда он попытался оттолкнуть сообщение.

я получил рег ID с 2-мя способами: - приложение, которое отправить рег ID на веб-сервер с PHP и MySQL - бревнами от затмения, когда я запустить это приложение

Я застрял на этом в течение 2 дней. Я попытался открыть новый проект разработчика с той же учетной записью Google, которая находится на моем телефоне. Я не знаю, нормально ли это, но идентификатор reg все тот же, что и у 2 разных проектов.

Для чего я понимаю, у моего телефона должен быть другой идентификатор reg для каждого проекта.

Является ли reg ID проблемой и как я могу это исправить? Есть ли другой способ получить регистрационный номер?

Я знаю, что с этой проблемой много вопросов, но у меня нет рабочего.

+0

ли упоминая эти ключи не подвергать какой-либо конфиденциальной информации? И вы говорите, что ответы на различные вопросы не сработали для вас, не могли бы вы рассказать об этих решениях? –

+0

Да, но ключи могут быть восстановлены и удалены проект. Я попытался переключить ключ сервера и ключ браузера, тот же результат. Я попытался переключить идентификатор проекта и номер проекта в качестве идентификатора отправителя. –

ответ

0

Попробуйте использовать этот код:

define("GOOGLE_API_KEY", "[YOUR API KEY]"); 
define("GOOGLE_GCM_URL", "https://android.googleapis.com/gcm/send"); 

function send_gcm_notify($reg_id, $message) 
{ 
    $fields = array(
     'registration_ids' => array($reg_id), 
     'data'    => array("[Attr]" => '[val]', "[Attr]" => '[val]'), 
    ); 

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

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, GOOGLE_GCM_URL); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 

    $result = curl_exec($ch); 
    if ($result === FALSE) { 
     die('Problem occurred: ' . curl_error($ch)); 
    } 

    curl_close($ch); 
    echo $result; 
} 

$reg_id = "******"; 
$msg = 'hi!'; 

send_gcm_notify($reg_id, $msg); 
Смежные вопросы