简介
ExAliyun.OpenAPI 为阿里云 OpenAPI 提供 Elixir 客户端,支持以下服务:
安装
在 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 别名,依次执行:
compile --all-warnings --warnings-as-errorsformat --check-formattedcredo --strictdeps.unlock --check-unuseddeps.audittest --exclude externalxref graph --label compile-connected --fail-above 0
贡献
添加新的阿里云服务支持:
- 在
lib/ex_aliyun_openapi.ex中添加新的call_<service>函数 - 添加对应的测试
- 提交 Pull Request
许可证
MIT