Java對接騰訊雲簡訊和阿里雲天氣預報

餓丸發表於2020-12-31

API介面提供商

簡訊

這裡推薦阿里雲,比起其他的雜牌方便很多

因為現在稽核環境的問題,個人開發者比較難申請到簽名和模板

我們需要建立一個微信公眾號來作為應用場景
在微信官方的公眾號平臺上面建立
在這裡插入圖片描述
公眾號的步驟這裡就省略了

在這裡插入圖片描述
這就是剛剛建立好的微信公眾號
在阿里雲控制檯—簡訊服務
在這裡插入圖片描述
在這裡插入圖片描述
在國內訊息裡面申請簽名和模板
在這裡插入圖片描述
但是在這裡簽名申請遇到了問題
我的簽名申請連續兩天被打回不通過
在這裡插入圖片描述
阿里雲不支援個人公眾號
在這裡插入圖片描述

於是轉戰騰訊雲
在這裡插入圖片描述
一樣控制檯進去,簡訊,申請簽名和模板
目前的騰訊雲的簽名申請對我這種學生或者個人開發者更加友好
在這裡插入圖片描述
成功
在這裡插入圖片描述
騰訊雲的簡訊API介面的使用參考
java對接騰訊雲簡訊,通過api傳送簡訊
傳送簡訊

天氣預報

這裡選擇阿里雲就好了
在雲市場裡面,購買一個免費的天氣預報介面
在這裡插入圖片描述

java實現

簡訊

騰訊雲的程式碼很簡單
你需要知道的幾個引數
1.模板ID
在這裡插入圖片描述
2.簽名名字
在這裡插入圖片描述
3.手機號碼
國內手機號碼要+86
4.個人金鑰
secretid和secretKey在騰訊雲-API金鑰管理中建立,secretid和secretKey具有非常高的訪問許可權,不能隨意洩露給別人

之後就可以使用騰訊的線上除錯平臺除錯了
除錯

程式碼:

 try{

             Credential cred = new Credential("你的SecretId", "你的SecretKey");//個人金鑰裡面獲取

             HttpProfile httpProfile = new HttpProfile();
             httpProfile.setEndpoint("sms.ap-chongqing.tencentcloudapi.com");

             ClientProfile clientProfile = new ClientProfile();
             clientProfile.setHttpProfile(httpProfile);

             SmsClient client = new SmsClient(cred, "", clientProfile);

             SendSmsRequest req = new SendSmsRequest();
             String[] phoneNumberSet1 = {"+86182xxxx846"};    //傳送的手機,不要忘記國內+86
             req.setPhoneNumberSet(phoneNumberSet1);

             req.setTemplateID("829417");    //你的模板ID
             req.setSmsSdkAppid("1400467412");   //你的應用ID
             req.setSign("餓丸船業");      		//你的簽名名字

             SendSmsResponse resp = client.SendSms(req);

             System.out.println(SendSmsResponse.toJsonString(resp));
         } catch (TencentCloudSDKException e) {
                 System.out.println(e.toString());
         }

     }

依賴:

<repository>
  <id>nexus-tencentyun</id>
  <name>Nexus tencentyun</name>
  <url>https://mirrors.tencent.com/nexus/repository/maven-public/</url>
</repository>

     <dependency>
            <groupId>com.github.qcloudsms</groupId>
            <artifactId>qcloudsms</artifactId>
            <version>1.0.6</version>
        </dependency>

		<dependency>
			<groupId>com.tencentcloudapi</groupId>
			<artifactId>tencentcloud-sdk-java</artifactId>
			<!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
			<!-- 請到 https://search.maven.org/search?q=tencentcloud-sdk-java 查詢最新版本 -->
			<version>3.1.87</version>
		</dependency>

效果:

在這裡插入圖片描述

天氣預報

程式碼

package demo.ein;

import java.util.HashMap;
import java.util.Map;

import org.apache.http.util.EntityUtils;

import com.aliyuncs.http.HttpResponse;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
    	 String host = "https://jisutqybmf.market.alicloudapi.com";
 	    String path = "/weather/query";
 	    String method = "ANY";
 	    //GET/POST 任意
	    String appcode = "你購買的Appcode";
	    Map<String, String> headers = new HashMap<String, String>();
	    //最後在header中的格式(中間是英文空格)為Authorization:APPCODE 83359fd73fe94948385f570e3c139105
	    headers.put("Authorization", "APPCODE " + appcode);
 	    Map<String, String> querys = new HashMap<String, String>();
	    querys.put("city", "重慶");
	    querys.put("citycode", "citycode");
	    querys.put("cityid", "cityid");
	    querys.put("ip", "ip");
	    querys.put("location", "location");


 	    try {

 	    	org.apache.http.HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
 	    	System.out.println(response.toString());
 	    	//獲取response的body
 	    	String str=EntityUtils.toString(((org.apache.http.HttpResponse) response).getEntity(),"utf-8"); 
 	    	 String[] strarray=str.split(","); //遇到逗號就分割
 	    	 for (int i = 0; i < strarray.length; i++) 
 	    	 {
 	    		System.out.println(strarray[i]); 
 	    		if(strarray[i]=="{"||strarray[i]=="}")
 	    		{
 	    			System.out.println("\n"); //遇到{}就換行
 	    		}
 	    	 }

 	    } catch (Exception e) {
 	    	e.printStackTrace();
 	    }
    }
}

相關依賴:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.4.6</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ecs</artifactId>
    <version>4.17.6</version>

執行結果如下,粗糙了點
在這裡插入圖片描述

遇到的問題

Eclipse 建立Maven專案Select an Archetype為空解決方法

相關文章