Ask Your Question

casper7609's profile - activity

2018-11-27 18:56:04 +0900 received badge  Famous Question (source)
2018-09-17 18:59:03 +0900 received badge  Famous Question (source)
2018-09-17 10:45:33 +0900 received badge  Notable Question (source)
2018-09-17 10:45:33 +0900 received badge  Popular Question (source)
2018-09-15 13:05:24 +0900 received badge  Famous Question (source)
2018-09-12 17:01:03 +0900 asked a question 로드 밸런서 관련 질문입니다.

안녕하세요. 서비스 중 예기치 못한 사태를 방지하기 위해 로드 밸런서로 2개의 VM을 통해 안정성을 높일 수 있다는 조언을 들어서 질문 드릴려고 합니다.

현재 Flavor 로 분산 구조를 구현하지 않고, 단일 VM에 funapi 서버 + leaderboard + biller + announcer 를 설치하여 사용하고 있습니다.

현재 VM을 한개 더 복사하여 로드 밸런서 뒤에 2대를 놓는다면, 두 서버가 동일한 MySql DB를 바라본다는 가정하에 문제가 발생할 수 있을까요?

또한, 채팅 메세지나 BroadcastLocally 그리고 RPC 서비스가 두 VM에 분산된 유저에게 동작을 하는지 궁금합니다.

현재 별 무리가 없다면,

로드밸런서 => VM1 -> funapi서버 + leaderboard + biller + announcer + MongoDB(이벤트 로깅용) => 동일 MySql

로드밸런서 => VM2 -> funapi서버 + (VM1의 위 항목을 바라봄) => 동일 MySql

자체 제작 모니터링 툴 => 로드밸런서의 8014 포트로 RPC 요청

의 방식으로 해야지 않을까 생각중입니다.

항상 도와주셔서 감사드립니다.

2018-09-05 23:00:01 +0900 commented answer 서버가 가끔 crash나는 현상이 발생합니다.

안녕하세요! 이전에 말씀 주신 이메일로 문의 드렸습니다. 확인 좀 부탁드립니다.ㅠㅠ

2018-09-04 17:36:14 +0900 commented answer 서버가 가끔 crash나는 현상이 발생합니다.

현재 실서비스 중이라 말씀 주신 parameter를 변경하긴 어려울 것 같아서 정기점검을 진행한 뒤에 적용해 보도록 하겠습니다. 혹시 더 필요한 정보가 있다면 말씀 부탁드립니다. 제 부족함에 고생이 많으십니다.ㅠㅠ 좋은 하루 되세요!

2018-09-04 17:33:15 +0900 commented answer 서버가 가끔 crash나는 현상이 발생합니다.

안녕하세요 제가 좀 더 자세히 전달 드렸어야 했는데 죄송합니다. 일단 azure mysql 서비스의 gen 5 와 vcore 2 계층을 쓰고 있었습니다. 그쪽이 max connection이 제기억에 150개?정도로 지원하는걸로 기억하는데 현재 gen5의 vcore 4계층으로 업그레이드 했습니다. 크래시는 현재까진 나지 않았구요. 이전 크래시도 2~3일 기간동안 한번 발생한 경우입니다.

2018-09-04 04:38:04 +0900 commented answer 서버가 가끔 crash나는 현상이 발생합니다.

네네 감사합니다! 한번 적용해 보도록 하겠습니다!

2018-09-03 13:25:45 +0900 answered a question 서버가 가끔 crash나는 현상이 발생합니다.

안녕하세요 일단 이곳에 올리겠습니다.

