Androidでmd5を使用してキーとシークレットでレストコールを行う方法は? しかし、 loginService() メソッドの応答としてエラーが発生しています。
エラー: {"ステータス":"エラー","メッセージ":"署名の不一致"}.
私が従った手順、 ステップ 1- md5(string) メソッドを使用してハッシュ文字列を取得するための文字列「param」を作成しました ステップ 2- Web サービスからの応答を取得するためのメソッド loginService() を呼び出しました
呼び出しコード:
{
String param = "name" + first_name + last_name + "email" + email + "facebook_user_id" + facebook_user_id + "location" + location + "zip_code" + zip_code + "birthday" + birthday + "time" + time + "api_key" + api_key;
String signature = md5(param);
Post_Method_Interface commonPost = new CommonPostMethod();
getResponceForParse = commonPost.loginService(
first_name + last_name, email,facebook_user_id, location, zip_code, birthday,time, api_key, signature);
Log.d(">>> GetResponceForParse >>> ",getResponceForParse);
if (!facebook_user_id.equals(null)) {
Post_Method_Interface commonPost = new CommonPostMethod();
getResponceForParse = commonPost
.FacebookLoginModel(first_name + last_name,
email, facebook_user_id, location,
zip_code, birthday, time, api_key,
signature);
Log.d("GetResponceForParse 1", getResponceForParse);
Intent i = new Intent(getApplicationContext(),
HomeActivity.class);
}
Post_method_Interface クラスの loginService() Web サービスメソッド、
public String loginService(String name, String email,
String facebook_user_id, String location, String zip_code,
String birthday, String timestamp, String api_key, String sig) {
try {
JSONObject schObject = new JSONObject();
schObject.put("name", name);
schObject.put("email", email);
schObject.put("facebook_user_id", facebook_user_id);
schObject.put("location", location);
schObject.put("zip_code", zip_code);
schObject.put("birthday", birthday);
schObject.put("time", timestamp);
schObject.put("api_key", api_key);
schObject.put("sig", sig);
String URL = ApiConstant.URL_FacebookLoginModel;
JsonPostRequest postrequest = new JsonPostRequest();
InputStream is = postrequest.doPost(schObject, URL);
response = postrequest.inputSteamToString(is);
Log.d("Login", response);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return response;
}
md5() メソッド:
private static final String md5(final String parem) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance("MD5");
digest.update(parem.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
非常に緊急の私を助けてください!!!