发表于: 2017-11-17 22:01:34
1 667
今天完成的事情
注册容联,SendCloud,七牛云的账号,再实名验证
听说金山云不好用,所以换成了阿里云,之前买服务器的时候注册过了,直接就能用。
查看各个平台的文档,尝试进行调用
短信:
下载容联的java的SDK,修改一些参数:
public class SDKTestSendTemplateSMS {
/**
* @param args
*/
public static void main(String[] args) {
HashMap<String, Object> result = null;
CCPRestSDK restAPI = new CCPRestSDK();
restAPI.init("app.cloopen.com", "8883");// 初始化服务器地址和端口,格式如下,服务器地址不需要写https://
restAPI.setAccount("ACCOUNT SID",
"AUTH TOKEN");// 初始化主帐号和主帐号TOKEN
restAPI.setAppId("ApplID");// 初始化应用ID
result = restAPI.sendTemplateSMS("15720601065","1" ,new String[]{"Hello SMS!"});
System.out.println("SDKTestSendTemplateSMS result=" + result);
if("000000".equals(result.get("statusCode"))){
//正常返回输出data包体信息(map)
HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
Set<String> keySet = data.keySet();
for(String key:keySet){
Object object = data.get(key);
System.out.println(key +" = "+object);
}
}else{
//异常返回输出错误码和错误信息
System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+resul t.get("statusMsg"));
}
}
其中的ACCOUNT SID,AUTH TOKEN,ApplID,可以在容联的控制台首页看到,用于验证调用者的身份,手机号码需要添加测试号码,选择短信模板1,运行测试:
控制台输出:
可以调用
尝试发送邮件:
登陆SendCloud,查看文档,下载java的SDK,尝试运行
public class ScTest {
public static void main(String[] args) throws Throwable {
SendCloud sc = SendCloudBuilder.build();
// 创建邮件body
MailBody body = new MailBody();
body.setFrom("test@163.com");
body.setFromName("张三");
body.setReplyTo("service@qq.com");
body.setSubject("测试");
// 创建文件附件
// body.addAttachments(new File("D:/test.txt"));
// 创建流附件
// body.addAttachments(new FileInputStream(new File("D:/ff.png")),"ff.png");
// 邮箱收件人
MailAddressReceiver receiver = new MailAddressReceiver();
receiver.setBroadcastSend(true);// 广播发送(收件人会全部显示)
receiver.addTo("1179064421@qq.com");
// 地址列表收件人
// MailListReceiver receiver=new MailListReceiver();
// 添加邮件地址列表
// receiver.addMailList("developers@sendcloud.com");
// 创建模版邮件内容
TemplateContent content = new TemplateContent();
content.setTemplateInvokeName("Hello SendCloud!");
// 创建文本邮件内容
// TextContent content = new TextContent();
// content.setContent_type(ScContentType.html);
// content.setText("hello world");
// 创建邮件
SendCloudMail scmail = new SendCloudMail();
scmail.setBody(body);
scmail.setContent(content);
scmail.setTo(receiver);
// 发信
ResponseData result = sc.sendMail(scmail);
System.out.println(JSONObject.fromObject(result).toString());
}
}
修改了收件人和具体内容,还需要在配置文件中添加
api_user = your_api_user
api_key = your_api_key
其中的api_user和api_key可以在SendCloud的邮箱首页中查看,api_key需要点击生成新的api_key,可以设定有效时间,最长好像是1小时。
进行测试:
需要注意,qq邮箱会将这封邮件视为垃圾邮件,要在垃圾箱中才能找到。
控制台输出:
测试成功
用阿里云添加图片
需要开通OSS对象存储,然后查看java-SDK的文档:https://help.aliyun.com/document_detail/31817.html?spm=5176.doc32013.6.539.jCiBY3
可以先直接看快速入门
只需要添加一个jar包依赖就能实现操作环境,不过文档中推荐的jar包添加进pom.xml后会报错,所以换了一个版本:
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.1</version>
</dependency>
参照文档,写测试类,以文件流的方式上传:
@org.junit.Test
public void send()throws FileNotFoundException{
// endpoint以杭州为例,其它region请按实际情况填写
String endpoint = "http://oss-cn-beijing.aliyuncs.com";
// 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 上传文件流
InputStream inputStream = new FileInputStream("C:\\Users\\kelis\\Desktop\\Z.jpg");
ossClient.putObject("yourBucketName", "yourKey", inputStream);
// 关闭client
ossClient.shutdown();
}
其中的<yourAccessKeyId>,<yourAccessKeySecret>需要在OSS的控制台中查看,还需要在控制台中新建Bucket,其名字对应于这里的yourBucketName,yourKey对应的是所上传的文件所对应的键值,还需要注意的一点是,endpoint对应于新建Bucket时所选择的区域,下方会有相应的url。
进行测试:
上传成功
明天的计划
尝试用七牛云上传
整合进任务代码
遇到的问题
文档好多,看得费劲
收获
了解了调用第三方api的基本知识
评论