E0902 18:14:52.081010 102191 curl.cc:166] curl_easy_perform() failed: 56
E0902 18:14:52.085912 102191 google_plus_authentication.cc:80] Failed to authenticate google plus. http request failure. error code=56, error desc=Failure when receiving data from the peer
E0902 18:14:52.086588 102191 (Mono)Server.HandleLogin.cs:188] Failed to verify the authentication.
E0902 18:18:30.049185 102188 curl.cc:166] curl_easy_perform() failed: 56
E0902 18:18:30.049405 102188 google_plus_authentication.cc:80] Failed to authenticate google plus. http request failure. error code=56, error desc=Failure when receiving data from the peer
E0902 18:18:30.051548 102188 (Mono)Server.HandleLogin.cs:188] Failed to verify the authentication.
E0902 18:36:15.820564 102188 curl.cc:166] curl_easy_perform() failed: 56
E0902 18:36:15.826800 102188 google_plus_authentication.cc:80] Failed to authenticate google plus. http request failure. error code=56, error desc=Failure when receiving data from the peer
E0902 18:36:15.827343 102188 (Mono)Server.HandleLogin.cs:188] Failed to verify the authentication.
E0902 18:53:11.262465 102188 curl.cc:166] curl_easy_perform() failed: 56
E0902 18:53:11.262734 102188 google_plus_authentication.cc:80] Failed to authenticate google plus. http request failure. error code=56, error desc=Failure when receiving data from the peer
E0902 18:53:11.263173 102188 (Mono)Server.HandleLogin.cs:188] Failed to verify the authentication.
E0902 19:07:50.617856 102190 curl.cc:166] curl_easy_perform() failed: 56
E0902 19:07:50.618100 102190 google_plus_authentication.cc:80] Failed to authenticate google plus. http request failure. error code=56, error desc=Failure when receiving data from the peer
E0902 19:07:50.618578 102190 (Mono)Server.HandleLogin.cs:188] Failed to verify the authentication.
E0902 19:07:53.326472 102191 (Mono)Server.HandlePvPMyInfo.cs:117] System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[funapi.Session,System.String].get_Item (funapi.Session key) [0x00000] in <filename unknown>:0 
  at InfiniteSlayers.Server.OnPvPMyInfo (funapi.Session session, Newtonsoft.Json.Linq.JObject message) [0x00008] in /home/casper7609/xxxx-source/mono/Server/PvP/Server.HandlePvPMyInfo.cs:17 
E0902 19:07:53.366467 102189 (Mono)Server.HandlePvPMyInfo.cs:117] System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[funapi.Session,System.String].get_Item (funapi.Session key) [0x00000] in <filename unknown>:0 
  at InfiniteSlayers.Server.OnPvPMyInfo (funapi.Session session, Newtonsoft.Json.Linq.JObject message) [0x00008] in /home/casper7609/xxxx-source/mono/Server/PvP/Server.HandlePvPMyInfo.cs:17 
E0902 19:07:53.366804 102189 (Mono)Server.HandlePvPHistory.cs:108] System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[funapi.Session,System.String].get_Item (funapi.Session key) [0x00000] in <filename unknown>:0 
  at InfiniteSlayers.Server.OnPvPHistory (funapi.Session session, Newtonsoft.Json.Linq.JObject message) [0x00008] in /home/casper7609/xxxx-source/mono/Server/PvP/Server.HandlePvPHistory.cs:17 
E0902 20:02:40.737157 102190 curl.cc:166] curl_easy_perform ...
(more)
2018-09-03 09:36:19 +0900 received badge  Famous Question (source)
2018-09-02 21:46:42 +0900 commented answer 서버가 가끔 crash나는 현상이 발생합니다.

안녕하세요! 현재 서버를 릴리즈 하였는데 크래쉬가 다시 나서 확인을 부탁드려도 될지요? 로그는 수집했으며 전달 드릴 수 있는 방안을 알려주시면 감사하겠습니다.

2018-08-06 02:34:22 +0900 received badge  Notable Question (source)
2018-08-06 02:22:33 +0900 received badge  Notable Question (source)
2018-07-24 09:13:38 +0900 commented answer 서버가 가끔 crash나는 현상이 발생합니다.

부하테스트 중에 발생한 상황인데 그때 로그 수집이 여의치가 않네요...추후에 다시 발생하면 좀 더 자세하게 올리도록 하겠습니다 ㅠㅠ

2018-07-23 10:51:02 +0900 received badge  Popular Question (source)
2018-07-21 16:13:24 +0900 asked a question 서버가 가끔 crash나는 현상이 발생합니다.

