全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

JAVA-API开发实例

更新时间:2017-08-29 18:11:10

营销引擎API调用实例

最新SDK可参看

https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core

https://develop.aliyun.com/tools/sdk

简介

欢迎使用阿里云开发者工具套件(SDK)。阿里云Java SDK让您不用复杂编程即可访问云服务器、云监控等多个阿里云服务。这里向您介绍如何获取阿里云Java SDK并开始调用。

环境准备

阿里云Java SDK适用于JDK 6及以上版本。

要使用阿里云Java SDK,您需要一个云账号以及一对Access Key ID和Access Key Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的Access Key,或者联系您的系统管理员。

要使用阿里云SDK访问某个产品的API,您需要事先在阿里云控制台中开通这个产品。

安装SDK:

您可以通过以下两种方式来安装SDK:在Maven项目中加入依赖项,和在集成开发环境(IDE)中导入Jar包。

Maven项目中加入依赖项(推荐)

如果您使用Maven来管理您的Java项目,要获得阿里云Java SDK,只需在pom.xml里加入相应的依赖项即可。这些依赖项可以在阿里云Java SDK的发布地址中找到。

以3.2.2版本的SDK核心库和3.0.0版本的云服务器SDK为例:

  • 添加依赖
  1. <dependency>
  2. <groupId>com.aliyun</groupId>
  3. <artifactId>aliyun-java-sdk-core</artifactId>
  4. <version>3.2.2</version>
  5. </dependency>

获取ORG-ADID

可以在自身RDS中看表’dsp_pt_advertiser_info’中adv_id字段。也可以在广告公司后台前端页面直接看:

advId

