내 애플리케이션에서 Google 클라우드 메시징을 구현하고 있습니다. 서버 코드가 아직 준비되지 않았으며 일부 방화벽 제한으로 인해 내 환경에 푸시 알림을위한 테스트 서버를 배포 할 수 없습니다. 내가 찾고있는 것은 내 클라이언트 구현을 테스트하기 위해 내 장치에 테스트 알림을 보내는 온라인 서버입니다.
내 애플리케이션에서 Google 클라우드 메시징을 구현하고 있습니다. 서버 코드가 아직 준비되지 않았으며 일부 방화벽 제한으로 인해 내 환경에 푸시 알림을위한 테스트 서버를 배포 할 수 없습니다. 내가 찾고있는 것은 내 클라이언트 구현을 테스트하기 위해 내 장치에 테스트 알림을 보내는 온라인 서버입니다.
답변:
이 작업을 수행하는 매우 쉬운 방법을 찾았습니다.
상자에 다음 PHP 스크립트를 붙여 넣습니다. PHP 스크립트 세트 API_ACCESS_KEY에서 장치 ID를 쉼표로 구분하여 설정하십시오.
F9를 누르거나 실행을 클릭합니다.
재미있게 보내세요;)
<?php
// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'YOUR-API-ACCESS-KEY-GOES-HERE' );
$registrationIds = array("YOUR DEVICE IDS WILL GO HERE" );
// 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
);
$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;
?>
FCM의 경우 Google URL은 https://fcm.googleapis.com/fcm/send입니다.
FCM v1의 경우 Google url은 https://fcm.googleapis.com/v1/projects/YOUR_GOOGLE_CONSOLE_PROJECT_ID/messages:send입니다.
참고 : Google 개발자 콘솔에서 API 액세스 키를 만드는 동안 IP 주소로 0.0.0.0/0을 사용해야합니다. (테스트 목적).
GCM 서버에서 유효하지 않은 등록 응답을받은 경우 장치 토큰의 유효성을 교차 확인하십시오. 다음 URL을 사용하여 장치 토큰의 유효성을 확인할 수 있습니다.
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=YOUR_DEVICE_TOKEN
일부 응답 코드 :
다음은 서버에서받을 수있는 일부 응답 코드에 대한 설명입니다.
{ "message_id": "XXXX" } - success
{ "message_id": "XXXX", "registration_id": "XXXX" } - success, device registration id has been changed mainly due to app re-install
{ "error": "Unavailable" } - Server not available, resend the message
{ "error": "InvalidRegistration" } - Invalid device registration Id
{ "error": "NotRegistered"} - Application was uninstalled from the device
API KEY
키를주는 것이 너무 안전하지 않으므로 나중에 다시 생성 하십시오.
POSTMAN : Google 크롬 확장
우편 배달부를 사용하여 서버 대신 메시지를 보냅니다. 우편 배달부 설정은 다음과 같습니다.
Request Type: POST
URL: https://android.googleapis.com/gcm/send
Header
Authorization : key=your key //Google API KEY
Content-Type : application/json
JSON (raw) :
{
"registration_ids":["yours"],
"data": {
"Hello" : "World"
}
}
성공하면 얻을 것이다
Response :
{
"multicast_id": 6506103988515583000,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1432811719975865%54f79db3f9fd7ecd"
}
]
}
Pushwatch 는 Django / Python에서 직접 개발 한 온라인 GCM 및 APNS 푸시 알림 테스터를 무료로 사용할 수 있습니다. 여러 프로젝트에서 작업하는 동안 비슷한 상황에 처해 있습니다. GCM
및 APNS
알림을 모두 보낼 수 있으며 추가 인수에 대한 JSON 메시지도 지원합니다. 다음은 테스터 링크입니다.
궁금한 점이 있거나 사용에 문제가 있으면 알려주세요.
Postman은 좋은 솔루션이며 PHP 바이올린도 마찬가지입니다. 그러나 매번 GCM URL과 헤더 정보를 입력하지 않으려면이 멋진 GCM 알림 테스트 도구를 사용할 수도 있습니다.