Android : 온라인 푸시 알림 테스트 (Google 클라우드 메시징) [닫힘]


99

업데이트 : GCM 은 더 이상 사용되지 않습니다. FCM을 사용 하세요.

내 애플리케이션에서 Google 클라우드 메시징을 구현하고 있습니다. 서버 코드가 아직 준비되지 않았으며 일부 방화벽 제한으로 인해 내 환경에 푸시 알림을위한 테스트 서버를 배포 할 수 없습니다. 내가 찾고있는 것은 내 클라이언트 구현을 테스트하기 위해 내 장치에 테스트 알림을 보내는 온라인 서버입니다.


다른 게시물을 삭제 했으므로 여기에 작성하는 이유 :-) NotificationListenerService가 api 18에 추가되었습니다 ... SharedPreferences에 ID를 int 배열로 저장하고 새 ID를 추가 한 후 필요한 것보다 큰 경우 배열의 크기를 chceck하는 로직을 수행하십시오. 첫 번째 요소 및 취소 ...
— Selvin

답변:


167

이 작업을 수행하는 매우 쉬운 방법을 찾았습니다.

http://phpfiddle.org/ 열기

상자에 다음 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

1
별로 :) 테스트 목적으로 0.0.0.0/0 ip를 사용할 수 있습니다. 작동합니다.
— Adnan 2014 년

4
나는 매번 (api 키 및 장치 ID : error) : "InvalidRegistration
— Leandro

4
API KEY키를주는 것이 너무 안전하지 않으므로 나중에 다시 생성 하십시오.
— Flash Thunder

6
무단 오류 401이 계속 발생합니다. 이유를 알 수 있습니까?
— Razel Soco 2015 년

2
{ "error": "invalid_token", "error_description": "잘못된 값"} 나는 이것을 찾았습니다. 잘못된 등록 ID를 가져옵니다.
— Anand

159

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"
    }
  ]
}

3
GCM을 테스트하는 가장 깨끗하고 안전한 솔루션이라고 생각합니다. 감사!
— Bianca Daniciuc 2015 년

12
나를 위해 POST로 작업했습니다! 또한 API_KEY가 아니라 Authorization 헤더에 "key ="가있는 것을 잊지 마십시오
— Raphael Royer-Rivard

3
@Raphael Royer-Rivard 당신의 생명의 은인, 인증 헤더에 "key ="가 누락되었습니다
— Khurram Shehzad 2015

3
Google 개발자 콘솔로 만들 수있는 몇 가지 키가 있습니다. 명확하지 않은 경우 우편 배달부와 함께 사용하려면 "서버 키"를 만들어야합니다.
— Liangjun 2015

3
여기에서 "registration_ids"는 무엇입니까? 어디에서 찾을 수 있습니까?
— Himel Nag Rana

19

Pushwatch 는 Django / Python에서 직접 개발 한 온라인 GCM 및 APNS 푸시 알림 테스터를 무료로 사용할 수 있습니다. 여러 프로젝트에서 작업하는 동안 비슷한 상황에 처해 있습니다. GCM및 APNS알림을 모두 보낼 수 있으며 추가 인수에 대한 JSON 메시지도 지원합니다. 다음은 테스터 링크입니다.

궁금한 점이 있거나 사용에 문제가 있으면 알려주세요.


1
귀하의 반대표를 설명하십시오.
— Amyth

1
내가 필요한 것만은 완벽하게 작동합니다. (우편 배달부를 시도했는데, 제대로 작동했지만 내 앱이 열리지 않았을 때 내 기기에 메시지가 나타나지 않았습니다 ..)
— Greywire

안녕하세요 Amyth 님의 사이트에 다음 오류가 표시됩니다. "HTTP 오류 401 : 유효하지 않은 (레거시) 서버 키가 전달되었거나 발신자가 요청을 수행 할 권한이 없습니다." 무엇을해야할지 모르겠습니까? 방금 Google 프로젝트를 만들고 SenderID에 대해 프로젝트 ID와 프로젝트 번호를 사용해 보았고 Google API 설정의 "이 HTTP 리퍼러 (웹 사이트)의 요청 수락"에 사이트를 추가했습니다. 감사합니다 라스무스
— Thylle

이 URL은 더 이상 지원되지 않습니다. 2018 년 4 월 10 일부터 Google은 GCM을 더 이상 사용하지 않습니다. GCM 서버 및 클라이언트 API는 더 이상 사용되지 않으며 2019 년 4 월 11 일에 제거됩니다. GCM 정보
— Stinky Towel

7

Postman은 좋은 솔루션이며 PHP 바이올린도 마찬가지입니다. 그러나 매번 GCM URL과 헤더 정보를 입력하지 않으려면이 멋진 GCM 알림 테스트 도구를 사용할 수도 있습니다.


2
Android와 iOS를 모두 지원하는이 온라인 테스터를 사용할 수 있습니다. 사용하기 쉬운 간단한 웹 사이트 pushtry.com 1. .p12 파일 선택 2. 장치 토큰 3 입력 3. 환경 샌드 박스 또는 프로덕션 선택 4. 메시지 입력 5. 보내기
— Arvind
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.