Esocial — различия между версиями
Agava (обсуждение | вклад) (→Отправка подарка) |
Vlegkun (обсуждение | вклад) |
||
(не показано 11 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
[[Object|Объект]] '''Esocial''' обеспечивает связь между приложением и Facebook'ом. | [[Object|Объект]] '''Esocial''' обеспечивает связь между приложением и Facebook'ом. | ||
+ | |||
=Параметры= | =Параметры= | ||
+ | |||
+ | [[Файл:Esocial_full.jpg|right]] | ||
− | [[ | + | ==Общие== |
− | *''' | + | |
− | *''' | + | *'''facebook''' ''(facebook)'' - Ссылка на объект типа ''[[Facebook]]'', с которым будет работать объект. |
− | *'''таблица друзей''' - | + | *'''economics''' ''(economics)'' - Ссылка на объект типа ''[[Economics]]'', с которым будет работать объект. |
− | *''' | + | *'''esocialfrienditem''' ''(esocialfrienditem)'' - Ссылка на объект типа ''[[esocialfrienditem]]'', с которым будет работать объект. |
− | *'''опции для facebook''' - | + | *'''таблица друзей''' ''(friends)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. Заполнить таблицу - вызвать объекту состояние friends |
− | *'''социальная сеть''' - | + | *'''таблица приглашаемых друзей''' ''(friendsnotinst)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. Заполнить таблицу - вызвать объекту состояние friends_not_inst |
+ | *'''шаблон вверху таблтицы''' ''(invtemplate)'' - Объект, который всегда будет первым в таблице приглошаемых друзей, если он задан | ||
+ | *'''индикатор активности''' ''(activity)'' - Объект - индикатор активности. Будем менять ему визибл | ||
+ | *'''опции для facebook''' ''(fbopt)'' - Поле в опциях, куда мы будем сохранять упакованное в 32-битное целое Уровень + Коллекции. ESocial добавит к ним число друзей и засабмит при вызове соотв. состояние. | ||
+ | *'''социальная сеть''' ''(socialnet)'' - социальная сеть: фейсбук=0,гугл=1,обе=2. | ||
+ | *'''дублировать очки в parse''' ''(parse)'' - дублировать очки в parse: нет=0,да=1. | ||
+ | *'''лидерборд parse''' ''(parselb)'' - Имя главной таблицы в parse. | ||
+ | *'''перемешивать приглашаемых''' ''(shuffleinv)'' - перемешивать или сортировать приглашаемых друзей: нет=0,да=1,сортировать=2. | ||
+ | *'''добавлять из лидербордов''' ''(addinv)'' - добавлять приглашаемых друзей из глобальных лидербордов (кол-во). | ||
+ | *'''прятать приглашенных''' ''(hideinv)'' - прятать приглашенных друзей (аналогично вайберу): нет=0, да=1. | ||
+ | *'''размер аватарки''' ''(picsize)'' - размер автарки (value="128" min="32"). | ||
+ | *'''проверять группу''' ''(checkgroup)'' - Проверять вхождение в группу с id. | ||
+ | *'''вступать в сообщество''' ''(joincommunity)'' - вступать в сообщество (пока только вконтакте). | ||
+ | *'''дарение коллекционных''' ''(gift_type)'' - 0 - дарим то что есть, при успехе вычитаем, 1 - дарим любой, при успехе не вычитаем. | ||
+ | *'''подарки через parse''' ''(gift_parse)'' - 0 - дарим через соцсеть, 1 - дарим через парс, через соцсеть - только уведомления: нет=0, да=1. | ||
− | |||
− | |||
− | |||
− | |||
+ | ==Подарки== | ||
− | *''' | + | *'''специальные подарки''' |
− | **''' | + | **'''подарок энергия id''' ''(gift_en_id)'' - подарок энергия id; |
− | **''' | + | **'''подарок энергия количество''' ''(gift_en_amount)'' - подарок энергия количество; |
+ | **'''учитывать максимум энергии''' ''(gift_en_max)'' - 0 - не учитывать, 1 - учитывать; нет=0,да=1; | ||
+ | **'''подарок монеты id''' ''(gift_res1_id)'' - подарок монеты id; | ||
+ | **'''подарок монеты количество''' ''(gift_res1_amount)'' - подарок монеты количество; | ||
+ | **'''принимать подарки не чаще (сек)''' ''(gift_delay)'' - Принимать подарки с ресурсами не чаще заданного количества секунд. Работает только для энергии/res1 и только для парсовых подарков. | ||
+ | *'''запрос подарка''' | ||
+ | **'''текст''' ''(wishtxt)'' - Общий текст запроса подарка; | ||
+ | **'''завершающий текст''' ''(wishtxt2)'' - Текст, который будет добавлен после списка предметов; | ||
+ | **'''таблица''' ''(wishtbl)'' - Таблица, куда сложим множественный запрос подарков; | ||
+ | **'''ссылка''' ''(href)'' - Ссылка для публикации вишлиста на стене гугл. | ||
− | *''' | + | *'''отправка подарка''' |
− | **''' | + | **'''заголовок''' ''(gift_t)'' - заголовок инвайта; |
− | **''' | + | **'''сообщение''' ''(gift_m)'' - текст инвайта; |
− | **''' | + | **'''ограничение''' ''(gift_max)'' - ограничение на число подарков в день; |
+ | **'''счетчик''' ''(gift_cnt)'' - счетчик текущих подарков; | ||
+ | **'''заголовок уведомления''' ''(gift_not_t)'' - заголовок уведомления; | ||
+ | **'''сообщение уведомления''' ''(gift_not_m)'' - сообщение уведомления; | ||
+ | **'''viber url''' ''(gift_viber_url)'' - viber url инвайта. | ||
+ | *'''запрос подарка''' | ||
+ | **'''заголовок''' ''(ask_t)'' - заголовок инвайта; | ||
+ | **'''сообщение''' ''(ask_m)'' - текст инвайта. | ||
− | *''' | + | *'''окно дарения из окна коллекций''' |
− | **''' | + | **'''окно''' ''(wndcolgift)'' - Некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open; |
− | **''' | + | **'''иконка''' ''(icocolgift)'' - Иконка предмета; |
+ | **'''текст (объект)''' ''(txtcolgift)'' - Текстовый объект в окошке; | ||
+ | **'''описание (объект)''' ''(dsccolgift)'' - Текстовый объект в окошке, в который сложим описание предмета; | ||
+ | **'''esocialfrienditem''' ''(itemcolgift)'' - Ссылка на объект типа esocialfrienditem, с которым будет работать объект; | ||
+ | **'''таблица друзей''' ''(tblcolgift)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. | ||
+ | *'''окно дарения с двумя списками''' | ||
+ | **'''скроллить таблицы''' ''(scroll_gifts)'' - Скроллть таблицы; | ||
+ | **'''esocialfrienditem''' ''(fritwndgift)'' - Ссылка на объект типа esocialfrienditem, с которым будет работать объект; | ||
+ | **'''таблица друзей''' ''(frtblwndgift)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem; | ||
+ | **'''esocialgiftitem''' ''(giitwndgift)'' - Ссылка на объект типа esocialfrienditem, с которым будет работать объект; | ||
+ | **'''таблица подарков''' ''(gitblwndgift)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem; | ||
+ | **'''иконка''' ''(icowndgift)'' - Иконка предмета; | ||
+ | **'''текст (объект)''' ''(txtwndgift)'' - Текстовый объект в окошке; | ||
+ | **'''описание (объект)''' ''(dscwndgift)'' - Текстовый объект в окошке, в который сложим описание предмета; | ||
+ | **'''esocialgiftitem инв.''' ''(giitwndgift_i)'' - Ссылка на объект типа esocialfrienditem, с которым будет работать объект; | ||
+ | **'''таблица подарков инв.''' ''(gitblwndgift_i)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. | ||
− | *''' | + | *'''окно дарения из лидербордов''' |
− | **''' | + | **'''иконка друга''' ''(icofrwndgift)'' - Иконка друга; |
− | **''' | + | **'''имя друга''' ''(txtfrwndgift)'' - Имя друга; |
− | **''' | + | **'''таблица вишлиста''' ''(wishtblwndgift)'' - Таблица вишлиста друга; |
+ | **'''таблица подарков''' ''(gitblwndgift2)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem; | ||
+ | **'''иконка выбранного подарка''' ''(icofrgiwndgift)'' - Иконка выбранного подарка; | ||
+ | **'''цена выбранного подарка''' ''(cntfrgiwndgift)'' - Цена выбранного подарка; | ||
+ | **'''иконка выбранного подарка 2''' ''(icofrgiwndgift2)'' - Иконка выбранного подарка; | ||
+ | **'''цена выбранного подарка 2''' ''(cntfrgiwndgift2)'' - Цена выбранного подарка. | ||
+ | *'''окно приема подарка''' | ||
+ | **'''окно''' ''(wndgetgift)'' - Некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open; | ||
+ | **'''иконка''' ''(icogetgift)'' - Иконка предмета; | ||
+ | **'''текст (объект)''' ''(txtgetgift)'' - Текстовый объект в окошке; | ||
+ | **'''имя''' ''(namegetgift)'' - Тектовый объект куда будет занесено имя друга; | ||
+ | **'''аватарка''' ''(avagetgift)'' - Аватарка друга; | ||
+ | **'''giftreceiveitem''' ''(giftreceiveitem)'' - Объект типа giftreceiveitem; | ||
+ | **'''таблица''' ''(giftreceivetable)'' - Таблица, в которую будем складывать giftreceiveitem. | ||
− | + | *'''окно входящих запросов подарков''' | |
− | + | **'''giftreceiveitem''' ''(giftaskitem)'' - Объект типа giftreceiveitem; | |
− | **''' | + | **'''таблица''' ''(giftasktable)'' - Таблица, в которую будем складывать giftreceiveitem. |
− | |||
− | **''' | ||
− | |||
− | |||
− | + | ==Инвайты== | |
− | |||
− | |||
− | |||
− | |||
+ | *'''инвайт''' | ||
+ | **'''заголовок''' ''(invite_t)'' - заголовок инвайта; | ||
+ | **'''сообщение''' ''(invite_m)'' - текст инвайта; | ||
+ | **'''viber url''' ''(invite_viber_url)'' - viber url инвайта; | ||
+ | **'''время повтора''' ''(invite_tm)'' - время в секундах, когда можно повторно пригласить того же игрочка. | ||
− | *''' | + | *'''успешный инвайт''' |
− | *''' | + | **'''окно''' ''(invsuc_w)'' - само окошко успешного инвайта, должно иметь состояние show, на закрытие вызывать next_inv есошиалу; |
− | *''' | + | **'''портрет''' ''(invite_i)'' - портрет игрока; |
− | *''' | + | **'''имя''' ''(invite_n)'' - имя игрока; |
− | В опции пишутся параметры инвайтов: | + | В опции пишутся параметры инвайтов (вместо %d - айдишник объекта): |
*'''esocial%d.max_invite_total''' - всего инвайтов отправлено | *'''esocial%d.max_invite_total''' - всего инвайтов отправлено | ||
*'''esocial%d.max_invite_this''' - за последнюю отправку | *'''esocial%d.max_invite_this''' - за последнюю отправку | ||
− | + | Можно проверять в "nst_invite_sent" | |
+ | |||
+ | |||
+ | ==Остальное== | ||
+ | |||
+ | *'''случайные друзья''' | ||
+ | **'''таблица случайных друзей''' ''(friendrandom)'' - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. Заполнить таблицу - вызвать объекту состояние friends_random; | ||
+ | **'''количество''' ''(frrandomnum)'' - Количество случайных друзей в таблицу. | ||
+ | |||
+ | *'''уведомление другу''' | ||
+ | **'''заголовок''' ''(notif_t)'' - заголовок уведомления; | ||
+ | **'''сообщение''' ''(notif_m)'' - текст уведомления. | ||
+ | |||
+ | *'''facebook story''' | ||
+ | **'''имя действия - первый me''' ''(fbstoryactionme)'' - Имя действия при первом успешном me; | ||
+ | **'''имя объекта - первый me''' ''(fbstoryobjectme)'' - Имя объекта при первом успешном me; | ||
+ | **'''урл - первый me''' ''(fbstoryurlme)'' - Шаблон урла при первом успешном me; | ||
+ | **'''урл картинки - первый me''' ''(fbstoryurlpicme)'' - Шаблон урла картинки при первом успешном me; | ||
+ | **'''имя действия - кастомное''' ''(fbstoryactioncustom)'' - Имя действия при первом успешном me; | ||
+ | **'''имя объекта - кастомное''' ''(fbstoryobjectcustom)'' - Имя объекта при первом успешном me; | ||
+ | **'''урл - кастомное''' ''(fbstoryurlcustom)'' - Шаблон урла при первом успешном me; | ||
+ | **'''урл картинки - кастомное''' ''(fbstoryurlpiccustom)'' - Шаблон урла картинки при первом успешном me; | ||
+ | **'''forced login - кастомное''' ''(fbstoryforcedcustom)'' - Принудительный логин при вызове состояния. ДЕЙСТВУЕТ ТОЛЬКО НА ОДИН ВЫЗОВ, потом сбрасывается в 0; нет=0,да=1. | ||
+ | |||
+ | *'''adjust''' | ||
+ | **'''включить adjust''' ''(adjust_on)'' - нет=0, да=1; | ||
+ | **'''инвайт для iOS''' ''(adjinvite_ios)''; | ||
+ | **'''инвайт для Ansroid''' ''(adjinvite_andrd)''. | ||
+ | |||
+ | ==Обработчики== | ||
+ | |||
+ | *'''изменить состояние объекта - инвайт принят''' ''(nst_invite)'' - изменить состояние объекта при принятии инвайта. | ||
+ | *'''изменить состояние объекта - успех задачи''' ''(nst_compl_task)'' - изменить состояние объекта при успешном выполнении задачи | ||
+ | *'''изменить состояние объекта - ошибка задачи - Facebook''' ''(nst_err_task)'' - изменить состояние объекта при ошибке выполнения задачи - Facebook | ||
+ | *'''изменить состояние объекта - ошибка задачи - Google''' ''(nst_err_task_google)'' - изменить состояние объекта при ошибке выполнения задачи - Google | ||
+ | *'''изменить состояние объекта - превышено число подарков в день''' ''(nst_many_gifts)'' - изменить состояние объекта при ошибке выполнения задачи | ||
+ | *'''изменить состояние объекта - превышено число подарков одному другу''' ''(nst_many_gifts_fr)'' - изменить состояние объекта при ошибке выполнения задачи | ||
+ | *'''изменить состояние объекта - заход в приложение через соц. сеть''' ''(nst_from_social_net)'' - изменить состояние объекта - заход в приложение через соц. сеть | ||
+ | *'''изменить состояние объекта - получен в подарок объект из вишлиста''' ''(nst_wishlist_got)'' - изменить состояние объекта - получен в подарок объект из вишлиста | ||
+ | *'''изменить состояние объекта - заполнена таблица с подарками''' ''(nst_gifts_table)'' - изменить состояние объекта - заполнена таблица с подарками | ||
+ | *'''изменить состояние объекта - клик по пустому вишлисту''' ''(nst_empty_wishlist)'' - изменить состояние объекта - клик по пустому вишлисту | ||
+ | *'''изменить состояние объекта - клик по непустому вишлисту''' ''(nst_norm_wishlist)'' - изменить состояние объекта - клик по пустому вишлисту | ||
+ | *'''изменить состояние объекта - клик по вип''' ''(nst_vip_wishlist)'' - изменить состояние объекта - клик по пустому вишлисту | ||
+ | *'''изменить состояние объекта - fb post story''' ''(nst_fbpoststory)'' - изменить состояние объекта - fb post story | ||
+ | *'''изменить состояние объекта - инвайт отослан''' ''(nst_invite_sent)'' - изменить состояние объекта - инвайт отослан | ||
+ | *'''изменить состояние объекта - гифт отослан''' ''(nst_gift_sent)'' - изменить состояние объекта - гифт отослан | ||
+ | *'''изменить состояние объекта - внешний лайк - успех''' ''(nst_externallike_yes)'' - изменить состояние объекта - внешний лайк - успех | ||
+ | *'''изменить состояние объекта - внешний лайк - отмена''' ''(nst_externallike_no)'' - изменить состояние объекта - внешний лайк - отмена | ||
+ | *'''изменить состояние объекта - дарим энергию выше max''' ''(nst_energy_above_max)'' - изменить состояние объекта - дарим энергию выше max | ||
+ | *'''изменить состояние объекта - состоялось вступление в сообщество''' ''(nst_join_community)'' - изменить состояние объекта - состоялось вступление в сообщество | ||
+ | *'''изменить состояние объекта - попросили подарок''' ''(nst_ask_gift)'' - изменить состояние объекта - попросили подарок | ||
+ | *'''изменить состояние объекта - слишком много запросов подарков''' ''(nst_ask_fail)'' - изменить состояние объекта - попросили подарок | ||
+ | *'''изменить состояние объекта - заполнена таблица с запросами подарков''' ''(nst_asks_table)'' - изменить состояние объекта - заполнена таблица с запросами подарков | ||
+ | *'''изменить состояние объекта - логин через эппл (успех)''' ''(nst_apple_success)'' - изменить состояние объекта - огин через эппл (успех) | ||
+ | *'''изменить состояние объекта - логин через эппл (ошибка)''' ''(nst_apple_fail)'' - изменить состояние объекта - огин через эппл (ошибка) | ||
+ | *'''еще одна табличка для вишлиста''' ''(one_more_wishlist)'' - еще одна табличка для вишлиста | ||
+ | *'''еще одна экономика''' ''(one_more_economics)'' - еще одна экономика | ||
+ | |||
− | |||
=Состояния= | =Состояния= | ||
− | |||
*0. '''ready''' - состояние готовности | *0. '''ready''' - состояние готовности | ||
Строка 141: | Строка 251: | ||
*66. '''join_community''' - пригласиться к группе, задать в параметр ''joincommunity'' id группы (для ВК). | *66. '''join_community''' - пригласиться к группе, задать в параметр ''joincommunity'' id группы (для ВК). | ||
+ | *--. '''sign_in_with_apple''' - залогинится через Apple. | ||
+ | |||
+ | |||
=Debug= | =Debug= | ||
Строка 201: | Строка 314: | ||
==Ошибки== | ==Ошибки== | ||
− | |||
− | |||
*0 - неизвестная ошибка | *0 - неизвестная ошибка | ||
Строка 214: | Строка 325: | ||
*8 - ошибка авторизации | *8 - ошибка авторизации | ||
*9 - ошибка прав доступа | *9 - ошибка прав доступа | ||
+ | |||
+ | Если ошибка связана с запросами в Google Play Games, то к коду добавляется 1000, к примеру: | ||
+ | *1007 - ошибка логина в Google Play Games | ||
+ | |||
+ | Если ошибка связана с логином в Apple, то к коду добавляется 2000. | ||
+ | |||
+ | *2000 - ABS_SYSTEM_SIGNINWITHAPPLE_SUCCESS, // успех - не показываем | ||
+ | *2001 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_CANCELED, // отмена пользователем - не показываеем | ||
+ | *2002 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_FAILED, // ошибка логина | ||
+ | *2003 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_INVALID_RESPONSE, // ошибка логина | ||
+ | *2004 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_INVALID_NOT_HANDLED, // ошибка логина | ||
+ | *2005 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_UNKNOWN // ошибка логина | ||
Для обработки ошибок использовать [[Errormanager|ErrorManager]]. | Для обработки ошибок использовать [[Errormanager|ErrorManager]]. | ||
Строка 229: | Строка 352: | ||
'''ВАЖНО:''' | '''ВАЖНО:''' | ||
Если в любом месте произошел сбой, то ты НЕ увидишь конкретное состояние, ты увидишь только что "ST_GET_FRIENDS" отработал с ошибкой "9" или словами "ERR_PERMISSION". Других логик или кодов там нет. | Если в любом месте произошел сбой, то ты НЕ увидишь конкретное состояние, ты увидишь только что "ST_GET_FRIENDS" отработал с ошибкой "9" или словами "ERR_PERMISSION". Других логик или кодов там нет. | ||
+ | |||
==Слушатели заполнения таблиц== | ==Слушатели заполнения таблиц== | ||
Строка 240: | Строка 364: | ||
*Окно приёма подарка ( заполненность таблицы проверям у объекта "esocial" параметры "new_gifts" и "all_gifts"): | *Окно приёма подарка ( заполненность таблицы проверям у объекта "esocial" параметры "new_gifts" и "all_gifts"): | ||
**'''Esocial.giftreceivetable ''' - машинка-слушатель объекта 'Esocial' (изменить состояние объекта - '''заполнена таблица с подарками''') | **'''Esocial.giftreceivetable ''' - машинка-слушатель объекта 'Esocial' (изменить состояние объекта - '''заполнена таблица с подарками''') | ||
+ | |||
Строка 255: | Строка 380: | ||
21/3/2017 13:8:59.805: I/GESocial state() Viber request gift urlId = -1, url = , text = | 21/3/2017 13:8:59.805: I/GESocial state() Viber request gift urlId = -1, url = , text = | ||
21/3/2017 13:8:59.808: I/GFacebook stPostRequest() stPostRequest -> title = Gift!, message = Иван Козаченко: Here is a gift for you!, | 21/3/2017 13:8:59.808: I/GFacebook stPostRequest() stPostRequest -> title = Gift!, message = Иван Козаченко: Here is a gift for you!, | ||
− | data = 3,241016273040597,11674, userId = 258188181311449, | + | data = 3,241016273040597,11674, userId = 258188181311449, |
excludeUserIds = , frictionless = 1, type = 2, forcedLogin=1 | excludeUserIds = , frictionless = 1, type = 2, forcedLogin=1 | ||
Текущая версия на 11:05, 30 июля 2020
Объект Esocial обеспечивает связь между приложением и Facebook'ом.
Содержание
Параметры
Общие
- facebook (facebook) - Ссылка на объект типа Facebook, с которым будет работать объект.
- economics (economics) - Ссылка на объект типа Economics, с которым будет работать объект.
- esocialfrienditem (esocialfrienditem) - Ссылка на объект типа esocialfrienditem, с которым будет работать объект.
- таблица друзей (friends) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. Заполнить таблицу - вызвать объекту состояние friends
- таблица приглашаемых друзей (friendsnotinst) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. Заполнить таблицу - вызвать объекту состояние friends_not_inst
- шаблон вверху таблтицы (invtemplate) - Объект, который всегда будет первым в таблице приглошаемых друзей, если он задан
- индикатор активности (activity) - Объект - индикатор активности. Будем менять ему визибл
- опции для facebook (fbopt) - Поле в опциях, куда мы будем сохранять упакованное в 32-битное целое Уровень + Коллекции. ESocial добавит к ним число друзей и засабмит при вызове соотв. состояние.
- социальная сеть (socialnet) - социальная сеть: фейсбук=0,гугл=1,обе=2.
- дублировать очки в parse (parse) - дублировать очки в parse: нет=0,да=1.
- лидерборд parse (parselb) - Имя главной таблицы в parse.
- перемешивать приглашаемых (shuffleinv) - перемешивать или сортировать приглашаемых друзей: нет=0,да=1,сортировать=2.
- добавлять из лидербордов (addinv) - добавлять приглашаемых друзей из глобальных лидербордов (кол-во).
- прятать приглашенных (hideinv) - прятать приглашенных друзей (аналогично вайберу): нет=0, да=1.
- размер аватарки (picsize) - размер автарки (value="128" min="32").
- проверять группу (checkgroup) - Проверять вхождение в группу с id.
- вступать в сообщество (joincommunity) - вступать в сообщество (пока только вконтакте).
- дарение коллекционных (gift_type) - 0 - дарим то что есть, при успехе вычитаем, 1 - дарим любой, при успехе не вычитаем.
- подарки через parse (gift_parse) - 0 - дарим через соцсеть, 1 - дарим через парс, через соцсеть - только уведомления: нет=0, да=1.
Подарки
- специальные подарки
- подарок энергия id (gift_en_id) - подарок энергия id;
- подарок энергия количество (gift_en_amount) - подарок энергия количество;
- учитывать максимум энергии (gift_en_max) - 0 - не учитывать, 1 - учитывать; нет=0,да=1;
- подарок монеты id (gift_res1_id) - подарок монеты id;
- подарок монеты количество (gift_res1_amount) - подарок монеты количество;
- принимать подарки не чаще (сек) (gift_delay) - Принимать подарки с ресурсами не чаще заданного количества секунд. Работает только для энергии/res1 и только для парсовых подарков.
- запрос подарка
- текст (wishtxt) - Общий текст запроса подарка;
- завершающий текст (wishtxt2) - Текст, который будет добавлен после списка предметов;
- таблица (wishtbl) - Таблица, куда сложим множественный запрос подарков;
- ссылка (href) - Ссылка для публикации вишлиста на стене гугл.
- отправка подарка
- заголовок (gift_t) - заголовок инвайта;
- сообщение (gift_m) - текст инвайта;
- ограничение (gift_max) - ограничение на число подарков в день;
- счетчик (gift_cnt) - счетчик текущих подарков;
- заголовок уведомления (gift_not_t) - заголовок уведомления;
- сообщение уведомления (gift_not_m) - сообщение уведомления;
- viber url (gift_viber_url) - viber url инвайта.
- запрос подарка
- заголовок (ask_t) - заголовок инвайта;
- сообщение (ask_m) - текст инвайта.
- окно дарения из окна коллекций
- окно (wndcolgift) - Некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open;
- иконка (icocolgift) - Иконка предмета;
- текст (объект) (txtcolgift) - Текстовый объект в окошке;
- описание (объект) (dsccolgift) - Текстовый объект в окошке, в который сложим описание предмета;
- esocialfrienditem (itemcolgift) - Ссылка на объект типа esocialfrienditem, с которым будет работать объект;
- таблица друзей (tblcolgift) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem.
- окно дарения с двумя списками
- скроллить таблицы (scroll_gifts) - Скроллть таблицы;
- esocialfrienditem (fritwndgift) - Ссылка на объект типа esocialfrienditem, с которым будет работать объект;
- таблица друзей (frtblwndgift) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem;
- esocialgiftitem (giitwndgift) - Ссылка на объект типа esocialfrienditem, с которым будет работать объект;
- таблица подарков (gitblwndgift) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem;
- иконка (icowndgift) - Иконка предмета;
- текст (объект) (txtwndgift) - Текстовый объект в окошке;
- описание (объект) (dscwndgift) - Текстовый объект в окошке, в который сложим описание предмета;
- esocialgiftitem инв. (giitwndgift_i) - Ссылка на объект типа esocialfrienditem, с которым будет работать объект;
- таблица подарков инв. (gitblwndgift_i) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem.
- окно дарения из лидербордов
- иконка друга (icofrwndgift) - Иконка друга;
- имя друга (txtfrwndgift) - Имя друга;
- таблица вишлиста (wishtblwndgift) - Таблица вишлиста друга;
- таблица подарков (gitblwndgift2) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem;
- иконка выбранного подарка (icofrgiwndgift) - Иконка выбранного подарка;
- цена выбранного подарка (cntfrgiwndgift) - Цена выбранного подарка;
- иконка выбранного подарка 2 (icofrgiwndgift2) - Иконка выбранного подарка;
- цена выбранного подарка 2 (cntfrgiwndgift2) - Цена выбранного подарка.
- окно приема подарка
- окно (wndgetgift) - Некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open;
- иконка (icogetgift) - Иконка предмета;
- текст (объект) (txtgetgift) - Текстовый объект в окошке;
- имя (namegetgift) - Тектовый объект куда будет занесено имя друга;
- аватарка (avagetgift) - Аватарка друга;
- giftreceiveitem (giftreceiveitem) - Объект типа giftreceiveitem;
- таблица (giftreceivetable) - Таблица, в которую будем складывать giftreceiveitem.
- окно входящих запросов подарков
- giftreceiveitem (giftaskitem) - Объект типа giftreceiveitem;
- таблица (giftasktable) - Таблица, в которую будем складывать giftreceiveitem.
Инвайты
- инвайт
- заголовок (invite_t) - заголовок инвайта;
- сообщение (invite_m) - текст инвайта;
- viber url (invite_viber_url) - viber url инвайта;
- время повтора (invite_tm) - время в секундах, когда можно повторно пригласить того же игрочка.
- успешный инвайт
- окно (invsuc_w) - само окошко успешного инвайта, должно иметь состояние show, на закрытие вызывать next_inv есошиалу;
- портрет (invite_i) - портрет игрока;
- имя (invite_n) - имя игрока;
В опции пишутся параметры инвайтов (вместо %d - айдишник объекта):
- esocial%d.max_invite_total - всего инвайтов отправлено
- esocial%d.max_invite_this - за последнюю отправку
Можно проверять в "nst_invite_sent"
Остальное
- случайные друзья
- таблица случайных друзей (friendrandom) - Ссылка на таблицу, в которую будем клонировать esocialfrienditem. Заполнить таблицу - вызвать объекту состояние friends_random;
- количество (frrandomnum) - Количество случайных друзей в таблицу.
- уведомление другу
- заголовок (notif_t) - заголовок уведомления;
- сообщение (notif_m) - текст уведомления.
- facebook story
- имя действия - первый me (fbstoryactionme) - Имя действия при первом успешном me;
- имя объекта - первый me (fbstoryobjectme) - Имя объекта при первом успешном me;
- урл - первый me (fbstoryurlme) - Шаблон урла при первом успешном me;
- урл картинки - первый me (fbstoryurlpicme) - Шаблон урла картинки при первом успешном me;
- имя действия - кастомное (fbstoryactioncustom) - Имя действия при первом успешном me;
- имя объекта - кастомное (fbstoryobjectcustom) - Имя объекта при первом успешном me;
- урл - кастомное (fbstoryurlcustom) - Шаблон урла при первом успешном me;
- урл картинки - кастомное (fbstoryurlpiccustom) - Шаблон урла картинки при первом успешном me;
- forced login - кастомное (fbstoryforcedcustom) - Принудительный логин при вызове состояния. ДЕЙСТВУЕТ ТОЛЬКО НА ОДИН ВЫЗОВ, потом сбрасывается в 0; нет=0,да=1.
- adjust
- включить adjust (adjust_on) - нет=0, да=1;
- инвайт для iOS (adjinvite_ios);
- инвайт для Ansroid (adjinvite_andrd).
Обработчики
- изменить состояние объекта - инвайт принят (nst_invite) - изменить состояние объекта при принятии инвайта.
- изменить состояние объекта - успех задачи (nst_compl_task) - изменить состояние объекта при успешном выполнении задачи
- изменить состояние объекта - ошибка задачи - Facebook (nst_err_task) - изменить состояние объекта при ошибке выполнения задачи - Facebook
- изменить состояние объекта - ошибка задачи - Google (nst_err_task_google) - изменить состояние объекта при ошибке выполнения задачи - Google
- изменить состояние объекта - превышено число подарков в день (nst_many_gifts) - изменить состояние объекта при ошибке выполнения задачи
- изменить состояние объекта - превышено число подарков одному другу (nst_many_gifts_fr) - изменить состояние объекта при ошибке выполнения задачи
- изменить состояние объекта - заход в приложение через соц. сеть (nst_from_social_net) - изменить состояние объекта - заход в приложение через соц. сеть
- изменить состояние объекта - получен в подарок объект из вишлиста (nst_wishlist_got) - изменить состояние объекта - получен в подарок объект из вишлиста
- изменить состояние объекта - заполнена таблица с подарками (nst_gifts_table) - изменить состояние объекта - заполнена таблица с подарками
- изменить состояние объекта - клик по пустому вишлисту (nst_empty_wishlist) - изменить состояние объекта - клик по пустому вишлисту
- изменить состояние объекта - клик по непустому вишлисту (nst_norm_wishlist) - изменить состояние объекта - клик по пустому вишлисту
- изменить состояние объекта - клик по вип (nst_vip_wishlist) - изменить состояние объекта - клик по пустому вишлисту
- изменить состояние объекта - fb post story (nst_fbpoststory) - изменить состояние объекта - fb post story
- изменить состояние объекта - инвайт отослан (nst_invite_sent) - изменить состояние объекта - инвайт отослан
- изменить состояние объекта - гифт отослан (nst_gift_sent) - изменить состояние объекта - гифт отослан
- изменить состояние объекта - внешний лайк - успех (nst_externallike_yes) - изменить состояние объекта - внешний лайк - успех
- изменить состояние объекта - внешний лайк - отмена (nst_externallike_no) - изменить состояние объекта - внешний лайк - отмена
- изменить состояние объекта - дарим энергию выше max (nst_energy_above_max) - изменить состояние объекта - дарим энергию выше max
- изменить состояние объекта - состоялось вступление в сообщество (nst_join_community) - изменить состояние объекта - состоялось вступление в сообщество
- изменить состояние объекта - попросили подарок (nst_ask_gift) - изменить состояние объекта - попросили подарок
- изменить состояние объекта - слишком много запросов подарков (nst_ask_fail) - изменить состояние объекта - попросили подарок
- изменить состояние объекта - заполнена таблица с запросами подарков (nst_asks_table) - изменить состояние объекта - заполнена таблица с запросами подарков
- изменить состояние объекта - логин через эппл (успех) (nst_apple_success) - изменить состояние объекта - огин через эппл (успех)
- изменить состояние объекта - логин через эппл (ошибка) (nst_apple_fail) - изменить состояние объекта - огин через эппл (ошибка)
- еще одна табличка для вишлиста (one_more_wishlist) - еще одна табличка для вишлиста
- еще одна экономика (one_more_economics) - еще одна экономика
Состояния
- 0. ready - состояние готовности
- 1. friends
- 2. friends_debug - добавляем фейковых друзей
- 3. friends_inst - заполнить таблицу друзьями с установленной игрой
- 4. friends_not_inst - заполнить таблицу друзьями с неустановленной игрой
- 5. report - заслать полезную информацию (32бита)
- 6. invite - показать окно инвайта
- 7. cancel - отменить весь стек задач
- 8. retry - повторить текущую задачу
- 9. continue_fb - пропустить текущую задачу и перейти к следующей
- 10. continue_google - пропустить текущую задачу и перейти к следующей
- 11. next_inv - следующее окошко успешного инвайта
- 12. gift - показать окно посылки подарка из окна коллекций
- 13. gift_confirm - в окне посылки гифта из окна коллекций нажали кнопку ок
- 14. wish - запостить на стену "попрошайку"
- 15. check_requests - проверить реквесты от других пользователей
- 16. next_gift - следующее окошко про полученный подарок17.
- 17. refresh_gifts - актуализировать содержимое таблицы гифтов
- 18. refresh_vip_gifts - актуализировать содержимое таблицы гифтов используя исключительно вип подарки
- 19. gift_send - послать подарок из окна с двумя таблицами
- 20. logout - разлогиниться из фейсбука удалив всю информацию о друзьях
- 21. clear_gifts - сбросить ограничения на число подарков
- 22. wish_table - добавить пожелание в таблицу пожеланий
- 23. wish_all - пожелать все содержимое таблицы в фейсбук //Теперь только в фейсбук, а для гугла состояние ниже
- 24. remove_gift - убрать подарок из таблицы
- 25. gift_fb - подарить текущий подарок через фейбук используя нативный интерфейс фейсбука (т.е. так как сейчас работает гугл, без таблицы друзей)
- 26. gift_info - Обновить информацию о текущих подарках в специальном окне
- 27. gift_lb - Показать окно подарка из лидерборда
- 28. gift_send_lb - Подтвердить отсылку подарка из лидерборда
- 29. gift_receive - Получить подарок из окна получения подарков
- 30. invite_lb - Послать приглашение другу из лидербордов
- 31. get_me_google - запросить информацию о себе с гугла
- 32. friends_inst_google - заполнить таблицу друзьями с установленной игрой
- 33. friends_not_inst_google - заполнить таблицу друзьями с неустановленной игрой
- 34. message_friend - послать другу уведомление
- 35. friends_random - заполнить таблицу случайных друзей
- 36. wish_all_google - пожелать все содержимое таблицы в гугл
- 37. get_me_fb - запросить информацию о себе с фейсбука
- 38. check_requests_fb - проверить реквесты от других пользователей для fb
- 39. check_requests_google - проверить реквесты от других пользователей для гугл
- 40. logout_google - разлогиниться из гугла, удалив всю информацию о друзьях
- 41. gift_parse - Показать окно подарка из парсовой таблицы друзей
- 42. gift_send_parse - Подтвердить отсылку подарка из парсовой таблицы друзей
- 43. gift_parse_energy - Показать окно подарка энергии из парсовой таблицы друзей
- 44. gift_parse_vip - Подарок вип-подарка из окна лидербордов
- 45. gift_parse_res1 - Подарок монет из окна лидербордов
- 46. gift_receive_no_delete - Получить подарок из окна получения подарков без запроса
- 47. gift_reply_energy - Послать в ответ энергию.
- 48. gift_reply_more - Промотать таблицу подарков в клауде на нужного юзера
- 49. gift_reply_res1 - Послать в ответ ресурс1.
- 50. gift_reply_universal - ответить тем же, что прислали
- 51. gift_reply_vip - Послать в ответ vip.
- 52. invite_parse - Послать приглашение другу из парса (но из общей таблицы, не из лидербордов)
- 53. gift_parse_res1_multiple - отправить множественный подарок в виде монет
- 54. gift_parse_item_multiple - отправить множественный подарок в виде предмета, взяв его из поля gift_param
- 55. post_story - фоновое сообщение
- 56. external_like - "внешнее" окошко лайка
- 57. clear_timeouts - обнулить таймауты для некоторых тасков
- 58. refresh_inv_gifts - актуализировать содержимое таблицы инвентарных гифтов
- 59. wish_inv_add - добавить предмет из таблицы инвентарных в вишлист
- 60. wish_inv_remove - убрать предмет из таблицы инвентарных в вишлист
- 61. gift_parse_refresh - Обновить информацию о подарке в соотв. иконках и каунтерах
- 62. check_requests_abs - проверить реквесты от других пользователей, но только parse
- 63. switch_social_network - переключить активную социальную сеть, взяв ее айдишник из param
- 64. invite_random - показать окно инвайта для случайных друзей
- 66. join_community - пригласиться к группе, задать в параметр joincommunity id группы (для ВК).
- --. sign_in_with_apple - залогинится через Apple.
Debug
Для того, что бы отслеживать работу объекта Facebook в папке Documents создаются три файла, которые хранят в себе все знания относительно друзей данного пользователя, их коллекций и уровня:
- facebook_debug_e.xml - создается во время отправки приглашения и при вызове состояния invite
- facebook_debug_s.xml - создается после фидбэка от Facebook'a.
- facebook_debug.xml - создается исключительно в дебажной версии во время отправки объекту Facebook состояния friends или friends_inst
Выглядит этот файл приблизительно вот так:
Поля:
request означает отправлен ли запрос.
invite - принял ли запрос и поле
inst(возможна ошибка в названии) - установлено ли приложение у данного друга.
Задачи (команды) и ошибки
В опции пишется номер успешной задачи, неуспешной и номер ошибки
- esocial%d.compl_task - поле в опциях, куда запишется номер успешно выполненной задачи. %d - id объекта esocial в проекте.
- esocial%d.err_task - поле в опциях, куда запишется номер неуспешной задачи. %d - id объекта esocial в проекте.
- esocial%d.err_code - поле в опциях, куда запишется номер ошибки. %d - id объекта esocial в проекте.
Задачи
При выполнении состояния Esocial пишет в лог следующее:
onComplete state = %d task = %d,
где номер таска берется из следующего списка (состояния Facebook):
- 0 - провести авторизацию
- 1 - закрыть текущую авторизованную сессию
- 2 - создать диалог для отправки на стену
- 3 - возвращает данные обо мне
- 4 - возвращает данные о друзьях
- 5 - возвращает данные о друзьях, которых можно пригласить в игру
- 6 - получить список игровых сообщений
- 7 - получить список групп пользователя
- 8 - лайкал пользователь приложение или нет
- 9 - обновить мои очки на facebook сервере
- 10 - отправить игровое сообщение
- 11 - удалить игровое сообщение на facebook сервере
- 12 - отправить фоновое сообщение в ленту пользователя
След. сост. выполняются автоматически, если необходимо:
- 13 - (ST_AUTO_CHECK_USER_PERMISSIONS) - получить список прав которые пользователь предоставил преложению
- 14 - (ST_AUTO_CHECK_APP_PERMISSIONS) - получить список прав которые facebook предоставил преложению
- 15 - (ST_AUTO_GET_WRITE_PERMISSIONS) - запросить у пользователя права на запись
- 16 - (ST_AUTO_GET_READ_PERMISSIONS) - запросить у пользователя права на чтение
- 17 - (ST_AUTO_POST_APP_REQUEST) - отправить application request пользователю
- 18 - (ST_AUTO_CHECK_USER_ACHIEVEMENTS) - проверить текущие ачивки пользователя
- 19 - (ST_CHANGE_SOCIAL_NETWORK) - изменить соц сеть
Ошибки
- 0 - неизвестная ошибка
- 1 - неизвестная задача
- 2 - facebook не поддерживается
- 3 - нет интернета
- 4 - превышен лимит ожидания запроса
- 5 - не указаны параметры для выполнения задачи
- 6 - отмена диалогового окна пользователем
- 7 - ошибка логина
- 8 - ошибка авторизации
- 9 - ошибка прав доступа
Если ошибка связана с запросами в Google Play Games, то к коду добавляется 1000, к примеру:
- 1007 - ошибка логина в Google Play Games
Если ошибка связана с логином в Apple, то к коду добавляется 2000.
- 2000 - ABS_SYSTEM_SIGNINWITHAPPLE_SUCCESS, // успех - не показываем
- 2001 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_CANCELED, // отмена пользователем - не показываеем
- 2002 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_FAILED, // ошибка логина
- 2003 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_INVALID_RESPONSE, // ошибка логина
- 2004 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_INVALID_NOT_HANDLED, // ошибка логина
- 2005 - ABS_SYSTEM_SIGNINWITHAPPLE_ERROR_UNKNOWN // ошибка логина
Для обработки ошибок использовать ErrorManager.
Пример запроса:
- подали запрос выполнить задачу (например ST_GET_FRIENDS)
- сначала проверяем есть ли права у приложения facebook (ST_AUTO_CHECK_APP_PERMISSIONS)
- потом проверяем есть ли права от пользователя (ST_AUTO_CHECK_USER_PERMISSIONS)
- если пользователь не давал прав, то просим (ST_AUTO_GET_READ_PERMISSIONS)
- потом снова проверяем дал ли нам пользователь права (ST_AUTO_CHECK_USER_PERMISSIONS)
- если весь цикл прошел успешно, то возвращаемся к поставленной задаче (ST_GET_FRIENDS)
ВАЖНО: Если в любом месте произошел сбой, то ты НЕ увидишь конкретное состояние, ты увидишь только что "ST_GET_FRIENDS" отработал с ошибкой "9" или словами "ERR_PERMISSION". Других логик или кодов там нет.
Слушатели заполнения таблиц
Чтобы узнать когда окончательно заполниться таблица, нужно подвязать слушателя в нужном месте:
- Таблица лидеров:
- Cloud.table - добавляемое свойство объекту 'Cloud' успешно загружены лидерборды;
- Друзья и подарки:
- Cloud.table_fr - добавляемое свойство объекту 'Cloud' успешно загружены друзья;
- Неиграющие друзья:
- Esocial.friendsnotinst - машинка-слушатель успеха объекта 'Esocial 'состояние 5 (изменить состояние объекта - успех задачи)
- Окно приёма подарка ( заполненность таблицы проверям у объекта "esocial" параметры "new_gifts" и "all_gifts"):
- Esocial.giftreceivetable - машинка-слушатель объекта 'Esocial' (изменить состояние объекта - заполнена таблица с подарками)
Записи в логах
Отправка подарка
21/3/2017 13:8:59.800: I/GESocial state() state 42 21/3/2017 13:8:59.800: I/GESocial state() New social system state = 42 gift = 11674 starting to search usid 21/3/2017 13:8:59.800: I/GESocial state() New social system state = 42 fb login = 1 gc login = 0 21/3/2017 13:8:59.800: I/GESocial state() state 13 21/3/2017 13:8:59.800: I/GESocial state() STATE_GIFT_CONFIRM gift = 11674 21/3/2017 13:8:59.800: I/GESocial state() STATE_GIFT_CONFIRM Got id from param, id = 258188181311449 21/3/2017 13:8:59.801: I/GESocial load() load curTime = 1492769339 saveTime = 1492769335 (curTime - saveTime) = 4 21/3/2017 13:8:59.801: I/GESocial state() STATE_GIFT_CONFIRM _giftsCur = 0, gift = 11674, id = 258188181311449, _giftsLimit = 50 21/3/2017 13:8:59.801: I/GESocial state() STATE_GIFT_CONFIRM soc_net == netFacebook id = 258188181311449, data = 3,241016273040597,11674 21/3/2017 13:8:59.805: I/GESocial state() Viber request gift urlId = -1, url = , text = 21/3/2017 13:8:59.808: I/GFacebook stPostRequest() stPostRequest -> title = Gift!, message = Иван Козаченко: Here is a gift for you!, data = 3,241016273040597,11674, userId = 258188181311449, excludeUserIds = , frictionless = 1, type = 2, forcedLogin=1