使用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>
我不知道为什么,有人可以帮助我吗?
答案 0 :(得分:0)
需要为整个参数列表完成md5签名,而不仅仅是密钥和令牌。
因此,简而言之:创建一个完整的SORTED参数列表(不带'='字符),并对此进行md5哈希。这应该有效。
有关详细信息,请参阅http://www.flickr.com/services/api/auth.spec.html第(8)章。