如何实现客户端凭据流(两足式OAuth)以连接到LinkedIn API?

问题描述 投票:0回答:1
  1. 当我尝试official pageother example时。

  2. 我得到了:{"error":"access_denied","error_description":"This application is not allowed to create application tokens"}

  3. 我在下面添加了我的代码,但是我没有获得访问令牌。这表明不允许应用程序创建应用程序令牌。字符串urlParameters =“ grant_type = client_credentials&client_id =” + linkedInClientId +“&client_secret =” + linkedInClientSecret;字符串urlParametersEncoded =“”;尝试{urlParametersEncoded = URLEncoder.encode(urlParameters,“ UTF-8”);} catch(Exception e){System.out.println(“ URL编码错误。” + e);}

    String url = "https://www.linkedin.com/oauth/v2/accessToken?"+urlParametersEncoded;
    String access_token = "null";
    try {
        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
    
        //add reuqest header
        con.setRequestMethod("POST");
        con.setRequestProperty("Host", "www.linkedin.com");
        con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    
        // Send post request
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();
    
        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + urlParameters);
        System.out.println("Response Code : " + responseCode);
    
        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
    
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
    
        //print result
        //System.out.println(response.toString());
    
        JSONObject jsonObj = new JSONObject(response.toString());
        access_token = jsonObj.getString("access_token");
        System.out.println("!!!!!!!!!!!"+access_token);
    } catch(Exception e) {
        System.out.println("error token.." + e);
    }
    
    return access_token;
    

    }

java spring-boot linkedin linkedin-api
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.