0

こんにちは、これはコードであり、ユーザー情報を取得しますが、apk に変換すると、ユーザー情報は取得されません。助けてください:

GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback()
                    {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response)
                        {
                            Log.i("LetsMeetFragment" + response.toString());

// imageURL = new URL(" https://graph.facebook.com/ " + userID + "/picture?width=" + width +"&height=" + height); // 入力ストリーム inputStream = (入力ストリーム) imageURL.getContent(); // ビットマップ = getCroppedBitmap(BitmapFactory.decodeStream(inputStream));

                            try
                            {
                                String userID = (String) object.get("id");
                                letsMeetFlow.getUserUpdateRequestObj().setFb_id(userID);
                                BService.setFacebookID(userID);BService.setFacebookConnected(true);
                                PreferenceConnector.writeString(getContext(),ApplicationConstants.FacebookID, userID);


                                String userName = (String) object.get("name");
                                String DOB = (String) object.get("birthday");
                                String Gender = (String) object.get("gender");


                                if (Gender.equalsIgnoreCase("male"))
                                {
                                    manSeletion();
                                }
                                setBODField(DOB);

                                String[] userNamearray = userName.split(" ");
                                if (userNamearray.length > 1)
                                {
                                    String tmpName = "";
                                    for (int i = 0; i < userNamearray.length - 1; i++)
                                    {
                                        tmpName += userNamearray[i] + " ";
                                    }
                                    NameField.setText(tmpName.trim());
                                    LastNameField.setText(userNamearray[userNamearray
                                            .length - 1].trim());

                                }
4

1 に答える 1

0

私が理解できることは、デバッグモードではコードが機能しますが、署名された apk をコンパイルしようとすると機能しなくなります。

これは署名ハッシュである可能性があります。facebook にデバッグ キーの署名ハッシュがありますが、キーを使用してコンパイルすると、ハッシュが変更されます。

キーのハッシュを取得するためにいくつかのことを行うことができます。

public void printKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo("com.your.package.name.don't.forget.to.chang.this", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.e("SHA: ", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}

起動時にこのコードを調整し、ハッシュのログを確認すると、SHA: xxxxYourHashxxxxx のような読み取りテキストが出力されます。

このハッシュをコピーして貼り付け、Facebook にあるものを更新します。

于 2016-12-11T14:29:20.220 に答える