什么原因导致Klout API出现403错误?

时间:2018-05-19 10:52:43

标签: java api klout

我有一个Klout的API密钥,我写了一个服务,每天执行6个电话来跟踪6个社交媒体帐户的性能。这项服务上周突然停止了。

这是我帐户中日志的概述:

enter image description here

我对我的密钥进行了模糊处理,但正如您所看到的,我的简化计划的状态是有效的;但是:错误显示 403非活动计划(代理)

java.io.IOException: Server returned HTTP response code: 403 for URL: http://api.klout.com/v2/identity.json/twitter?screenName=redacted&key=redacted
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at com.directmediatips.klout.KloutRequests.sendRequest(KloutRequests.java:66)
    at com.directmediatips.klout.Klout.getUserIdFromTwitterScreenName(Klout.java:119)
    at com.directmediatips.klout.Klout.main(Klout.java:126)

如果它显示redacted,则有一个Twitter句柄和一个API密钥。

构造函数和相关方法是:

private String apiKey;

public Klout(String apiKey) {
    this.apiKey = apiKey;
}

public UserId getUserIdFromTwitterScreenName(String screenName) throws IOException {
    return new UserId(new JSONObject(KloutRequests.sendRequest(String.format(
            KloutRequests.ID_FROM_TWITTER_SCREENNAME, screenName, apiKey))));
}

public static String sendRequest(String request) throws IOException {
    URL url = new URL(request);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.setUseCaches(false);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(connection.getInputStream()));
    String line;
    StringBuilder response = new StringBuilder();
    while ((line = in.readLine()) != null) {
        response.append(line);
    }
    in.close();
    return response.toString();
}

我唯一可以想到的是,Klout取消了我的帐户,但是当我登录Klout时,这并没有反映在我的帐户面板中,但也许我在代码中忽略了一些非常简单的事情。这些指标还表明,我每天从未拨打超过6个电话,这远低于关键速率限制。

1 个答案:

答案 0 :(得分:0)

我收到了我的推文的答案:

enter image description here

推文引用此blog item

  

我写信是为了让您知道,Lithium已经决定将Klout服务定为日落,自2018年5月25日起生效。

简而言之:我使用的服务已不再可用,因为Klout将停止使用。