1

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 "";

}

非常に緊急の私を助けてください!!!

4

0 に答える 0