0

こんにちは、toggl API を使用してレポートを csv ファイルとして取得しようとしています。ただし、すべてのパラメーターを使用して取得要求を正しく行う方法を理解できないようです。そのための優れた Python スクリプト ( https://baxeico.wordpress.com/2014/03/13/build-excel-timesheet-toggl-api-python/ ) を見つけましたが、残念ながらそれを Java に変換することはできません。助けていただければ幸いです。api_token に問題があるようです。api_token が見つからないというエラー 401 が常に表示されるためです。ここに、適応したユーザーの詳細を含む私のコードの始まりがあります;)

public class HttpURLConnectionExample {

private final String USER_AGENT = "Mozilla/5.0";
String workspaceId = "123456";
String apiToken = "qrstuvwxyz123456789";


public static void main(String[] args) throws Exception {

    HttpURLConnectionExample http = new HttpURLConnectionExample();

    System.out.println("Testing 1 - Send Http GET request");
    http.sendGet();

}

// HTTP GET request
private void sendGet() throws Exception {

    String url = "https://www.toggl.com/reports/api/v2/summary?user_agent='username'";

    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    // optional default is GET
    con.setRequestMethod("GET");

    //add request header
    //con.setRequestProperty("User-Agent", userAgent);

    // that's where I'd like to add the workspace ID and my API token
    con.setRequestProperty("api_token", apiToken);
    con.setRequestProperty("workspace_id", workspaceId);


    int responseCode = con.getResponseCode();
    System.out.println("\nSending 'GET' request to URL : " + url);
    System.out.println("Response Code : " + responseCode);

[...]

4

1 に答える 1

0

APIドキュメントによると:

レポート API で認証できるのは、API トークンのみです。HTTP 基本認証の場合、リクエストに Authorization ヘッダーを追加する必要があります。トークンはユーザー名として送信され、文字列「api_token」はパスワードとして送信されます。可能な限り、http ライブラリが提供するツールとインターフェースを使用して基本認証を実行してください (たとえば、curl はそのために -u スイッチを使用します)。

このSOの答えは、認証のためにこのようなことをする必要があります

String encoded = Base64.encode(api_token + ":api_token");
connection.setRequestProperty("Authorization", "Basic "+encoded);
于 2016-02-11T11:33:33.503 に答える