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 푸시 알림 테스터를 무료로 사용할 수 있습니다. 여러 프로젝트에서 작업하는 동안 비슷한 상황에 처해 있습니다. GCMAPNS알림을 모두 보낼 수 있으며 추가 인수에 대한 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.