자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey [XE6] Baas 푸시 세미나에 관련된 궁금한 질문입니다.
2014.08.20 02:14
안녕하세요.
오늘 푸시 세미나 잘 보았습니다.
이런 세미나를 준비해주신 데브기어 관련자님 및 강사님께 감사인사 드립니다.
제가 강의를 보고 Baas 푸시를 체험하기위해 테스트로 일일히 다 따라해본 후 궁금증 3가지를
질문드리겠습니다.
우선, Baas 서비스를 이용한 푸시는 원할히 잘 됩니다.
궁금증 1
예를들어 푸시를 보냈는데 앱이 꺼져있을경우 푸시 알림창에 보여지게됩니다.
그런데 이푸시 내용에 성격을 부여할려고 합니다. 그래서 해당 푸시 내용을 클릭하면 제가만든 앱이
실행되는데 실행될때에 해당 푸시성격에 따라 다른 창을 보여주려고 합니다.
예를 들어 아래와 같은 성격의 푸시가 있을떄
1: 공지사항알림시 2: 업데이트알림시 3: 이벤트알림시
이것을 어떻게 구분해서 보낼수 있을까요?..
구분할 수 있는 방법이 있나요?
Kinvey 에서 푸시보내기 테스트 페이지에서는 그냥 [메세지] 만 보낼 수 있던데..
그렇다고 메세지 내용 끝에다가 구분코드를 넣는것도 아닐꺼구요..
또한 푸시알림창을 클릭해서 앱실행시, 앱실행 초기에 어떤 푸시를 클릭해서 들어온지도 알수 있어야
할것 같습니다. 그래야 푸시성격에 맞쳐 화면을 보여줄수 있을테니까요..
궁금증 2
예를들어 푸시를 보냈는데 앱이 꺼져있을경우 푸시 알림창에 보여지게됩니다.
그런데 알림창에 제 앱-프로젝트명과 제가 보낸 푸시 메세지의 일부분이 보이더군요..
그런데 다른 앱들은, 프로젝트명을 변경도 하더군요..
프로젝트명을 변경하여 보낼수는 없는건가요?
(예를 들어 카카오톡은 프로젝트명에 [상대방이름] 메세지부분에 [메세지내용]으로 보내더군요)
궁금증 3
만약, 모든사용자에게 푸시를 보내는것이 아니고, 사용자별로 조건을 두어 푸시를 보내야할 경우
kinvey 사용자로 모두 등록하여야 하나요?
예를 들어, 앱사용자가 1000명일경우, 앱처음 실행시에 1000명 모두 kinvey 사용자로 등록하여야 하나요?
좀 더 간편하게, 특정 사용자에게 푸시를 보낼수 있는방법은 없나요?
Baas 서비스를 이용하기 때문에, 한계가 있는것인가요?
예를들어, 앱으로 가입한 회원들에게 푸시서비스를 한다고 가정했을때, 앱으로 가입하면 자사의 Mysql-DB
에도 회원정보가 입력됩니다. 그럼 만약, 여자 50명, 남자 50명 이렇게 100명 가입했을경우,
남자 50명에게만 푸시를 보내고 싶다면, 어떻게 해야하나요?
자사의 회원 DB와 kinvey-사용자계정과의 관계을 어떻게 정의해서 사용해야 될까요?
궁금증 4
Kinvey 같은 경우, 무료사용자에게 1달에 5백만 푸시콜을 할 수 있도록 되어 있더군요..
그렇다면 무료사용자를 여러개 만들어서 사용한다면, 푸시콜에 제약이 없는것 아닐까요?
예를 들어, 무료계정을 10개를 만들어놓고, KinveyProvider 에서 랜덤으로 무료계정중 1개를
선택해서 푸시를 사용하도록 하면... 되지않나요? ㅎㅎ
궁금증 5
앱이 꺼져있을때에 푸시를 보내면 알림창에 등록되는데, 알림창에 등록된 푸시메세지를 클릭하면
해당 앱이 실행됩니다. 그런데 문제는 알림창에 등록된 푸시메세지가 없어지지 않습니다.
그대로 계속 남아있네요.. 상단에 [지우기] 버튼을 클릭해야 지워집니다..
이것은 버그인가요?
댓글 1
-
가을이다
2014.08.22 00:25
어제 푸시관련해서, 여러가지를 테스트한 결과, 자신의 회원DB를 통해 원하는 조건에 맞는 회원에게만 푸시를 보내고 싶을떄, kenvey 회원체계와의 관계를 테스트해봤습니다.
그 결과, 푸시를 받을 앱은 첨 실행시 kinvey 에 자동가입시키는것이좋다고 생각을 했습니다. 그리고 제회원 DB에도 해당 kinvey 아이디를 따로 저장하죠..
kinvey 아이디는 자동으로 DeviceID로 하면 될것같습니다.
PushEvents1.DeviceID 하면 자동으로 핸드폰고유 디바이스아이디를 가져오더군요..
회원가입시에, 회원가입아이디가 test_user 라면 가입과동시에 해당스마트폰_디바이스아이디를 kinvey 아이디로 등록하고, 사용자 아이디 테이블에 같이 기록하면 될것 같습니다.
아래와 같이 말이죠,.
----------------------------------------------------------------------------------------회원DB----------------------------------------------------------------------------------------id pw kinvey_idtest_user test1234 dar348nhcacdhn73jdlsdkjadj838nrbg2q0dj
그래서, 나중에 test_user한테 푸시를 보내고 싶으면, kinvey_id를 로딩해서 보내면 될것같습니다.
그리고, 제가 어제 테스트해본것중에 한가지 팁을 공유해드리면,
앱처음 실행시에 디바이스 등록을 무조건 하면 안된다는 것입니다. 처음 디바이드 등록을 한후에,등록한 DeviceID 를 온라인DB에 따로 저장해두고, 다음 실행부터는 디바이스 등록을 이미 했는지를검사한 후에, 이미등록되어 있다면, Active 만 True 로 해주고, 등록이 안되어 있다면 PushEvents1.RegisterDevice;로 등록을 한후, Active = True 해야한다는 점입니다.
이유는, 처음앱 실행시, PushEvents1.RegisterDevice; 등록후, 앱을 삭제하고 스마트폰을 부팅한뒤 다시 앱을 설치하고 PushEvents1.RegisterDevice; 를 또 호출하게 되면, 같으 푸시메세지가 2번씩 오는현상을 경험했습니다.
이부분은, 데브기어 세미나중 [코드 아카데미 세션4: 푸쉬 알림] 동영상 강의중에도 발생했던 부분입니다.동영상 강의중에는 이부분 해결을, 구글_프로젝트를 변경하는 방법으로 우회했지만, 실제 상용서비스를한다면 서비스중에 구글_프로젝트를 변경하는 일은 없어야 할것입니다.
### 아래는 제가 테스트했던 방법입니다.
1. 앱처음실행시 PushEvents1.Active := True 후 PushEvents1.RegisterDevice; 2. 스마트폰 부팅3. 푸시테스트 수신정상4. 앱실행 PushEvents1.Active := True 후 PushEvents1.RegisterDevice; 5. 푸시테스트 수신정상6. 앱삭제7. 푸시테스트 동작안함(앱삭제했기에..)8. 앱재설치후 실행 PushEvents1.Active := True 후 PushEvents1.RegisterDevice; 9. 푸시테스트 발송1번에 수신 2번씩옴. (문제발생)
### 해결책
1. 앱처음 실행시 PushEvents1.DeviceID 가 자신의 온라인DB(mysql 등) 에 존재하는지 검사한다. (이것은 DeviceID 가 자신의 서비스에 한번이라도 등록이 됬는지를 검사하는 것임) (이것은 로컬ini파일등으로 하면, 앱삭제시 지워지므로 의미가없음)
2. 존재한다면 => PushEvents1.Active := True 만 실행한다.(토큰만 연결함) 토큰연결을 한번만 해도, 앱종료시, 스마트폰 부팅후 앱을실행하지 않아도 푸시메세지가 정상 수신됩니다.
존재하지않는다면 => PushEvents1.Active := True, PushEvents1.RegisterDevice;로 장비등록후, PushEvents1.DeviceID를 온라인DB에 저장한다.
이렇게하면, 사용자가 스마트폰이 바뀌지 않는 이상, 장비등록은 한번만 하고 PushEvents1.Active 만으로도푸시수신설정을 할 수가 있습니다. 물론 스마트폰이 바뀌게 되면, DeviceID 가 변경되기에 다시 등록되겠죠.
지금까지, 어제 제가 테스트했던 부분들을 적어드렸습니다.
그런데 아직도 해결되지 못한 부분들이 있네요. 데브기어 게시판에서는 아직도 답변이 없구요 ^^해결못한 부분들은 아래부분입니다.
=============궁금증 1=============
예를들어 푸시를 보냈는데 앱이 꺼져있을경우 푸시 알림창에 보여지게됩니다. 그런데 이푸시 내용에 성격을 부여할려고 합니다. 그래서 해당 푸시 내용을 클릭하면 제가만든 앱이실행되는데 실행될때에 해당 푸시성격에 따라 다른 창을 보여주려고 합니다.
예를 들어 아래와 같은 성격의 푸시가 있을떄1: 공지사항알림시 2: 업데이트알림시 3: 이벤트알림시
이것을 어떻게 구분해서 보낼수 있을까요?..구분할 수 있는 방법이 있나요?
Kinvey 에서 푸시보내기 테스트 페이지에서는 그냥 [제목] [메세지] 만 보낼 수 있던데.. 그렇다고 메세지 내용 끝에다가 구분코드를 넣는것도 아닐꺼구요..
또한 푸시알림창을 클릭해서 앱실행시, 앱실행 초기에 어떤 푸시를 클릭해서 들어온지도 알수 있어야할것 같습니다. 그래야 푸시성격에 맞쳐 화면을 보여줄수 있을테니까요..
=============궁금증 2=============
앱이 꺼져있을때에 푸시를 보내면 알림창에 등록되는데, 알림창에 등록된 푸시메세지를 클릭하면해당 앱이 실행됩니다. 그런데 문제는 알림창에 등록된 푸시메세지가 없어지지 않습니다.그대로 계속 남아있네요.. 상단에 [지우기] 버튼을 클릭해야 지워집니다..이것은 버그인가요?
Firemonkey [XE6] Baas 푸시 세미나에 관련된 궁금한 질문입니다.
2014.08.20 02:14
안녕하세요.
오늘 푸시 세미나 잘 보았습니다.
이런 세미나를 준비해주신 데브기어 관련자님 및 강사님께 감사인사 드립니다.
제가 강의를 보고 Baas 푸시를 체험하기위해 테스트로 일일히 다 따라해본 후 궁금증 3가지를
질문드리겠습니다.
우선, Baas 서비스를 이용한 푸시는 원할히 잘 됩니다.
궁금증 1
예를들어 푸시를 보냈는데 앱이 꺼져있을경우 푸시 알림창에 보여지게됩니다.
그런데 이푸시 내용에 성격을 부여할려고 합니다. 그래서 해당 푸시 내용을 클릭하면 제가만든 앱이
실행되는데 실행될때에 해당 푸시성격에 따라 다른 창을 보여주려고 합니다.
예를 들어 아래와 같은 성격의 푸시가 있을떄
1: 공지사항알림시 2: 업데이트알림시 3: 이벤트알림시
이것을 어떻게 구분해서 보낼수 있을까요?..
구분할 수 있는 방법이 있나요?
Kinvey 에서 푸시보내기 테스트 페이지에서는 그냥 [메세지] 만 보낼 수 있던데..
그렇다고 메세지 내용 끝에다가 구분코드를 넣는것도 아닐꺼구요..
또한 푸시알림창을 클릭해서 앱실행시, 앱실행 초기에 어떤 푸시를 클릭해서 들어온지도 알수 있어야
할것 같습니다. 그래야 푸시성격에 맞쳐 화면을 보여줄수 있을테니까요..
궁금증 2
예를들어 푸시를 보냈는데 앱이 꺼져있을경우 푸시 알림창에 보여지게됩니다.
그런데 알림창에 제 앱-프로젝트명과 제가 보낸 푸시 메세지의 일부분이 보이더군요..
그런데 다른 앱들은, 프로젝트명을 변경도 하더군요..
프로젝트명을 변경하여 보낼수는 없는건가요?
(예를 들어 카카오톡은 프로젝트명에 [상대방이름] 메세지부분에 [메세지내용]으로 보내더군요)
궁금증 3
만약, 모든사용자에게 푸시를 보내는것이 아니고, 사용자별로 조건을 두어 푸시를 보내야할 경우
kinvey 사용자로 모두 등록하여야 하나요?
예를 들어, 앱사용자가 1000명일경우, 앱처음 실행시에 1000명 모두 kinvey 사용자로 등록하여야 하나요?
좀 더 간편하게, 특정 사용자에게 푸시를 보낼수 있는방법은 없나요?
Baas 서비스를 이용하기 때문에, 한계가 있는것인가요?
예를들어, 앱으로 가입한 회원들에게 푸시서비스를 한다고 가정했을때, 앱으로 가입하면 자사의 Mysql-DB
에도 회원정보가 입력됩니다. 그럼 만약, 여자 50명, 남자 50명 이렇게 100명 가입했을경우,
남자 50명에게만 푸시를 보내고 싶다면, 어떻게 해야하나요?
자사의 회원 DB와 kinvey-사용자계정과의 관계을 어떻게 정의해서 사용해야 될까요?
궁금증 4
Kinvey 같은 경우, 무료사용자에게 1달에 5백만 푸시콜을 할 수 있도록 되어 있더군요..
그렇다면 무료사용자를 여러개 만들어서 사용한다면, 푸시콜에 제약이 없는것 아닐까요?
예를 들어, 무료계정을 10개를 만들어놓고, KinveyProvider 에서 랜덤으로 무료계정중 1개를
선택해서 푸시를 사용하도록 하면... 되지않나요? ㅎㅎ
궁금증 5
앱이 꺼져있을때에 푸시를 보내면 알림창에 등록되는데, 알림창에 등록된 푸시메세지를 클릭하면
해당 앱이 실행됩니다. 그런데 문제는 알림창에 등록된 푸시메세지가 없어지지 않습니다.
그대로 계속 남아있네요.. 상단에 [지우기] 버튼을 클릭해야 지워집니다..
이것은 버그인가요?
댓글 1
-
가을이다
2014.08.22 00:25
어제 푸시관련해서, 여러가지를 테스트한 결과, 자신의 회원DB를 통해 원하는 조건에 맞는 회원에게만푸시를 보내고 싶을떄, kenvey 회원체계와의 관계를 테스트해봤습니다.그 결과, 푸시를 받을 앱은 첨 실행시 kinvey 에 자동가입시키는것이좋다고 생각을 했습니다. 그리고 제회원 DB에도 해당 kinvey 아이디를 따로 저장하죠..kinvey 아이디는 자동으로 DeviceID로 하면 될것같습니다.PushEvents1.DeviceID 하면 자동으로 핸드폰고유 디바이스아이디를 가져오더군요..회원가입시에, 회원가입아이디가 test_user 라면 가입과동시에 해당스마트폰_디바이스아이디를kinvey 아이디로 등록하고, 사용자 아이디 테이블에 같이 기록하면 될것 같습니다.아래와 같이 말이죠,.----------------------------------------------------------------------------------------회원DB----------------------------------------------------------------------------------------id pw kinvey_idtest_user test1234 dar348nhcacdhn73jdlsdkjadj838nrbg2q0dj그래서, 나중에 test_user한테 푸시를 보내고 싶으면, kinvey_id를 로딩해서 보내면 될것같습니다.그리고, 제가 어제 테스트해본것중에 한가지 팁을 공유해드리면,앱처음 실행시에 디바이스 등록을 무조건 하면 안된다는 것입니다. 처음 디바이드 등록을 한후에,등록한 DeviceID 를 온라인DB에 따로 저장해두고, 다음 실행부터는 디바이스 등록을 이미 했는지를검사한 후에, 이미등록되어 있다면, Active 만 True 로 해주고, 등록이 안되어 있다면 PushEvents1.RegisterDevice;로 등록을 한후, Active = True 해야한다는 점입니다.이유는, 처음앱 실행시, PushEvents1.RegisterDevice; 등록후, 앱을 삭제하고 스마트폰을 부팅한뒤다시 앱을 설치하고 PushEvents1.RegisterDevice; 를 또 호출하게 되면, 같으 푸시메세지가 2번씩 오는현상을 경험했습니다.이부분은, 데브기어 세미나중 [코드 아카데미 세션4: 푸쉬 알림] 동영상 강의중에도 발생했던 부분입니다.동영상 강의중에는 이부분 해결을, 구글_프로젝트를 변경하는 방법으로 우회했지만, 실제 상용서비스를한다면 서비스중에 구글_프로젝트를 변경하는 일은 없어야 할것입니다.### 아래는 제가 테스트했던 방법입니다.1. 앱처음실행시 PushEvents1.Active := True 후 PushEvents1.RegisterDevice;2. 스마트폰 부팅3. 푸시테스트 수신정상4. 앱실행 PushEvents1.Active := True 후 PushEvents1.RegisterDevice;5. 푸시테스트 수신정상6. 앱삭제7. 푸시테스트 동작안함(앱삭제했기에..)8. 앱재설치후 실행 PushEvents1.Active := True 후 PushEvents1.RegisterDevice;9. 푸시테스트 발송1번에 수신 2번씩옴. (문제발생)### 해결책1. 앱처음 실행시 PushEvents1.DeviceID 가 자신의 온라인DB(mysql 등) 에 존재하는지 검사한다.(이것은 DeviceID 가 자신의 서비스에 한번이라도 등록이 됬는지를 검사하는 것임)(이것은 로컬ini파일등으로 하면, 앱삭제시 지워지므로 의미가없음)2. 존재한다면 => PushEvents1.Active := True 만 실행한다.(토큰만 연결함)토큰연결을 한번만 해도, 앱종료시, 스마트폰 부팅후 앱을실행하지 않아도 푸시메세지가 정상 수신됩니다.존재하지않는다면 => PushEvents1.Active := True, PushEvents1.RegisterDevice;로 장비등록후,PushEvents1.DeviceID를 온라인DB에 저장한다.이렇게하면, 사용자가 스마트폰이 바뀌지 않는 이상, 장비등록은 한번만 하고 PushEvents1.Active 만으로도푸시수신설정을 할 수가 있습니다. 물론 스마트폰이 바뀌게 되면, DeviceID 가 변경되기에 다시 등록되겠죠.지금까지, 어제 제가 테스트했던 부분들을 적어드렸습니다.그런데 아직도 해결되지 못한 부분들이 있네요. 데브기어 게시판에서는 아직도 답변이 없구요 ^^해결못한 부분들은 아래부분입니다.=============궁금증 1=============예를들어 푸시를 보냈는데 앱이 꺼져있을경우 푸시 알림창에 보여지게됩니다.그런데 이푸시 내용에 성격을 부여할려고 합니다. 그래서 해당 푸시 내용을 클릭하면 제가만든 앱이실행되는데 실행될때에 해당 푸시성격에 따라 다른 창을 보여주려고 합니다.예를 들어 아래와 같은 성격의 푸시가 있을떄1: 공지사항알림시 2: 업데이트알림시 3: 이벤트알림시이것을 어떻게 구분해서 보낼수 있을까요?..구분할 수 있는 방법이 있나요?Kinvey 에서 푸시보내기 테스트 페이지에서는 그냥 [제목] [메세지] 만 보낼 수 있던데..그렇다고 메세지 내용 끝에다가 구분코드를 넣는것도 아닐꺼구요..또한 푸시알림창을 클릭해서 앱실행시, 앱실행 초기에 어떤 푸시를 클릭해서 들어온지도 알수 있어야할것 같습니다. 그래야 푸시성격에 맞쳐 화면을 보여줄수 있을테니까요..=============궁금증 2=============앱이 꺼져있을때에 푸시를 보내면 알림창에 등록되는데, 알림창에 등록된 푸시메세지를 클릭하면해당 앱이 실행됩니다. 그런데 문제는 알림창에 등록된 푸시메세지가 없어지지 않습니다.그대로 계속 남아있네요.. 상단에 [지우기] 버튼을 클릭해야 지워집니다..이것은 버그인가요?