ExAliyun.OpenAPI (CN)

Copy Markdown View Source

English Documentation

Module Version Hex Docs Total Download Last Updated CI Coverage Status

简介

ExAliyun.OpenAPI 为阿里云 OpenAPI 提供 Elixir 客户端,支持以下服务:

  • CPS(移动推送服务)
  • STS(短期访问权限管理)
  • SMS(短信服务)
  • Captcha(验证码2.0)
  • CodeUp(云效任务管理)
  • GeoIP(查询 IP 地理位置)

安装

mix.exs 中添加依赖:

def deps do
  [
    {:ex_aliyun_openapi, "~> 1.0"}
  ]
end

环境要求

  • Elixir 1.18+
  • Erlang/OTP 27+

配置

按服务配置你的阿里云访问凭证:

config :ex_aliyun_openapi, :cps,
  access_key_id: "你的 AccessKey ID",
  access_key_secret: "你的 AccessKey Secret"

config :ex_aliyun_openapi, :sts,
  access_key_id: "你的 AccessKey ID",
  access_key_secret: "你的 AccessKey Secret"

支持的服务键::cps:sts:sms:global_sms:captcha:codeup:geoip

使用

阿里云 API 文档 中找到接口参数,然后调用对应的函数:

# STS - 角色扮演
params = %{
  "Action" => "AssumeRole",
  "RoleArn" => "acs:ram::1234567890:role/your-role",
  "RoleSessionName" => "default",
  "DurationSeconds" => 3600
}
ExAliyun.OpenAPI.call_sts(params)

# 也可以内联传入凭证:
ExAliyun.OpenAPI.call_sts(params, access_key_id: "ID", access_key_secret: "SECRET")
# CPS - 推送通知
params = %{
  "Action" => "PushNoticeToAndroid",
  "AppKey" => "你的 AppKey",
  "Target" => "DEVICE",
  "TargetValue" => "你的设备 ID",
  "Title" => "测试标题",
  "Body" => "你好,这是通知内容"
}
ExAliyun.OpenAPI.call_cps(params)
# CodeUp - 创建任务
ExAliyun.OpenAPI.CodeUp.call_task(%{
  "Action" => "CreateDevopsProjectTask",
  "OrgId" => "你的组织 ID",
  "ProjectId" => "你的项目 ID",
  "Content" => "任务内容"
})

CI 流水线

本项目包含 mix ci 别名,依次执行:

  1. compile --all-warnings --warnings-as-errors
  2. format --check-formatted
  3. credo --strict
  4. deps.unlock --check-unused
  5. deps.audit
  6. test --exclude external
  7. xref graph --label compile-connected --fail-above 0

贡献

添加新的阿里云服务支持:

  1. lib/ex_aliyun_openapi.ex 中添加新的 call_<service> 函数
  2. 添加对应的测试
  3. 提交 Pull Request

许可证

MIT