獲取釘釘AccessToken

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "LbAccessTokenServlet")
public class LbAccessTokenServlet extends HttpServlet {
 
    public void init() throws ServletException {
        new Thread(new LbTokenThread()).start(); //啓動進程
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    }
}

---------------------

package com.jeecg.lb;


import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.taobao.api.ApiException;

public class LbTokenThread implements Runnable {
    
    private static String APPKEY = "*******"; // 小程序APPKEY
    private static String APPSECRET = "*******"; // 小程序APPSECRET
    
    public static String accessToken = null;
 
    public void run(){
        while (true){
            try{
                accessToken = this.getAccessToken();
                if(null!=accessToken){
                    System.out.println("Lb-token:"+accessToken);
                    Thread.sleep(7000 * 1000); //獲取到access_token 休眠7000秒
 
                }else{
                    Thread.sleep(1000*3); //獲取的access_token爲空 休眠3秒
                }
            }catch(Exception e){
                System.out.println("發生異常:"+e.getMessage());
                e.printStackTrace();
                try{
                    Thread.sleep(1000*10); //發生異常休眠1秒
                }catch (Exception e1){
 
                }
            }
        }
    }
 
 
    /**
     * 獲取access_token
     * @return
     */
    public String getAccessToken(){
        DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
        OapiGettokenRequest request = new OapiGettokenRequest();
        request.setAppkey(APPKEY);
        request.setAppsecret(APPSECRET);
        request.setHttpMethod("GET");
        String accessToken = null;
        try {
            OapiGettokenResponse response = client.execute(request);
            accessToken = response.getAccessToken();
            System.out.println(response);
        } catch (ApiException e) {
            e.printStackTrace();
        }
        return accessToken;
    }
}

 

---------web.xml----------

<servlet>
   <servlet-name>initLbAccessTokenServlet</servlet-name>
   <servlet-class>
      com.jeecg.lb.LbAccessTokenServlet
   </servlet-class>
   <load-on-startup>0</load-on-startup>
</servlet>

 

 

 

----------------------調用方法

 

LbTokenThread.accessToken
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章