안녕하세요! 클라우드에 서버를 올려서 테스트중에 개발환경에서는 발생하지 않던 가끔 crash 나서 질문드립니다. 로그메세지를 참조 및 개발 환경과 차이나는 부분은 mysql이 azure측 mysql 서버로 따로 분리되있는 점 말고는 크게 차이가 없는것 같은데 혹시 이것과 관련이 있을지요?

F0721 15:56:22.486826 67704 mariadb.cc:777] Assert failed: false: * Check failure stack trace: * E0721 15:56:22.487330 67704 framework.cc:54] System has been crashed. (1.0.0-2619trusty) E0721 15:56:22.487370 67704 framework.cc:64] Shutdown AccountManager. E0721 15:56:22.487401 67704 framework.cc:64] Shutdown EventDispatcher. E0721 15:56:22.587730 67704 framework.cc:64] Shutdown ObjectLeaser. E0721 15:56:22.587821 67704 framework.cc:64] Shutdown ObjectTransaction. E0721 15:56:22.588055 67704 framework.cc:64] Shutdown ObjectDatabase. E0721 15:56:22.588101 67704 framework.cc:64] Shutdown ZookeeperClient. E0721 15:56:23.648319 67704 main.cc:193] Crashdump written to /var/crash/funapi/infinite_slayers/4e2fa3dc-587e-89ca-2921b578-2074cbef.dmp /usr/share/funapi/bash/launcher-common.sh: line 89: 67689 Segmentation fault (core dumped) $fork_prefix $FUNAPI_BIN_DIR/funapi_runner $args $@ [ERROR] infinite_slayers_server@SaintRelease termianted with 139.

Analyzing crashdump /var/crash/funapi/infinite_slayers/4e2fa3dc-587e-89ca-2921b578-2074cbef.dmp

OS Linux 0.0.0 Linux 4.4.0-130-generic #156~14.04.1-Ubuntu SMP Thu Jun 14 13:51:47 UTC 2018 x86_64 CPU amd64 family 6 model 63 stepping 2 4 Crash SIGSEGV 0x100000040 14

0 libglog.so.0.0.0 (+0x10dbe) 1 (+0x7fee67ff8c20) 2 libglog.so.0.0.0 (+0x10ce4) 3 libglog.so.0.0.0 (+0x11112) 4 libglog.so.0.0.0 (+0x106e6) 5 libglog.so.0.0.0 (+0x104fb) 6 funapi_runner: fun::SqlConnection::OnEvent(int) (+0xbc) 7 funapi_runner: fun::Mariadb::Impl::ProcessAsyncIoLoop() (+0x1f3) 8 libboost_thread.so.1.54.0 (+0xba4a) 9 libpthread-2.19.so (+0x8184) 10 libc-2.19.so (+0xfe03d)

2018-07-20 14:20:05 +0900 received badge  Notable Question (source)
2018-07-20 14:20:05 +0900 received badge  Popular Question (source)
2018-05-18 09:52:33 +0900 commented answer Missing ApiService finisher 로그 질문드립니다.

일단 분산서버 쪽으로 따로 프로젝트 만들어서 돌려봐야겠네요 답변 감사드립니다!

2018-05-18 09:51:43 +0900 commented answer Missing ApiService finisher 로그 질문드립니다.

음 제가 이해한 방식은 서버 머신이 A,B,C가 있고 거기에 각각 단일서버(인증,재화 등등 모든 기능 처리)를 설치하고 A머신에 주키퍼에 A,B,C의 단일 서버가 연결되서 클라이언트들이 A서버에 연결하면 A,B,C로 자동으로 분산되는게 아닌가 했습니다. 전부 ORM을 사용하구요.

2018-05-18 09:42:08 +0900 commented answer Missing ApiService finisher 로그 질문드립니다.

오 그렇군요 감사합니다!

2018-05-18 09:41:16 +0900 commented answer Missing ApiService finisher 로그 질문드립니다.

