Недействительная подпись при загрузке фотографии на flickr с помощью Java

С 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>

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


person Prasanth Kumar Diddi    schedule 14.07.2011    source источник


Ответы (1)


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

Итак, вкратце: составьте полный и СОРТИРОВАННЫЙ список аргументов (без символов '=') и выполните хеш-код md5 над ним. это должно работать.

См. http://www.flickr.com/services/api/auth.spec.html в главе (8).

person Marco    schedule 15.07.2011