Documentation
¶
Index ¶
- Constants
- func GetInitCallURL(s *Service, ic *InitCall) (string, error)
- type Client
- type ID
- type InitCall
- type InputData
- type PhoneInfo
- type Requester
- type ResponseBalance
- type ResponseInfo
- type ResponseInitCall
- type ResponseInitRepeat
- type ResponseService
- type Service
- func (s *Service) AddCalls(uID ID)
- func (s *Service) Calls(id ID) []ID
- func (s *Service) GetBalance() (r *ResponseBalance, err error)
- func (s *Service) GetInfo(uid ID) (r *ResponseInfo, err error)
- func (s *Service) GetService() (r *ResponseService, err error)
- func (s *Service) InitCall(ic *InitCall) (r *ResponseInitCall, err error)
- func (s *Service) InitRepeat(uid ID) (r *ResponseInitRepeat, err error)
- type TestInfo
- type UCaller
Constants ¶
View Source
const ( MaxCode uint16 = 9999 MaxLenForSecretKey int = 32 APIURL string = "https://api.ucaller.ru/v1.0" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type InitCall ¶
type InitCall struct {
// REQUIRED. Без + с кодом страны. Номер телефона пользователя, которому будет совершен звонок с авторизацией.
// Цифровое значение
Phone *uint64 `json:"phone"`
// 4 цифры. На эти 4 цифры будет заканчиваться исходящий от нас звонок к вашему пользователю.
// Если `code` не передан, он будет автоматически сгенерирован нами.
// Цифровое значение
Code *uint16 `json:"code"`
// До 64 символов. Можете передать информацию о вашем пользователе, например его никнейм, E-mail и так далее.
// В статистике сервиса сможете найти ту или иную авторизацию по этому параметру.
// Набор символов
Client *string `json:"client"`
// До 64 символов. Для активации идемпотентности запроса.
// Рекомендуем использовать V4 UUID.
// Набор символов
Unique *string `json:"unique"`
}
type InputData ¶
type InputData struct {
// Секретный ключ вашего сервиса, Строка, 32 символа
SecretKey string
// ID вами созданного сервиса, Цифровое значение
ID uint32
// FreeRepeatTime время отведенное для совершения бесплатного повторного звонка
FreeRepeatTime time.Duration
// FreeRepeatNumber количество бесплатных повторов
FreeRepeatNumber uint8
}
type ResponseBalance ¶
type ResponseBalance struct {
// true в случае успеха, false в случае неудачи
Status bool `json:"status"`
// Остаточный баланс на рублевом счете аккаунта
Rub float32 `json:"rub_balance"`
// Остаточный бонусный баланс
Bonus float32 `json:"bonus_balance"`
// Кодовое значение вашего тарифного плана
Tariff string `json:"tariff"`
// Название тарифного плана
TariffName string `json:"tariff_name"`
Error string `json:"error"`
}
type ResponseInfo ¶
type ResponseInfo struct {
// true в случае успеха, false в случае неудачи
Status bool `json:"status"`
// запрошенный uCaller ID
ID ID `json:"ucaller_id"`
// время, когда была инициализирована авторизация
InitTime uint64 `json:"init_time"`
// Статус звонка,
// -1 = информация проверяется (от 1 сек до 1 минуты),
// 0 = дозвониться не удалось,
// 1 = звонок осуществлен
CallStatus int8 `json:"call_status"`
// является ли этот uCaller ID повтором (initRepeat), если да, будет добавлен first_ucaller_id с первым uCaller ID этой цепочки
IsRepeated bool `json:"is_repeated"`
// возможно ли инициализировать бесплатные повторы (initRepeat)
Repeatable bool `json:"repeatable"`
// Появляется в случае repeatable: true, говорит о количестве возможных повторов
RepeatTimes uint8 `json:"repeat_times"`
// цепочка uCaller ID инициализированных повторов (initRepeat)
RepeatedUIDs []ID `json:"repeated_ucaller_ids"`
// ключ идемпотентности (если был передан)
UniqueRequestID uuid.UUID `json:"unique"`
// идентификатор пользователя переданный клиентом (если был передан)
Client string `json:"client"`
// номер телефона пользователя, куда мы совершали звонок
Phone uint64 `json:"phone"`
// код авторизации
Code uint64 `json:"code"`
// ISO код страны пользователя
CountryCode string `json:"country_code"`
// static.ucaller.ru/flag/ru.svg, изображение флага страны пользователя
CountryImage string `json:"country_image"`
// информация по телефону
PhoneInfo []PhoneInfo `json:"phone_info"`
// сколько стоила эта авторизация клиенту
Cost float32 `json:"cost"`
Error string `json:"error"`
}
type ResponseInitCall ¶
type ResponseInitCall struct {
// true в случае успеха, false в случае неудачи
Status bool `json:"status"`
// уникальный ID в системе uCaller, который позволит проверять статус и инициализировать метод initRepeat
ID ID `json:"ucaller_id"`
// номер телефона, куда мы совершили звонок
Phone string `json:"phone"`
// код, который будет последними цифрами в номере телефона
Code interface{} `json:"code"`
// идентификатор пользователя переданный клиентом
Client string `json:"client"`
// появляется только если вами был передан параметр `unique`
UniqueRequestID uuid.UUID `json:"unique_request_id"`
// появляется при переданном параметре `unique`, если такой запрос уже был инициализирован ранее
Exists bool `json:"exists"`
Error string `json:"error"`
}
type ResponseInitRepeat ¶
type ResponseInitRepeat struct {
// true в случае успеха, false в случае неудачи
Status bool `json:"status"`
// уникальный ID в системе uCaller, который позволит проверять статус и инициализировать метод initRepeat
ID ID `json:"ucaller_id"`
// номер телефона, куда мы совершили звонок
Phone string `json:"phone"`
// код, который будет последними цифрами в номере телефона
Code interface{} `json:"code"`
// идентификатор пользователя переданный клиентом
Client string `json:"client"`
// появляется только если вами был передан параметр `unique`
UniqueRequestID uuid.UUID `json:"unique_request_id"`
// появляется при переданном параметре `unique`, если такой запрос уже был инициализирован ранее
Exists bool `json:"exists"`
// показывает, что осуществлена повторная авторизация
FreeRepeated bool `json:"free_repeated"`
Error string `json:"error"`
}
type ResponseService ¶
type ResponseService struct {
// true в случае успеха, false в случае неудачи
Status bool `json:"status"`
// ID сервиса
ServiceStatus uint64 `json:"service_status"`
// Название сервиса
Name string `json:"name"`
// Время создания сервиса в unix формате
CreationTime uint64 `json:"creation_time"`
// Время последнего не кэшированного обращения к API сервиса в unix формате
LastRequest uint64 `json:"last_request"`
// E-mail адрес владельца сервиса
Owner string `json:"owner"`
// Информация о том, где будет использоваться сервис
UseDirection string `json:"use_direction"`
// Состояние тестового режима на текущий момент
NowTest bool `json:"now_test"`
// Информация о тестовом состоянии
TestInfo TestInfo `json:"test_info"`
Error string `json:"error"`
}
type Service ¶
type Service struct {
Requester
// contains filtered or unexported fields
}
func (*Service) GetBalance ¶
func (s *Service) GetBalance() (r *ResponseBalance, err error)
func (*Service) GetService ¶
func (s *Service) GetService() (r *ResponseService, err error)
func (*Service) InitCall ¶
func (s *Service) InitCall(ic *InitCall) (r *ResponseInitCall, err error)
func (*Service) InitRepeat ¶
func (s *Service) InitRepeat(uid ID) (r *ResponseInitRepeat, err error)
type UCaller ¶
type UCaller interface {
// InitCall Данный метод позволяет инициализировать авторизацию для пользователя вашего приложения.
InitCall(ic *InitCall) (*ResponseInitCall, error)
// InitRepeat В случае, если ваш пользователь не получает звонок инициализированный методом initCall,
// вы можете два раза и совершенно бесплатно инициализировать повторную авторизацию по uCaller ID,
// который вы получаете в ответе метода initCall.
// Повторную авторизацию можно запросить только в течение пяти минут с момента выполнения основной авторизации методом initCall.
// Все данные, например `code` или `phone`, совпадают с теми же, которые были переданы в первом запросе initCall.
InitRepeat(uid ID) (*ResponseInitRepeat, error)
// GetInfo возвращает развернутую информацию по уже осуществленному uCaller ID
GetInfo(uid ID) (*ResponseInfo, error)
// Этот метод возвращает информацию по остаточному балансу.
GetBalance() (*ResponseBalance, error)
// Этот метод возвращает информацию по сервису.
GetService() (*ResponseService, error)
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.