Неверная подпись при загрузке фотографии на flickr с Java - PullRequest
1 голос
/ 14 июля 2011

С помощью Flickr API - http://www.flickr.com/services/api/ При попытке загрузить фотографию выдает ошибку 96: Неверная подпись.

Это мой код:

    String sig = secret + "api_key" + key + "auth_token" + token;
    String signature = FlickrRequestFrob.MD5(sig);

    String request = "http://api.flickr.com/services/upload/";

    HttpClient client = new HttpClient();
    PostMethod postMethod = new PostMethod(request);
    //System.out.println("Api Sig" + signature);
    postMethod.addParameter("api_key",key);
    postMethod.addParameter("api_sig", signature);
    postMethod.addParameter("auth_token", token);
    postMethod.addParameter("is_public", "1");
    postMethod.addParameter("photo", "C:/DSC_0281.JPG");
    postMethod.addParameter("title", "Scary!");

    int status = client.executeMethod(postMethod);
    System.out.println("Status: " + status);

    InputStream responseStream = postMethod.getResponseBodyAsStream();

Ответ:

Статус: 200 Ответ:

<?xml version="1.0" encoding="utf-8" standalone="no"?><rsp stat="fail">
    <err code="96" msg="Invalid signature"/>
</rsp>

Понятия не имею, почему,кто-то может помочь мне здесь?

1 Ответ

0 голосов
/ 15 июля 2011

Подпись md5 должна быть сделана для всего списка аргументов, а не только для ключа и токена.

Итак, вкратце: создайте полный и отсортированный список аргументов (без символов '=') и выполните для этого хеш md5. это должно работать.

Подробнее см. http://www.flickr.com/services/api/auth.spec.html главу (8).

...