{"id":20743096,"url":"https://github.com/datagreed/soul-sdk-ios","last_synced_at":"2026-03-17T04:43:35.199Z","repository":{"id":94399180,"uuid":"56685743","full_name":"DataGreed/Soul-SDK-iOS","owner":"DataGreed","description":null,"archived":false,"fork":false,"pushed_at":"2016-04-18T14:55:09.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-18T02:22:29.264Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataGreed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-20T12:41:03.000Z","updated_at":"2020-02-11T15:07:36.000Z","dependencies_parsed_at":"2023-03-13T16:59:51.768Z","dependency_job_id":null,"html_url":"https://github.com/DataGreed/Soul-SDK-iOS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataGreed%2FSoul-SDK-iOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataGreed%2FSoul-SDK-iOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataGreed%2FSoul-SDK-iOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataGreed%2FSoul-SDK-iOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataGreed","download_url":"https://codeload.github.com/DataGreed/Soul-SDK-iOS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243034779,"owners_count":20225400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T07:09:06.327Z","updated_at":"2025-12-25T04:54:45.688Z","avatar_url":"https://github.com/DataGreed.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Soul – это mBaaS (mobile backend as a service) облачный сервис, позволяющий создавать и эксплуатировать приложения без необходимости написания server-side кода, поднятия собственных серверов и их поддержки. \n\n## Установка\nКак подключать библиотеку мы расскажем на хакатоне.\n\n## Использование\nДобавьте заголовочный файл в ваше приложение чтобы получить все необходимые классы:\n\n```obj-c\n#import \u003cSoulSDK/SoulSDK.h\u003e\n```\n\n### Инициализация\n\n```obj-c\nSLConfig *config = [SLConfig defaultConfig];\nconfig.apiKey = @\"*********\";\n\n[SoulSDK activateWithApiConfig:config];\n```\n\n### Авторизация по телефону\n\nДля авторизации по номеру телефона необходимо получить код подтверждения\n\n```obj-c\nSoulSDK *soulSDK = [SoulSDK instance];\nNSString *phoneNumber = @\"+79061234567\";\n\n[[soulSDK phoneAuth] getCode:phoneNumber success:^(SLPhoneAuthRequest *_Nonnull response) {\n    \n    NSLog(@\"Status: %d\", response.status);\n\n} failure:^(NSError *_Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n\nПосле проверки полученного кода пользователь будет зарегистрирован\n\n```obj-c\n[[soulSDK phoneAuth] verify:phoneNumber code:code success:^(SLPhoneAuthVerify *_Nonnull response) {\n\n    NSLog(@\"%@ / %@\", response.me.userId, response.authorization.sessionToken);\n\n} failure:^(NSError *_Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n\n### Профиль пользователя\n\nВ панеле администратора разработчик определяет параметры пользователей. Информация о пользователе будет использоваться для поиска подходящих партнёров. \n\n```obj-c\nNSDictionary *filterable = @{\n                             @\"age\": @(32),\n                             @\"gender\": @\"male\",\n                             @\"pets\": @\"kitten\",\n                             @\"car\": @\"bmw\",\n                             };\n\nSoulSDK *soulSDK = [SoulSDK instance];\n\n[[soulSDK me] setFilterableParameters:filterable success:^(SLMeUserResponse *_Nonnull response) {\n\n    NSLog(@\"%@\", response.me.parameters.filterable);\n\n} failure:^(NSError *_Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n### Создание альбома\n\n```obj-c\nNSString *albumName = @\"Best album ever\";\n\n[[soulSDK me] addAlbum:albumName success:^{\n    \n    NSLog(@\"success\");\n\n} failure:^(NSError * _Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n### Загрузка фотографии\n\n```obj-c\n\nNSData *photoData = UIImagePNGRepresentation(image);\n\n[[soulSDK album] addPhoto:photoData toAlbum:album.name success:^(SLPhotoResponse * _Nonnull response) {\n\n    NSLog(@\"%@\", response.photo.photoId);\n\n} failure:^(NSError * _Nullable error) {\n\n    NSLog(@\"error\");\n}];\n```\n\n### Поиск партнёров\n\nДля поиска партнёров нужно определить сессию поиска и с каждым запросом передавать новый токен запроса. Если поск партнёров завершился неудачно, его можно повторить передав тот же токен.\n\n```obj-c\nNSString *session = @\"\";\nNSString *token = @\"\";\n\n[soulSDK loadBySession:session uniqueToken:token success:^(SLUsersRecsResponse *_Nonnull responce) {\n\n    for (SLUser *user in responce.users) {\n    \tNSLog(@\"%@\", user.userId);\n    }\n\n} failure:^(NSError *_Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n\n### Отправка реакций\n\nВ панеле администратора разработчик определяет реакции и возможные значения для каждой реакции.\n\n```obj-c\nNSString *type = @\"liking\";\nNSString *value = @\"disliked\";\n\nNSDate *expiresDate = [NSDate date];\nNSNumber *expiresTime = @([expiresDate timeIntervalSince1970]);\n\n[[soulSDK user] sendReactionByType:type value:value userId:user.userId expiresTime:expiresTime success:^(SLOtherUserResponse *_Nonnull responce) {\n\n    NSLog(@\"%@\", responce.user.reactions.sentByMe);\n\n} failure:^(NSError *_Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n\n### Сообщения\n\n```obj-c\nSLChat *lastChat = [SLChat new];\nNSNumber *limit = @(20);\n\n[[soulSDK chats] loadChatsAfter:lastChat.chatId limit:limit success:^(SLChatsMany *_Nonnull responce) {\n\n    for (SLChat *chat in responce.chats) {\n        NSLog(@\"%@ / %@\", chat.chatId, chat.channelName);\n    }\n\n} failure:^(NSError *_Nullable error) {\n\n    NSLog(@\"%@\", error);\n}];\n```\n### Загрузка истории\n\n```obj-c\nSLChatManager *chatManager = [soulSDK chatManager:chat];\n\n[chatManager getHistory:^(NSArray \u003cSLTextMessage *\u003e *messages) {\n\n    for (SLTextMessage *message in messages) {\n        NSLog(@\"%@\", message.text);\n    }\n\n} failure:^{\n\n    NSLog(@\"error\");\n}];\n```\n\n### Отправка сообщений\n\n```obj-c\nSLChatManager *chatManager = [soulSDK chatManager:chat];\nNSString *text = @\"Hello, how are you?\";\n\n[chatManager sendMessage:text success:^(SLTextMessage *message) {\n\n    NSLog(@\"%@\", message.text);\n\n} failure:^{\n\n    NSLog(@\"error\");\n}];\n```\n\n### Получение сообщений\n\n```obj-c\nSLChatManager *chatManager = [soulSDK chatManager:chat];\nchatManager.delegate = self;\n```\n\nПосле этого необходимо реализовать протокол `SLChatManagerProtocol`\n```obj-c\n- (void)messageReceived:(SLTextMessage *)message {\n\n    NSLog(@\"%@\", message.text);\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatagreed%2Fsoul-sdk-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatagreed%2Fsoul-sdk-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatagreed%2Fsoul-sdk-ios/lists"}