如何在 Linkedin API 中请求直接赞助内容发布者角色?

How to Request Direct Sponsored Content Poster Role in Linkedin API?

当我尝试发出 GET 请求使成员成为组织的直接赞助内容发布者角色时,我收到 404 错误。

因此,在示例 here 之后,我使用的是组织 ID,我使用的是我要将 ID 添加到 URL 请求的人员。所以我的代码如下所示:

    sendRequest(GET, "https://api.linkedin.com/v2/organizationAcls/" + URLEncoder.encode("(organization:urn:li:organization:" + organization + ",role:DIRECT_SPONSORED_CONTENT_POSTER,roleAssignee:urn:li:person:" + roleAssignee +")" , StandardCharsets.UTF_8.toString()), null);

使用sendRequest方法:

    public String sendRequest(String method, String url, String parameters) throws ExternalApiException, IOException{
    URL obj = new URL(url);
    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

    // add request header
    con.setRequestMethod(method);
    
    con.setRequestProperty("Authorization", "Bearer " + token);
    if (method == POST) 
        //Removed POST logic as its irrelevant
    int responseCode = con.getResponseCode();

    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();

    return response.toString();
}

最后,URL post编码的例子如下,organization = 1234567 AND roleAssignee = abcDEfg:

https://api.linkedin.com/v2/organizationAcls/%28organization%3Aurn%3Ali%3Aorganization%3A1234567%2Crole%3ADIRECT_SPONSORED_CONTENT_POSTER%2CroleAssignee%3Aurn%3Ali%3Aperson%3AabcDEfg%29

更新 1 (11/10/2020):也想添加返回的响应正文。如前所述,错误代码是 404 并且返回的响应正文是:

{"serviceErrorCode":0,"message":"Resource organizationAcls does not exist","status":404}

所以我与 Linkedin 技术支持成员交谈,他们的文档中似乎有错误。

正确的调用需要 PUT 请求。

此外,请求的 URL 是:https://api.linkedin.com/v2/organizationAcls/(organization:urn%3Ali%3Aorganization%3AXXXXXXX,role:DIRECT_SPONSORED_CONTENT_POSTER,roleAssignee:urn%3Ali%3Aperson%3AXXXXXXX)。 其中 'XXXXXXX' 需要是关联的组织 ID 和关联的人员 ID。

最后,作为请求的一部分,需要传入一个请求体。请求体是一个JsonObject,包含以下属性。

  1. state
  2. role
  3. roleAssignee
  4. organization

对于 state,唯一可能的值是 REQUESTED。 对于 role,唯一可能的值是 DIRECT_SPONSORED_CONTENT_POSTER。 对于 role assignee,它是 "urn:li:person:" + roleAssignee,您希望使用添加到以下组织的用户的 ID。 最后,对于 organization,它是 "urn:li:organization:" + organization,您希望将上述用户添加到的组织的 ID。