Как решить эту проблему, я хочу отправлять уведомления

Здесь я хочу отправлять уведомления для мобильных устройств. я пытаюсь вот так получаю ошибку вот так.


{ «Multicast_id»: 9154934162102180737, «успех»: 0, «провал»: 1, «canonical_ids»: 0, «Результаты»: [{ «ошибка»: «MismatchSenderId»}]}


я не могу понять, что это API_ACCESS_KEY

<?php
// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'xxxxxx' );
//$registrationIds = array( $_GET['id'] );
$registrationIds = array( "APA91bEbAxYQZuglicZ2Ea5c26MtK07BYyunv14Us5INdjNvy3gy0Anq6V09dv2j21g7n_JERDumynuOp4l9GYA4RUGRjRZb6KJ4JYg9qPN9dlytPsgPKctIMhxfHFQSr9FfDjobZUJU" );
// prep the bundle
$msg = array
(
'message'   => 'here is a message. message',
'title'     => 'This is a title. title',
'subtitle'  => 'This is a subtitle. subtitle',
'tickerText'    => 'Ticker text here...Ticker text here...Ticker text here',
'vibrate'   => 1,
'sound'     => 1,
'largeIcon' => 'large_icon',
'smallIcon' => 'small_icon'
);
$fields = array
(
'registration_ids'  => $registrationIds,
'data'          => $msg
);

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

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
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 );
curl_close( $ch );
echo $result;

-1

Решение

@SujiniR Сначала вы регистрируете свое приложение в Google Cloud Messaging и получаете API Access KEY и Send ID, ссылка:

https://developers.google.com/cloud-messaging/registration

Затем сохраните свой ключ доступа API в:

define( 'API_ACCESS_KEY', 'api_key_recieved_from_google_by_above_process' );

Затем используйте SenderID в приложении Android, чтобы получить RegistrationId, скопировать или отправить этот регистрационный идентификатор на сервер и использовать его в:

$registrationIds = array(registrationID);
0

Другие решения

Исходя из нашего обсуждения в комментариях, кажется, вы использовали неправильный идентификатор отправителя. Вы всегда должны использовать соответствующий идентификатор отправителя, для которого был зарегистрирован токен, ну, зарегистрированный. Ваше клиентское приложение может получать от нескольких идентификаторов отправителей, если оно связанный к этому. Остальное вернет MismatchSender:

Регистрационный токен привязан к определенной группе отправителей. Когда клиентское приложение регистрируется для GCM, оно должно указать, каким отправителям разрешено отправлять сообщения. Вы должны использовать один из этих идентификаторов отправителя при отправке сообщений клиентскому приложению. Если вы переключитесь на другого отправителя, существующие регистрационные токены не будут работать.

0

По вопросам рекламы [email protected]