DALI 0.4.44

DALI 0.4.44

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2018年2月
SPM支持SPM

John Kotz维护。



 
依赖项
SwiftyJSON>= 0
Socket.IO-Client-Swift>= 0
 

DALI 0.4.44

  • 作者
  • John Kotz

DALI实验室成员使用的框架,用于访问内部API,存储所有与DALI项目、成员和事件相关的信息。

入门指南

身份验证

API使用两种方法保护其数据:私人API密钥和Google OAuth2。这是为了支持两种不同的用例:静态安装或用户个人设备。

Google OAuth2(用户个人)

用户个人产品可以是iOS应用程序、Watch OS应用程序或任何属于用户个人的东西。此类认证使用用户的Google登录凭证进行身份验证和识别。

资格

  • 应用程序代表单个成员行为
  • 应用程序可以修改成员信息
  • 应用程序需要访问受保护的成员信息

使用Google Signin进行身份验证

  1. 选择Google登录方法。一些不错的选择是
  • GoogleSignIn
  1. 当用户成功通过Google登录后,提取他们的accessToken和refreshToken
  • 使用GoogleSignIn信息存储在user.authentication
  1. 使用这些令牌通过API进行登录
DALIapi.signin(accessToken: accessToken, refreshToken: refreshToken) { (success, error) in
    if success {
      // Continue into the app
      // Your api will handle authenticated requests from here on
    } else if let error = error {
      // There was an error
      // Most likely the user didn't use a @dali.dartmouth.edu email
    }
}

替代方法:Google OAuth2

某些Google登录系统(非GoogleSignIn)可能不会完全登录用户,而是提供authCode而不是访问和刷新令牌。在这种情况下,请使用DALIapi.signin(authCode: authCode) { ... }

API密钥认证(静态安装)

静态安装产品可以是Apple TV应用程序、展台式桌面应用程序或基本上不需要用户登录的任何东西。这取决于你的想象力😀!

资格

  • 应用程序不代表单个成员
  • 应用程序不需要修改成员信息

使用API密钥进行认证

  1. 请联系API管理员以注册您的应用程序的API密钥。
  • 密钥的访问将限制在您需要的路由上,但您可以在需要时请求更多路由
  • 保护好您获得的密钥!它是您被授权路由的万能通行证
  1. 创建一个Plist文件(以下为示例),用于存储密钥并将其添加到.gitignore文件中 envFile
  2. 加载文件并加载配置
let file = NSDictionary(contentsOfFile: "path/to/your/file.plist")
let config = DALIConfig(dict: file)
  1. 使用您的凭据配置API
// ...
let config = DALIConfig(dict: file)
DALIapi.configure(config)

完成!现在您可以进行您有权进行的所有请求。

事件

您已经认证了系统,接下来可以处理事件。事件路由是最简单的之一,因为它不要求提供任何特殊数据,也没有对认证使用的限制。

获取所有事件

DALIEvent.getAll { (events, error) in
  if let error = error {
    // Encountered a problem
    // Check the type;
    if error == DALIError.General.Unauthorized {
      // ...
    }else if ... {
      // ...
    }
    return
  }

  // The events list is a [DALIEvent]? object
}

获取现在一周内的事件

DALIEvent.getUpcoming { (events, error) in
  // ...
}

创建一个事件

DALIEvent.create { (success, error) in
  // ...
}

位置

DALI使用蓝牙信标技术以识别设备是否在实验室中。您可以使用它来获取Tim或其他成员的位置标志(在DALI内或不在)。

获取Tim的位置

DALILocation.Tim.get { (tim, error) in
  if let error = error {
    // Encountered error...
    return
  }

  if tim.inDALI {
    // ...
  }else if tim.inOffice {
    // ...
  }
}

获取DALI中的共享用户

DALILocation.Shared.get { (members, error) in
  if let error = error {
    //...
  }

  guard let members: [DALIMember] = members else {
    return
  }
  // ..
}

安装

DALI可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中

pod "DALI"

示例

示例项目仍在测试阶段

要运行示例项目,首先克隆存储库,然后在Example目录中运行pod install

作者

John Kotz,[email protected]

要求

使用要求

您必须是DALI Lab的成员,或者是在DALI Lab的授权下(或拥有授权)工作,才能使用这个pod。通过使用这个cocoapod,您承认这些要求。

依赖关系
  • SwiftJSON
功能特定要求

某些路由会故意在您没有适当权限的情况下让您的应用程序崩溃。请查阅有关受保护功能的文档。

许可

DALI可以在MIT许可下使用。有关更多信息,请参阅LICENSE文件。