음..코드상으론 private static funapi.http.Response OnGetUsers(funapi.http.Request request) { funapi.http.Response response = new funapi.http.Response (); try { //할거 } catch { } return response; } 이런식으로 해놓아서 무조건 보낼것 같은데 좀 더 확인해보겠습니다 감사합니다!

2018-05-18 09:37:32 +0900 commented answer Missing ApiService finisher 로그 질문드립니다.

아..알겠습니다. 로그 메세지가 쌓여서 조금 그랬는데 해당 변수를 조금 조절해봐야겠네요 감사합니다!

2018-05-18 09:24:00 +0900 asked a question Missing ApiService finisher 로그 질문드립니다.

안녕하세요 현재 Azure에 서버를 배포해서 베타 테스트를 진행하는중 몇가지 문제가 있어서 질문드립니다.

1) 운영툴에서 서버의 api를 콜하면 W0518 08:43:05.342229 10327 api_service.cc:159] Missing ApiService finisher: "GET /users/ 와 같은 경고가 지속적으로 뜨면서 반응이 없습니다. 제 로컬 컴퓨터에서 테스팅할때는 문제가 없었는데 배포 뒤에 이 현상이 계속 발생하네요.

2) E0518 08:41:44.603549 10357 mariadb.cc:1439] Reconnect to database servers(2 connections): address= E0518 08:41:47.508358 10357 mariadb.cc:1146] disconnected from database: host=... 와 같은 에러 문구가 지속적으로 뜨는데 db쪽의 connection timeout 변수와 관계가 있을까요?

3) 현재 flavor를 사용하지 않고 단일 서버로 일단 개발했는데 zookeeper를 통해서 머신 2~3대에 동일한 단일 서버를 배포해서 분산 처리가 되는지 궁금합니다.

4) 서버에서 클라이언트의 tcp 세션이 끊어졌는지 알수 있는 방법이 있을까요? 예를들어 session.IsConnected 같은 방식이 있을지요?

감사합니다.

2018-05-08 14:40:49 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

새로 프로젝트 만들어서 확인하다보니, 현재 쓰고있는 VM 메모리 부족때매 발생한 현상 같습니다...;;메모리 늘려줬더니 정상적으로 빌드되네요.ㅠㅠ

2018-05-08 12:00:59 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

네네 동일한 에러가 발생합니다. 이상하게 모노에서는 현재도 잘 돌고 있는데 이런 현상이 발생하네요

2018-05-08 11:59:55 +0900 received badge  Popular Question (source)
2018-05-08 11:55:40 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

지금 해당 json 파일이 있는위치를 확인했는데 이전에 사용했던(지금 사용하지 않는) 이름의 .h 파일들이 보이네요. 혹시 이 파일들을 제거해야 되는건가요?

2018-05-08 11:50:01 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

아 답변으로 올렸습니다 ㅎㅎ추후에 삭제하도록 할게요!

2018-05-08 11:49:18 +0900 answered a question C# 프로젝트 빌드 중 오류 질문드립니다.