开发基础代码

  1. public class PopRequestServer {
  2. public class OpenAdService {
  3. private IAcsClient client = null;
  4. private static final String REGION_CN_HANGZHOU = "cn-hangzhou";
  5. private static final String ORG_ADID = "";//这个参数数广告主id,当需要获取单个广告主物料的时候需要填写。获取方式见本文档。
  6. private static final String OPEN_AD_SERVER_DOMAIN ="okapi.aliyuncs.com";//本产品域名。
  7. /**
  8. * 服务初始化,只需要一次
  9. * 通过RAM来给某个用户分配AK(https://www.aliyun.com/product/ram),尽量让权限控制到最小
  10. */
  11. public void init(String accessKeyId,String accessKeySecret) throws ClientException {
  12. IClientProfile profile = DefaultProfile.getProfile(REGION_CN_HANGZHOU,accessKeyId, accessKeySecret);
  13. // 添加自定义endpoint。
  14. DefaultProfile.addEndpoint(REGION_CN_HANGZHOU, REGION_CN_HANGZHOU, "OA",
  15. OPEN_AD_SERVER_DOMAIN);//这里的"OA"是API产品名称,用户可以不用关心
  16. client = new DefaultAcsClient(profile);
  17. }
  18. class OpenAdRequest extends RoaAcsRequest<AcsResponse> {
  19. OpenAdRequest(String version, String url, MethodType methodType) {
  20. super("OA", version);
  21. setUriPattern(url);
  22. setMethod(methodType);
  23. }
  24. @Override
  25. public Class<AcsResponse> getResponseClass() {
  26. return AcsResponse.class;
  27. }
  28. }
  • java(POST) REQUEST函数
  1. /**
  2. * @param uri 接口URI 例如:/adplan
  3. * @param methodType 接口的请求类型
  4. * @return 接口返回值
  5. * @throws ClientException ClientException{@link ClientException}
  6. */
  7. public String request(String uri,MethodType methodType,Map<String,Object> param) throws ClientException {
  8. OpenAdRequest openAdRequest = new OpenAdRequest("2017-03-08", uri,methodType);
  9. openAdRequest.setContentType(FormatType.JSON);
  10. openAdRequest.setAcceptFormat(FormatType.JSON);
  11. openAdRequest.setMethod(MethodType.POST);
  12. if(ORG_ADID != null && !ORG_ADID.equals(""))
  13. openAdRequest.putHeaderParameter("ORG-ADID",ORG_ADID);//创建计划、推广组、创意时需要带上,表明归属于哪一个推广主。
  14. String body = JSONObject.toJSONString(param);
  15. try {
  16. openAdRequest.setContent(body.getBytes("UTF-8"), "utf-8", FormatType.RAW);
  17. } catch (UnsupportedEncodingException e) {
  18. e.printStackTrace();
  19. }
  20. openAdRequest.setContentType(FormatType.JSON);
  21. HttpResponse httpResponse = client.doAction(openAdRequest);
  22. byte[] bytes = httpResponse.getContent();
  23. String content = null;
  24. try {
  25. content = new String(bytes, "UTF-8");
  26. } catch (UnsupportedEncodingException e) {
  27. e.printStackTrace();
  28. }
  29. return content;
  30. }

POST业务代码

  1. public static void main(String[] arg){
  2. PopRequestServer openAdService = new PopRequestServer();
  3. Map<String,Object> param = new HashMap<String, Object>();
  4. param.put("img_path","http://www.baidu.com");
  5. param.put("dest_url","http://www.baidu.com");
  6. param.put("creative_type",4);
  7. param.put("img_size","200*200");
  8. try {
  9. openAdService.init({accessId}, {accessKey}});//填写AK信息
  10. } catch (ClientException e) {
  11. e.printStackTrace();
  12. }
  13. try {
  14. String content=openAdService.request("/adplan",MethodType.POST,param);
  15. System.out.println(content);
  16. } catch (ClientException e) {
  17. e.printStackTrace();
  18. }
  19. }
  • java(GET) REQUEST函数
  1. /**
  2. * @param uri 接口URI 例如:/adgroup/adv/query/
  3. * @param methodType 接口的请求类型
  4. * @return 接口返回值
  5. * @throws ClientException ClientException{@link ClientException}
  6. */
  7. public String request(String url,MethodType methodType,Map<String,String> headerMap,Map<String,String> queryParm) throws ClientException {
  8. String uri = StringUtils.substringBefore(url, "?");
  9. String queryStr = StringUtils.substringAfter(url, "?");
  10. if (headerMap == null) {
  11. headerMap = new HashMap<String, String>();
  12. }
  13. OpenAdRequest openAdRequest = new OpenAdRequest("2017-03-08", uri,methodType);//这里的"2017-03-08"是API版本,用户可以不用关心
  14. for(String key : queryParm.keySey()){
  15. openAdRequest.putQueryParameter(key,queryParm.get(key))
  16. }
  17. if(ORG_ADID != null && !ORG_ADID.equals(""))
  18. openAdRequest.putHeaderParameter("ORG-ADID",ORG_ADID);
  19. openAdRequest.setContentType(FormatType.JSON);
  20. openAdRequest.setAcceptFormat(FormatType.JSON);
  21. HttpResponse httpResponse = client.doAction(openAdRequest);
  22. byte[] bytes = httpResponse.getContent();
  23. String content = null;
  24. try {
  25. content = new String(bytes, "UTF-8");
  26. } catch (UnsupportedEncodingException e) {
  27. e.printStackTrace();
  28. }
  29. return content;
  30. }

GET业务代码

  1. public static void main(String[] arg){
  2. PopRequestServer openAdService = new PopRequestServer();//可以用Spring的依赖注入代替
  3. try {
  4. //只需要初始化一次
  5. openAdService.init("accessId", "accessKey");//填写相关的accessId和accessKey
  6. } catch (ClientException e) {
  7. e.printStackTrace();
  8. }
  9. Map<String,String> queryParam = new HashMap<String,String>();
  10. queryParam.put("page","1");
  11. queryParam.put("size","10");
  12. try {
  13. String content=openAdService.request("/adplan/adv/query",MethodType.GET,null,queryParam);
  14. System.out.println(content);
  15. } catch (ClientException e) {
  16. e.printStackTrace();
  17. }
  18. }

接口URI(https://help.aliyun.com/document_detail/51348.html)

本文导读目录