{ "CreatedUserCount": { "ServerName": "String(20) Key",// "CreatedCount": "Integer" }, "GooglePlusAccount": { "ClientId": "String(24) Key", "Email": "String(74)", "DisplayName": "String(64)", "User": "User Foreign" }, "UserName": { "UserName": "String(20) Key", "User": "User Foreign" }, "User": { "HashId": "String(16) KEY", "UserName": "String(20)",//사용자 이름 "HasChangedUserName": "Boolean", "AuthType": "Integer",//EAuthType "IsAdmin": "Boolean", //Admin 이면 게임에 아무런 영향도 주지 않는다 ex.) 랭킹이나 그런데 포함 안됨, PvP MatchMaking에 포함 안됨 등등 "IsBanned": "Boolean",//차단된 사용자 "BannedTimeFrom": "Integer", "BannedTimeTo": "Integer", "BannedReason": "String(256)", "UserLevel": "Integer",//사용자 레벨 "Gold": "Double",//골드, 캐릭터 가짜 레벨업에 사용 "Gem": "Integer",//젬 "GemAccum": "Integer",//gem received, except for purchase "CharacterPoint": "Integer",//캐릭터 진짜 레벨업, 스킬 업에 사용 "ItemPoint": "Integer",//아이템 레벨업에 사용 "DungeonKey": "Integer",//던전 입장에 사용 "DungeonKeyRechargeTime": "Integer", "PvPEnabled": "Boolean",//Can Play PvP? 500 stage clear is required "PvPPoint": "Integer",//PvP 입장에 사용 "PvPPointRechargeTime": "Integer", "BonusBoxRechargeTime": "Integer", "AdGoldTimeLeft": "Integer",//Gold rewarded Ad time left, 단위: 초 "DoubleSpeedTimeLeft": "Integer",//2배 속도 남은 시간, 단위: 초 "TripleSpeedTimeLeft": "Integer",//3배 속도 남은 시간, 단위: 초 "CreationDate": "Integer",//생성 날짜 "LastLoginTime": "Integer",//마지막 로그인 시각 "LastAliveTime": "Integer",//Used For OfflineStage and to show the most recent active time "LastResetStageTime": "Integer",//

    "PossibleOfflineStage": "Integer",//최대 오프라인 시 도달 스테이지
    "CurrentStage": "Integer",
    "MaxStage": "Integer",
    "ReturnCount": "Integer",//귀환 횟수

    "AdWatchCount": "Integer",//how many times user has watched ad?
    "Payment": "Double",//how much this user paid us in currency


    "BonusBoxEnabled": "Boolean",//Can Open BonusBox? 150 stage clear is required
    "BerserkEnabled": "Boolean",//Can Use Berserk? 30 stage clear is required
    "ItemForgeEnabled": "Boolean",//Can Use Use Item Forge? 250 stage clear is required
    "HasReferredUser": "Boolean",//HasReferredUser


    "HurdleStage": "Integer",
    "PvPCount": "Integer",
    "PvPReward": "PvPReward Foreign",

    "DailyQuestResetTime": "Integer",
    "WeeklyQuestResetTime": "Integer",

    "RewardsPerHundred": "Integer[]",
    "BanHistories": "BanHistory[] Foreign",
    "SystemMails": "SystemMail[] Foreign",
    "CharacterDatas": "CharacterData[] Foreign",
    "PetInstances": "ItemInstance[] Foreign",
    "Investments": "Investment[] Foreign",
    "Quests": "Quest[] Foreign",
    "PvPResults": "PvPResult[] Foreign",
    "PvPWinRatio": "PvPWinRatio Foreign",
    "GooglePlusAccount": "GooglePlusAccount Foreign"
  },
  "BanHistory": {
     "User": "User Foreign",
     "IsBanned": "Boolean",
     "BannedTimeFrom": "Integer",
     "BannedTimeTo": "Integer",
     "BannedReason": "String(256)"
  },
  "Coupon": {
     "RewardKey": "String(20) KEY",
     "User": "User Foreign",
     "ReceivedTime": "Integer"
  },
  "SystemMail": {
     "User": "User Foreign",
     "Title": "String(128)",
     "TitleTemplate": "Integer",
     "Sender": "String(128)",
     "Message": "String(1024)",
     "MessageTemplate": "Integer",
     "SystemRewards": "SystemReward[] Foreign",
     "CreatedTime": "Integer",
     "ReceivedTime": "Integer",
     "DeletedTime": "Integer",
     "HasReceived": "Bool"
  },
  "SystemReward": {
     "SystemMail": "SystemMail Foreign",
     "RewardType": "Integer",
     "Count": "Integer"
  },
  "Investment": {
     "User": "User Foreign",
     "InvestmentId": "Integer",
     "CurrentCount": "Integer",
     "Level": "Integer"
  },
  "Quest": {
     "User": "User Foreign",
     "QuestType": "Integer",
     "CurrentCount": "Integer",
     "HasReceivedReward": "Bool"
  },
  "ItemInstance": {
     "User": "User Foreign",
     "CharacterData": "CharacterData Foreign",
     "ItemId": "Integer",//EItemId
     "ItemType": "Integer",//EItemType
     "Proficiency": "Integer",
     "CharacterType": "Integer",//ECharacterType. When it's None it doesn't belong to character, it belongs to user. Maybe implemented sometime later.
     "Level": "Integer",
     "IsUnlocked": "Bool",
     "IsEquipped": "Bool",
     "RemainingUses": "Integer"
  },
  "CharacterSkillLevel": {
     "CharacterData": "CharacterData Foreign",
     "CharacterType": "Integer",//ECharacterType
     "SkillId": "Integer",//ESkillIdType
     "Level": "Integer",
     "IsPassive": "Bool"
  },
  "CharacterData": {//Actual Character User Owns
     "User": "User Foreign",
     "CharacterType": "Integer",//ECharacterType
     "GoldLevel": "Integer",
     "RealLevel": "Integer",
     "ActiveType": "Integer",
     "PvPActiveType": "Integer",
     "IsUnlocked": "Bool",
     "CharacterSkillLevels": "CharacterSkillLevel[] Foreign",
     "ItemInstances": "ItemInstance[] Foreign"
  },
  "PvPResult": {
     "User": "User Foreign",
     "Time": "Integer",
     "ResultFromAttacker": "Integer",
     "AttackerUserId": "String(36)",
     "AttackerScore": "Double",
     "AttackerScoreDiff": "Double",
     "AttackerEloDiff": "Double",
     "DefenderUserId": "String(36)",
     "DefenderScore": "Double",
     "DefenderScoreDiff": "Double",
     "DefenderEloDiff": "Double"
  },
  "PvPWinRatio": {
     "User": "User Foreign",
     "Win": "Integer",
     "Lose": "Integer",
     "Draw": "Integer"
  },
  "PvPReward": {
     "User": "User Foreign",
     "PreviousScore": "Integer",
     "PreviousRank": "Integer ...
(more)
2018-05-08 11:45:14 +0900 commented answer C# 프로젝트 빌드 중 오류 질문드립니다.

아..파일 업로드할려면 10포인트가 필요한듯 합니다..혹시 메일 주소를 알 수 있을지요?

2018-05-08 09:15:05 +0900 asked a question C# 프로젝트 빌드 중 오류 질문드립니다.

안녕하세요. 배포용 패키지를 만들려고 빌드하는 도중 오류가 나서 질문드립니다.

오류 내용은 다음과 같습니다.

root@ubuntu:/home/test/test_proj-build/debug# make
Not using ccache.
No flavor was given. Adding a default flavor
-- Configuring done
-- Generating done
-- Build files have been written to: /home/test/test_proj-build/debug
[  2%] Extracting a build number from the source tree.
-- Found Git: /usr/bin/git (found version "1.9.1") 
Build number from is 8a460ea~dirty
[  2%] Built target extract_buildno
[  7%] Built target internal_create_launchers
[  9%] Built target internal_import_manifest_dirs
[ 16%] Built target internal_import_resource_dirs
[ 19%] Generating /home/test/test_proj-source/src/test_proj_object.h, /home/test/test_proj-source/src/object_model/test_proj_object.cc, /home/test/test_proj-source/src/test_proj_object.py, /home/test/test_proj-source/src/../mono/ObjectModel/test_proj_object.cs
/usr/lib/python2.7/dist-packages/funapi/json/__init__.pyc
Scanning dependencies of target test_proj
[ 21%] Building CXX object src/CMakeFiles/test_proj.dir/object_model/test_proj_object.cc.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
make[2]: *** [src/CMakeFiles/test_proj.dir/object_model/test_proj_object.cc.o] Error 4
make[1]: *** [src/CMakeFiles/test_proj.dir/all] Error 2
make: *** [all] Error 2

혹시 어느곳을 확인해야되는지 가이드 해주시면 감사하겠습니다.

좋은 하루 되세요!

2018-05-01 22:08:57 +0900 received badge  Notable Question (source)
2018-04-12 14:24:09 +0900 commented answer 구글 결제 검증 관련 질문드립니다.

아 이제 해결했습니다. 제가 구글쪽 가이드의 4번항목을 빠트려서 발생한 현상이네요. 3번항목에서 주는 값이 refresh token인줄 알았는데 한 단계가 더있었네요. ㅠㅠ 여러모로 번거롭게 해서 죄송합니다! 좋은 하루 되세요!

2018-04-12 14:07:01 +0900 received badge  Popular Question (source)
2018-04-12 13:58:46 +0900 commented answer 구글 결제 검증 관련 질문드립니다.

얻어왔는데 방법이 뭔가 잘못되었나보네요 ㅠㅠ 아 지금 다시 확인해보니 3번항목 에서 얻어오는 값이 refresh token 이 아닌가보군요..다시 해보고 말씀드리겠습니다.

2018-04-12 13:58:29 +0900 commented answer 구글 결제 검증 관련 질문드립니다.

https://accounts.google.com/o/oauth2/.... 에서 redirect_uri 에 이전에 쓰던 baas 서버의 인증 주소를 임시로 넣고, client_id 항목에 구글 api의 사용자 인증정보 -> 웹 클라이언트(웹 어플리케이션 유형)의 클라이언트 ID를 입력하여서 인터넷 주소창에 넣어

2018-04-12 13:55:36 +0900 commented answer 구글 결제 검증 관련 질문드립니다.
  1. 외부 서비스 지원 Part 2: 결제 검증 > 22.3. 게임 서버 측 결제 검증 설정 파라미터 항목의 (자세한 내용은 GooglePlay Authorization 문서 참고) 항목을 따라가서 1. Generating a refresh token 항목을 따라했습니다. 글이 길어서 밑에 코멘트에 더 쓰겠습니다.
2018-04-12 13:55:36 +0900 received badge  Commentator
2018-04-11 22:03:29 +0900 asked a question 구글 결제 검증 관련 질문드립니다.

안녕하세요. 이제 결제 검증 쪽 구현하고 있는데 잘 안되어서 질문 드립니다. ㅠㅠ

I0411 21:34:57.043345  3601 billing_agent.cc:1401] begin to authenticate google api server account: google paly client id(~~.apps.googleusercontent.com)
I0411 21:34:57.043493  3601 google_play_adapter.cc:289] begin to refresh google api access token: ~~.apps.googleusercontent.com
I0411 21:34:57.043582  3601 google_play_adapter.cc:48] try to request google api access token: google client id(~~.googleusercontent.com), google client secret(...), google refresh token(4/~~)
W0411 21:34:57.296624  3623 google_play_adapter.cc:112] status code is not OK(200): 400
W0411 21:34:57.296880  3623 google_play_adapter.cc:126] failed to get google api access token: {"error":"invalid_grant","error_description":"Bad Request"}
W0411 21:34:57.297214  3623 google_play_adapter.cc:450] google play authentication failed: 1
W0411 21:34:57.297327  3623 google_play_adapter.cc:503] failed to refresh google api access token: google client id(~~.apps.googleusercontent.com)
W0411 21:34:57.297412  3623 billing_agent.cc:1229] failed to get google api access token: error(Funapi-Biller: wrong service provider authentication key(6)), session(85e88583-b80c-4702-bdec-5a907facfaf8(state: kCreated, client_id: ~~, gp_client_id:~~.apps.googleusercontent.com, gp_client_secret: ~~, gp_refresh_token: 4/~~))

대강 저런식으로 로그가 뜨는데요. 뭔가 메인 서버에 입력한 정보가 맞지 않아서 발생하는 것 같긴한데 구글쪽에서 refresh token 을 받아 오려할때,

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=...

부분에서 client_id 부분은 ~~.apps.googleusercontent.com 같은 값으로 넣어주는게 맞는것 같은데 redirect_uri 부분을 알수가 없네요. 혹시 이부분이 billing 서버의 특정 주소가 입력 되어야 하는건가요? 혹시 그렇다면 예시를 좀 부탁드려도 될지요?

미리 감사합니다. 좋은 하루 되세요!

2018-04-11 21:44:52 +0900 received badge  Notable Question (source)
2018-03-30 19:16:09 +0900 received badge  Notable Question (source)
2018-03-30 19:13:55 +0900 received badge  Notable Question (source)